ニューラルネットワークでのクラス分類を行うのに、パラメータ(隠れ層・最大反復学習回数)の最適化を行おうとしました。最も最適化手法として有効であるのが、交差検証を用いたグリッドサーチと思われたのでGridsearchCVを使ってみました。以下が用いたコードとなります。
Python
1import pandas as pd 2import numpy as np 3from sklearn.model_selection import train_test_split 4from sklearn import preprocessing 5from sklearn.neural_network import MLPClassifier 6from sklearn.model_selection import cross_val_score 7from sklearn.model_selection import GridSearchCV 8 9#csvファイルの読み込み 10df = pd.read_csv('sasayama_2019.csv', 11 encoding = "shift-jis", 12 skiprows = 1, 13 names = ['ID','dummy1','dummy2','dummy3','dummy4','dummy5','dummy6','dummy7','dummy8','dummy9','dummy10','menseki','totiriyou','dummy11','dummy12','0722R','dummy13','0604R','dummy14','0611R','dummy15','0525A','dummy16','0606A','dummy17','0513A','R_avg','A_avg','rorn']) 14 15#使わない列の削除 16sasa=df.drop(['dummy1','dummy2','dummy3','dummy4','dummy5','dummy6','dummy7','dummy8','dummy9','dummy10','dummy11','dummy12','dummy13','dummy14','dummy15','dummy16','dummy17'],axis = 1) 17sasa = sasa.dropna(how='any') 18 19#説明変数の選択 20#Sentinel-1Aの3時期+RADERSAT-2の3時期(列の抽出) 21X=sasa.iloc[:,3:9] 22#目的変数(土地利用)の設定 23y=sasa['totiriyou'] 24 25#教師データとテストデータの分割 26X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) 27 28#標準化 29scaler = preprocessing.StandardScaler() 30scaler.fit(X_train) 31X_train = scaler.transform(X_train) 32X_test = scaler.transform(X_test) 33 34param_grid = {'hidden_layer_sizes': [(100,100),(10,10),(100,),(10,)], 35 'max_iter': [10000,1000,100,10]} 36 37grid_search = GridSearchCV(MLPClassifier(), param_grid, cv=5) 38grid_search.fit(X_train, y_train) 39print("P.260~") 40print("Test set score: {:.2f}".format(grid_search.score(X_test, y_test))) 41print("Best parameters: {}".format(grid_search.best_params_)) 42print("Best cross-validation score: {:.2f}".format(grid_search.best_score_)) 43print("Best estimator:\n{}".format(grid_search.best_estimator_))
しかし、最適化された結果として出力されるパラメータは毎回異なっていました。なぜこのような結果となっているのか教えていただいてもよろしいでしょうか。
機械学習を始めて間もないため、簡単なことかもしれれませんが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/10 05:41