Я строил свой алгоритм MLP и пытался использовать k-кратную перекрестную проверку в сочетании с поиском по сетке, чтобы найти наилучшую комбинацию скрытых слоев / узлов.
Сначала я пытался просто варьировать альфа-уровни, и это сработало, и я использовал:
from sklearn.model_selection import cross_val_score
import numpy as np
from sklearn.neural_network import MLPClassifier
import matplotlib.pyplot as plt
import mglearn
mlp = MLPClassifier()
param_grid = {'alpha': np.arange(0,1,0.5)}
knn_gscv = GridSearchCV(mlp, param_grid, cv=5)
#fit model to data
knn_gscv.fit(X, y)
#check top performing n_neighbors value
print("best alpha value is",knn_gscv.best_params_)
#check mean score for the top performing value of n_neighbors
print("best score best alpha",knn_gscv.best_score_)
Это сработало. Но теперь я пытался изменить количество скрытых слоев и узлов и попытался это сделать:
from sklearn.model_selection import cross_val_score
import numpy as np
from sklearn.neural_network import MLPClassifier
import matplotlib.pyplot as plt
import mglearn
mlp = MLPClassifier()
param_grid = {'hidden_layer_sizes': np.arange([10,10],[20,20],[30,30])}
knn_gscv = GridSearchCV(mlp, param_grid, cv=5)
#fit model to data
knn_gscv.fit(X, y)
#check top performing n_neighbors value
print("best alpha value is",knn_gscv.best_params_)
#check mean score for the top performing value of n_neighbors
print("best score best alpha",knn_gscv.best_score_)
Но я получаю сообщение об ошибке. Я думаю, это потому, что np.array () плохо работает со списками в качестве входных данных. Но я все еще считаю, что должен использовать np.array, так как это самый простой способ реализовать его с помощью поиска по сетке. Есть ли способ go обойти это?