学习曲线与培训和验证相同?

时间:2018-04-30 21:28:25

标签: machine-learning scikit-learn neural-network

我一直在使用scikit-learn的MLPRegressor训练神经网络,使用ShuffleSplit,其中包含10个分割和20%的数据用于测试。首先,我使用GridSearchCV来查找好的参数。然后我用这些参数实例化一个新的(不合适的)估计器,最后使用plot_learning_curve函数,一个MAPE记分器和相同的ShuffleSplit cv。

在我见过的大多数学习曲线示例中,验证和训练曲线明显是分开的。然而,我一直在学习曲线,其中交叉验证和训练曲线几乎相同。我应该如何插入这个 - 它看起来是否真实,或者我在某个地方犯了错误?

Learning Curve

根据要求,这里是代码:

try{
  capture = createCapture(VIDEO);
}
catch(error){
  // error handling here
}

这是我的得分手:

node_range = list(range(1,16))
layer_range = range(1,6)
hidden_sizes = [(nodes,) * layers for layers in layer_range for nodes in node_range]

param_grid = [{'hidden_layer_sizes': hidden_sizes,
               'activation': ['relu'],
               'learning_rate_init': [0.5]}
              ]

cv = ShuffleSplit(n_splits=10, test_size=0.2)

search = GridSearchCV(estimator, param_grid, cv=cv, scoring=neg_MAPE, refit=True)
search.fit(X, y)
best_params = search.best_params_
estimator = MLPRegressor().set_params(**best_params)

plot_learning_curve(estimator, X, y, cv=cv, scoring=neg_MAPE)

0 个答案:

没有答案