我正在尝试解决我得到的错误,但没有运气。
我的目标是为神经网络执行带有交叉验证的GridSearch(Leave One Out)。 我正在使用sklearn和python 2.7。我有300个样本。
这是我的代码:
from sklearn.model_selection import LeaveOneOut
from sklearn import metrics
from sklearn.neural_network import MLPClassifier
from sklearn import grid_search
my_cv = LeaveOneOut()
param_grid = {'hidden_layer_sizes': [(249,),(500,),(250,),(10,)],
'activation': ('relu', 'logistic'),'solver':
('sgd','adam'),'learning_rate_init':[0.005,0.05,0.001]}
nn = MLPClassifier(alpha=0.001,random_state=1,nesterovs_momentum=True)
clf = grid_search.GridSearchCV(estimator=nn, param_grid=param_grid, cv=my_cv)
clf.fit(X, y)
print clf.best_score_
print clf.best_params_
我得到的错误是: TypeError:'LeaveOneOut'对象不可迭代
请注意,如果我使用KFold(n_splits = 300)而不是LeaveOneOut(),则会发生同样的事情。
更新
已解决:替换后
from sklearn import grid_search
带
from sklearn.model_selection import GridSearchCV
感谢@mkaran