728x90
기법 정리 DecisionTreeRegressor & Random Search
회귀 문제
LinearRegression
KNeighborsRegressor
DecisionTreeRegressor
RandomForestRegressor
XGBRegressor
DecisionTree, Random Search
![](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
1) 라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
2) 데이터 준비
# x, y 분리
# medv : 본인 소유 주택 가
target = 'medv'
x = data.drop(target, axis=1)
y = data.loc[:, target]
# 학습용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state=1)
3) DecisionTreeRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import cross_val_score
from sklearn.metrics import mean_absolute_error, r2_score
model_dt = DecisionTreeRegressor(random_state=1)
# 성능예측
cv_score = cross_val_score(model_dt, x_train, y_train, cv=5)
# 결과 확인
print(cv_score)
print(cv_score.mean())
4) 모델 튜닝
from sklearn.tree import DecisionTree
from skelarn.model_selection import RandomizedSearchCV
![](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
![](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
# max depth : 1~50
params = {'max_depth' : range(1,50)}
model_dt = DecisionTreeRegressor(random_state)
model = RandomizeCV(nidek_dt,
param,
cv =5,
n_iter = 20,
scoring = 'r2')
# 결과 확인
** model.cv_results_['mean_test_score'] : 테스트로 얻은 성능
** model.best_parms_ : 최적의 파라미터
** model.best_score_ : 최고 성능
print(model.cv_results_['mean_test_score'])
print('최적 파라미터:', model.best_params_)
print('최고 성능:', model.best_score
![](https://blog.kakaocdn.net/dn/EVWKt/btsANLsdSq7/A9rZOU9inAl9Bju8UbzPT0/img.png)
# 변수 중요도
## model.best_estimator_
plt.barh( y = list(x), width = model.best_estimator_.feature_importances_) # 최선의 파라미터로 된 DecisionTree이다.
![](https://blog.kakaocdn.net/dn/5Xamp/btsAMstc9Ef/IMi1PrMjKRHvK9Q1ijB4z0/img.png)
728x90
'프로젝트, 공모전 > 프로젝트 공모전_데이터 분석' 카테고리의 다른 글
데이터분석_공모전_DBI] 데이터 분석 (0) | 2023.09.23 |
---|---|
데이터분석_공모전_DBI] 기법 정리 K-means (0) | 2023.09.23 |
데이터 분석_공모전_서울교육] 교직원 1인당 학생 수 (0) | 2023.08.20 |
데이터분석_공모전_서울교육] 서울 공공데이터 활용 (0) | 2023.08.20 |
데이터분석_공모전_서울교육] 서울 학교 데이터 분석 (0) | 2023.08.19 |