728x90
2-2 상관관계 분석
# 피처간 비슷한 변수들이 있는지 확인하기 위해 상관관계 분석을 수행합니다.
# 외워라
corr = train.corr()
corr
## 참조
# ablation study - 해당 피쳐를 빼 보고 넣어보고 해서 성능비교해서 성능이 많이 떨어지면 -> 효과가 있다는 것을 이용한 것.
- heatmap으로 상관관계 시각화
# Q. 상관관계의 의미? [-1, 1 ] " 선형성 " // 상곤관계가 0이라고 해서 버리면 안된다. '선형 상관관계'가 아니기 때문에
# Q2. 상관관계 == 인과관계? ' 아이스크림 판매량 <--------------> 상어에 물린 사람의 수'
# heatmap
# month, day, weekday는 ordinal feature이다.
## ordinal feature는 1, 2, 3, 4, 5 이런식으로 명시가 가능하다.
# order --> 비교가 가능하다. 크기가 존재한다.
# numeric & categorical -> mixed data type
# k-means clustering -> numeric : euclidean, categorical : hamming, edit, ... -> weighted average
# Deep neural network
# ML vs DL -> feature extraction이 차이가 있다.
# 정형 데이터 <-------- 제조업 / 금융업
plt.figure(figsize=(10,10))
sns.heatmap(corr, cmap='gray')
plt.show()
# 피처간 비슷한 변수들이 있는지 확인하기 위해 상관관계 분석을 수행합니다.
3. 예측모델 구현
3.1. scikit learn으로 training하는 과정
1. lib을 불러온다.
from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from xgboost.sklearn import XGBRegressor
from lightgbm.sklearn import LGBMRegressor
2. hyper parameter setting과 함께 모델을 선언
model = LinearRegression()
3. 학습
model.fit(X = X_train, y=y_train)
4. 예측
pred = model.predict(X_train)
<추가> 검토
print('train loss : %.4f' % mean_absolute_error(y_train, pred))
print('Train R2 Score : %.4f' % r2_score(y_train, pred))
print('validation loss : %.4f' % mean_absolute_error(y_val, pred2))
print('Validation R2 Score : %.4f' % r2_score(y_test, pred2))
print('train loss : %.4f' % mean_squared_error(y_train, pred))
print('Train R2 Score : %.4f' % r2_score(y_train, pred))
print('validation loss : %.4f' % mean_squared_error(y_val, pred2))
print('Validation R2 Score : %.4f' % r2_score(y_test, pred2))
728x90
'정리' 카테고리의 다른 글
[DataScience 기초](정리 필요) group-k fold (0) | 2021.10.27 |
---|---|
[pandas] Datetime index (0) | 2021.09.01 |
[210827] 의사결정나무(decision Tree) (0) | 2021.08.27 |
[데이터베이스 강의 정리] 9. 성능 (0) | 2021.08.05 |
[데이터베이스 강의 정리] 8. 백업 및 복구 (0) | 2021.08.05 |