scikit-learn의 실복 훈련 3~심도 있는 학습을 통해 탐색하기~

저번에 한 일


머신러닝에서는 고객 정보에 따라 고객이 정기예금을 신청할 확률을 예측했다.
논리 회귀, 랜덤 숲과 지원 벡터기저번를 사용한 최고 점수는
grid best score, 0.9296152371929293
Test set AUC: 0.90
네.
지난번의 물류 회귀 모델의 결과
grid best score, 0.9383648126404396
Test set AUC: 0.91
조금 뒤떨어지다.

이번에 할 일


딥러닝 MLPClassifier를 사용하여 높은 정밀도를 목표로 합니다.
설치 코드는 여기.의bank3입니다.py
매크로 패키지 가져오기(마지막과 조금 다름)
import numpy as np
import pandas as pd
from sklearn.model_selection import *
from sklearn.pipeline import Pipeline
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
import warnings
import mglearn
# 実行上問題ない注意は非表示にする
warnings.filterwarnings('ignore') 
데이터 읽기(마지막과 동일)
df = pd.read_csv("data/bank_01.csv")
#ワンホットエンコーディング
data_dummies = pd.get_dummies(df)

features = data_dummies.loc[:, 'age':'poutcome_success']
X = features.values
y = data_dummies['y_no'].values
#データ確認
print("X.shape: {}  y.shape: {}".format(X.shape, y.shape))
print(data_dummies.y_no.value_counts())
GridSearchCV를 사용하여 최적 알파, 숨겨진 레이어 찾기
시간이 많이 걸려서 max.iter의 위치를 낮추거나 매개 변수의 수를 낮추는 것을 권장합니다.한 시간 남짓 걸렸어요.
pipe = Pipeline([('scaler', StandardScaler()), ('classifier', MLPClassifier(max_iter=200000))])
param_grid = {'classifier__alpha':[0.01, 0.1, 1, 10 ], 'classifier__hidden_layer_sizes': [[10], [100], [1000], [10000], [100000]]}
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
grid = GridSearchCV(pipe, param_grid=param_grid, cv=2, return_train_score=False,  scoring="roc_auc")
grid.fit(X_train, y_train)
print("Best parameters: ", grid.best_params_)
print("grid best score, ", grid.best_score_)
print("Test set accuracy: {:.2f}".format(grid.score(X_test, y_test)))

결실
Best parameters: {'classifier_alpha': 10, 'classifier_hidden_layer_sizes': [10]}
grid best score, 0.9368240651853158
Test set accuracy: 0.91
지난번의 물류 회귀 모델의 결과와 병렬한다.
테스트 데이터를 통해 열 매핑 확인
xa = 'classifier__hidden_layer_sizes'
xx = param_grid[xa]
ya = 'classifier__alpha'
yy = param_grid[ya]
plt.figure(figsize=(5,8))
scores = np.array(grid.cv_results_['mean_test_score']).reshape(len(yy), -1)
mglearn.tools.heatmap(scores, xlabel=xa, xticklabels=xx, 
                      ylabel=ya, yticklabels=yy, cmap="viridis")
결실

숨겨진 층이 클수록 높은 점수를 확인할 수 있습니다.
알파는 아무런 영향이 없나요?

좋은 웹페이지 즐겨찾기