import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# KNN 모델
from sklearn.neighbors import KNeighborsClassifier
# 결정트리 모델
from sklearn.tree import DecisionTreeClassifier
# 랜덤포레스트 모델
from sklearn.ensemble import RandomForestClassifier
# iris 데이터
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 그리드 서치 임포트
from sklearn.model_selection import GridSearchCV
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris('data'),
iris('target'),
test_size = 0.3,
random_state = 3)
X_train.shape, X_test.shape, y_train.shape, y_test.shape
### KNN 모델에 그리드 서치 적용
param_knn = {"n_neighbors":range(1,10,1)}
# GridsearchCV(모델,하이퍼파라미터 및 범위 , 교차검증 수)
grid_search_knn = GridSearchCV(KNeighborsClassifier(),param_knn, cv =10)
grid_search_knn.fit(X_train,y_train)
import warnings
warnings.filterwarnings('ignore')
print("최적의 하이퍼 파라미터 : ",grid_search_knn.best_params_)
print("최고 교차 검증 점수 (정확도) : ",grid_search_knn.best_score_)
# 최고 서능 모델은 grid_search_knn 객체에 저장되어 있기 때문에 쓰지 않아도 됨
print("최고 성능 모델 :",grid_search_knn.best_estimator_)
grid_search_knn.score(X_test,y_test)
### 디시전트리 모델에 그리드 서치 적용
- max_depth 범위: range(1,5,1)
- max_leaf_node 범위 : range(1,50,10)
- min_samples_leaf 범위 : range(1,150,10)
param_deci = {"max_depth" : range(1,5,1), # 1 2 3 4 5
"max_leaf_nodes":range(1,50,10), # 1 11 21 31 41
"min_samples_leaf":range(1,150,10)} # 1 11 21 31...141
grid_search_deci = GridSearchCV(DecisionTreeClassifier(),param_deci,cv=10)
grid_search_deci.fit(X_train,y_train)
print("최적의 하이퍼 파라미터 : ",grid_search_deci.best_params_)
print("최고 교차 검증 점수 (정확도) : ",grid_search_deci.best_score_)
# 최고 서능 모델은 grid_search_deci 객체에 저장되어 있기 때문에 쓰지 않아도 됨
print("최고 성능 모델 :",grid_search_deci.best_estimator_)
### 랜덤 포레스트 모델에 그리드 서치 적용
- n_estimators : ranget(1,20,5)
위에랑 똑같이 하면 된다
RandomForestClassifier?
이 코드는 Scikit-Learn의 KNN, Decision Tree 및 Random Forest 모델에 그리드 검색을 적용합니다.
- 홍채 데이터를 가져와 훈련 데이터와 테스트 데이터로 나눕니다.
- 그리드 검색은 ANN 모델에 적용됩니다.
찾을 하이퍼파라미터는 n_neighbors,
범위는 1에서 10까지 설정됩니다. - 의사 결정 트리 모델에 그리드 검색을 적용합니다.
찾아야 할 하이퍼파라미터는
max_depth, max_leaf_nodes, min_samples_leaf, 각각 정의된 범위가 있습니다. - 랜덤 포레스트 모델에 그리드 서치를 적용할 계획입니다.
그리드 서치가 적용된 모델의 검색 결과인 하이퍼파라미터,
가장 높은 교차 유효성 검사 점수와 최고 성능 모델을 반환합니다.