본격적인 모델 훈련 선형 회귀 모델을 임포트하여 모델을 생성 및 훈련 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_..
*머신러닝 대회 기준 1. pandas로 데이터 둘러보기 import numpy as np import pandas as pd # 판다스 임포트 # 데이터 경로 data_path = '/kaggle/input/bike-sharing-demand/' train = pd.read_csv(data_path + 'train.csv') # 훈련 데이터 test = pd.read_csv(data_path + 'test.csv') # 테스트 데이터 submission = pd.read_csv(data_path + 'sampleSubmission.csv') # 제출 샘플 데이터 train.shape, test.shape train.head() test.head() submission.head() train.info()..
개인적으로 정말 알고 싶었던 부분. 막연하게 모델을 모델링하다 보니, 하이퍼 파라미터를 최적화하는 게 가장 노가다였다.. 하이퍼 파라미터는 사용자가 직접 설정해야 하는 값. 요리를 한다고 가정하면, 향신료와 온도를 전부 최적으로 설정해야한다. 좋은 성능을 내려면 어떤 하이퍼 파라미터가 어떤 값을 가지면 좋을지를 찾는 작업을 거쳐야 한다. 그리드 서치, 랜덤 서치, 베이지안 최적화 세 가지가 있다. 그리드 서치 하이퍼파라미터를 모두 순회하며 가장 좋은 성능을 내는 값을 찾는다. 시간이 오래 걸린다는 단점 랜덤 서치 무작위로 탐색해 가장 좋은 성능을 내는 값을 찾는 기법. 무작위라는 한계 떄문에 그리드서치나 베이지안 최적화에 비해 사용 빈도가 떨어진다. 사이킷런의 RandomizedSearchCV( ) 메서..
앙상블 학습 제품 구매할 때 후기를 하나만 보지 않고, 다양한 후기를 보며 구매 의사를 정한다. 문제를 풀 때도 다양한 모델이 내린 예측 결과를 결합하는 기법을 아상블 핟습이라고 한다. 앙상블 학습을 활용하면 대체로 예측 성능이 좋아진다. 캐글러들은 앙상블 기법을 많이 사용한다. 보팅, 배깅, 부스팅 등 보팅 서로 다른 모델로 예측한 결과가 있다면, 개별 결과를 종합해 최종 결과를 결정하는 방식 하드 보팅 : 다수결 투표로 최종 예측값 결정 (모델들의 민주적인 투표) 소프트 보팅 : 모델 개별 예측 확률들의 평균 일반적으로 소프트 보팅이 하드 보팅보다 서능이 좋아서, 대체로 소트프 보팅 사용 배깅 개별 모델로 예측한 결과를 결합해 최종 예측을 정한다. 1. 전체 훈련 데이터셋에서 무작위 샘플링한 데이터로..