scikit-learn MLPRegressor表现上限

时间:2017-06-28 13:15:30

标签: python performance scikit-learn neural-network supervised-learning

早上好

我正在尝试将sklearn Multilayer Perceptron Regressor安装到具有约350个特征和1400个样本的数据集中,严格为正目标(房价)。在隐藏层大小上执行单步GridSearch显示,从隐藏层中的5个神经元开始,均方根对数误差根本没有显着变化。我还观察到了两个隐藏层,从大小(1,1)到(70,70)。 RMSLE约为0.23,岭回归给我约0.14作比较。

我的任何超参数都会影响性能还是正常?

mlp = MLPRegressor()
param_grid = {'hidden_layer_sizes': [i for i in range(1,15)],
              'activation': ['relu'],
              'solver': ['adam'],
              'learning_rate': ['constant'],
              'learning_rate_init': [0.001],
              'power_t': [0.5],
              'alpha': [0.0001],
              'max_iter': [1000],
              'early_stopping': [False],
              'warm_start': [False]}
_GS = GridSearchCV(mlp, param_grid=param_grid, scoring=scorer,
                   cv=kf, verbose=True, pre_dispatch='2*n_jobs')
_GS.fit(X, y)

我使用自定义均方根对数误差评分函数(是的,对负面预测的处理不当):

def rmsle_vector(y, y0):
    assert len(y) == len(y0)
    y0[y0 <= 0] = 0.000000001 # assert prediction > 0
    return np.sqrt(np.mean(np.power(np.log1p(y)-np.log1p(y0), 2))) *-1

搜索结果: 3D Graph: GridSearch for hidden layer sizes from (1,1) to (70,70)

0 个答案:

没有答案