경진대회 이해 -> 탐색적 데이터 분석 -> 베이스라인 모델 제작 -> 성능 개선 순서 경진대회 이해 - 대회의 취지와 문제 유형 파악 및 평가지표 확인 탐색적 데이터 분석 - 시각화를 포함한 각종 기법을 동원해 데이터를 부넉하여 피쳐 엔지니어링과 모델링 전략 수립 베이스라인 모델 - 기본 모델 제작. 유사한 문제를 풀 때 업계에서 흔히 쓰는 모델이나 직관적으로 떠오르는 모델 선택 성능 개선 - 베이스 라인 모델보다 더 나은 성능을 목표로 각종 최적화 진행 타깃값이 정규분포에 가까울수록 회귀 모델의 성능이 좋아진다. 로그변환하면 정규분포에 가까워지고, 결과값을 지수변환하면 원래 타깃값 형태로 복원된다(타깃값 변환). 훈련 데이터에서 이상치를 제거하면 일반화 성능이 좋아진다.(이상치 제거) 기존 피처를 분..
랜덤포레스트는 훈련 데이터를 랜덤하게 샘플링한 모델 n개를 각각 훈련하여 결과를 평균하는 방법 여기도 결은 똑같고, 하이퍼 파라미터 최적화부터 들어간다. from sklearn.ensemble import RandomForestRegressor # 모델 생성 randomforest_model = RandomForestRegressor() # 그리드서치 객체 생성 rf_params = {'random_state':[42], 'n_estimators':[100, 120, 140]} # ① gridsearch_random_forest_model = GridSearchCV(estimator=randomforest_model, param_grid=rf_params, scoring=rmsle_scorer, cv=5..
성능 개선 1번 : 릿지 회귀 모델 L2 규제를 적용한 선형 회귀 모델 릿지 회귀 모델은 성능이 좋은 편은 아니다. 캐글러도 잘 안쓴다. 선형 회귀 모델모다 과대적합이 적은 모델이다. 하이퍼파라미터 최적화(모델 훈련) 모델 훈련 단계에서 그리드 서치 기법 사용 교차 검증 평가점수는 보통 에러 값이기 때문에 낮을수록 좋다. alpha는 릿지 모델의 파라미터 그리드 서치를 이용하지 않으면 alpha에 각각 값을 전달하여 교차 검증으로 모델 성능을 각가 측정해야 한다. 릿지 모델 생성 https://www.kaggle.com/werooring/ch6-modeling from sklearn.linear_model import Ridge from sklearn.model_selection import GridSe..
본격적인 모델 훈련 선형 회귀 모델을 임포트하여 모델을 생성 및 훈련 from sklearn.linear_model import LinearRegression linear_reg_model = LinearRegression() log_y = np.log(y) # 타깃값 로그변환 linear_reg_model.fit(X_train, log_y) # 모델 훈련 선형 회귀 식은, 독립변수 x와 종속변수 y가 있을 때, y=ax+b의 형태이고, 여기서 a와 b의 값을 구하려는 것이다. 훈련 : 피처(독립변수)와 타깃값(종속변수)가 주어졌을 때 최적의 가중치 (a 와 b)를 찾는 과정 예측 : 최적의 가중치를 아는 상태(훈련된 모델)에서 새로운 독립변수(x)가 주어졌을 때 타깃값을 추정하는 과정 여기서 탐색적 데..
베이스라인 모델 전략 프로세스 데이터 불러오기 -> (기본적인) 피처 엔지니어링 -> 평가지표 계산 함수 작성 -> 모델 훈련 -> 성능 검증 -> 제출 베이스라인 모델에서 출발해 성능을 점차 향상시키는 방향으로 모델링 공유한 모델을 사용해도 되고, 직접 자신만의 모델을 만들어도 된다. 피처 엔지니어링 피처 엔지니어링 전에 두 데이터를 합쳤다가, 다 끝나면 도로 나눠준다. 훈련 데이터와 테스트 데이터 합치기-> 타입 변경이나 삭제, 추가 -> 데이터 나누기 순서 이상치 제거 weather가 4인 데이터는 이상치다. # 훈련 데이터에서 weather가 4가 아닌 데이터만 추출 train = train[train['weather'] != 4] 데이터 합치기 훈련 데이터와 테스트 데이터에 같은 피처 엔지니어링..
회귀선을 포함한 산점도 그래프 수치형 데이터인 온도, 체감 온도, 풍속, 습도별 대여 수량을 그린다. 회귀선을 포함한 산점도 그래프는 수치형 데이터 간 상관관계를 파악하는 데 사용 # 스텝 1 : m행 n열 Figure 준비 mpl.rc('font', size=15) figure, axes = plt.subplots(nrows=2, ncols=2) # 2행 2열 plt.tight_layout() figure.set_size_inches(7, 6) # 스텝 2 : 서브플롯 할당 # 온도, 체감 온도, 풍속, 습도 별 대여 수량 산점도 그래프 sns.regplot(x='temp', y='count', data=train, ax=axes[0, 0], scatter_kws={'alpha': 0.2}, line_..