早上好
我正在尝试将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
搜索结果: