머신러닝 –

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 모델에 그리드 검색을 적용합니다.

  1. 홍채 데이터를 가져와 훈련 데이터와 테스트 데이터로 나눕니다.

  2. 그리드 검색은 ANN 모델에 적용됩니다.

    찾을 하이퍼파라미터는 n_neighbors,
    범위는 1에서 10까지 설정됩니다.

  3. 의사 결정 트리 모델에 그리드 검색을 적용합니다.

    찾아야 할 하이퍼파라미터는
    max_depth, max_leaf_nodes, min_samples_leaf, 각각 정의된 범위가 있습니다.

  4. 랜덤 포레스트 모델에 그리드 서치를 적용할 계획입니다.

그리드 서치가 적용된 모델의 검색 결과인 하이퍼파라미터,
가장 높은 교차 유효성 검사 점수와 최고 성능 모델을 반환합니다.