[본캠프 50일차] 심화 프로젝트 준비, SQL 공부
오늘 한 일은,
- 심화 프로젝트 준비
- 분류 모델 후보들 중 최종 모델 및 최종 데이터셋의 컬럼 확정하기
- 최종 모델 하이퍼파라미터 튜닝하기
- 해당 모델의 성능을 통계적 검정으로 우연이 아님을 확인하기
- SQL 공부
- [코드카타] SQL 3문제 풀기(163~165번)
팀플: 심화 프로젝트 준비
굴리는 과정 보러가기:
오늘이 D-2, 이제 이번 심화 프로젝트의 발표가 정말 머지 않았다.
그래도 오늘 하루가 지나고 나니 정리할 내용들이 많이 매듭지어졌다. 오늘은 이제까지 봤던 컬럼들(파생 변수들 포함), 분류 모델들을 정했다. 모델은 LightGBM으로 정해졌다. XGBoost도 비슷하게 성능이 잘 나왔지만 특성 중요도(feature importance)를 비교했을 때, XGBoost는 특정 컬럼에 중요도가 쏠리는 편인데 그에 비해 LightGBM은 특성 중요도가 고르게 잘 나오는 편이라 그러면 다양한 컬럼들을 예측하는 데 고르게 사용한다는 의미는 상대적으로 복잡한 패턴으로 예측하기 때문에 과적합 위험이 적지 않을까 하는 생각에 LightGBM을 정하게 됐다.
그리고 컬럼은 결측치가 많은 컬럼, loan_status를 예측하는 데 불필요한 컬럼, loan_status를 예측하는 데 데이터 누수가 일어나는 컬럼 등을 제거하고, 또 loan_status가 우리 조에서 보기로 한 상태값이 아닌 행들을 제외하고, 추가적으로 결측치가 포함된 행을 제거했다. 또 그 상태에서 파생변수를 만들고, 파생변수를 만드는 데 사용한 원본 컬럼은 제외하고, 이런 과정을 거쳐 데이터셋이 결정됐다.
이제 모델과 데이터셋이 어느 정도 정해졌으니 하이퍼파라미터 튜닝, 그리고 정말 최종 컬럼 확인(진짜 유의미한 컬럼인지 노이즈인지), 모델에 대한 통계적 검정, 해당 모델의 성과를 실제 돈으로 계산하여 인사이트 도출하기 등을 하고 PPT 담당을 맡은 조원분이 내일 초안을 가져오시면 그 초안으로 전체적인 발표 흐름에 대한 점검을 내부적으로도, 그리고 담당 튜터님에게도 받아보기로 했다.
그리고 내일은 진짜 까먹기 전에 이번 프로젝트 하느라 정신이 없어서 못 기록한 이번 프로젝트의 내용을 블로그에 쌓아둬야겠다.
SQL 공부: [코드카타] SQL 문제 풀기(163~165번)
163. Weather Observation Station 18
-- 맨해탄 거리를 계산하기
SELECT ROUND(ABS(MIN(lat_n) - MAX(lat_n)) + ABS(MIN(long_w) - MAX(long_w)), 4)
FROM station"
164. Weather Observation Station 19
-- 유클리드 거리를 계산하기
SELECT ROUND(SQRT(POW(MIN(lat_n) - MAX(lat_n), 2) + POW(MIN(long_w) - MAX(long_w), 2)), 4)
FROM station
이번 프로젝트도 거의 끝나간다고 지난 주에 비해서 조금 여유가 생겨서 오늘은 오랜만에 SQL 문제도 풀었다.