実現したいこと
Pythonで実装したグリッドサーチの解析結果を固定する
前提
scikit-learnのload_breast_cancerのデータをCARTにより分析する際に、最良のパラメータ(今回は木の深さ)を見つけ出すためにグリッドサーチを使っています。
深さの探索範囲を1~10とし、実際にグリッドサーチにより深さを求めたところ、最良の深さが解析するごとに変化してしまいます。
これは何かしらコードにミスがあるのか、それとも仕様なのかを知りたいです。
Python
1from sklearn.model_selection import GridSearchCV 2from sklearn.tree import DecisionTreeClassifier 3from sklearn.model_selection import train_test_split 4from sklearn.datasets import load_breast_cancer 5 6cancer = load_breast_cancer()7 8X_train, X_test, Y_train, y_test = train_test_split(cancer.data, cancer.target, 9 test_size=0.3, shuffle=True, random_state=010 )11 12param_grid = {'max_depth': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}13 14print("Parameter grid:\n{}".format(param_grid))15 16grid_search = GridSearchCV(DecisionTreeClassifier(criterion='gini'), param_grid, cv=5)17 18grid_search.fit(X_train, Y_train)19 20print("Test set score: {:.2f}".format(grid_search.score(X_test, y_test)))21print("Best parameters: {}".format(grid_search.best_params_))22print("Best cross-validation score: {:.2f}".format(grid_search.best_score_))
試したこと
train_test_splitのrandom_stateは固定していて、分割されたデータの中身を確認してみても中身は変化していないので、分析対象のデータが変更されているということはないと考えています。
補足情報(FW/ツールのバージョンなど)
Anacondaのspyderを使用しています。
0 コメント