【发布时间】:2019-05-01 02:06:19
【问题描述】:
我想使用自定义损失函数在 scikit learn 中训练神经网络;使用 MLPClassifier。我想更加重视更大的价值。因此,我想使用诸如均方误差之类的东西,但将分子乘以 y。因此,它看起来像:
1/n∑y(yi-y(hat)i)^2
这是我的模型的代码:
mlp10 = MLPClassifier(hidden_layer_sizes=(150,100,50,25,10), max_iter=1000,
random_state=42)
mlp10.fit(X_train, y_train)
如何修改损失函数?
【问题讨论】:
-
使用 MSE 进行分类通常被认为是一个坏主意,这就是 MLPClassifier 使用交叉熵的原因。
-
我的数据集包含许多较小的值(0、0.5、1、1.5)和较少的较大值(>8)。我想正确预测那些更大的值。如果模型预测为 5,而每个示例的实际值为 0 或 2,我不介意,但是,如果模型预测为 2,而实际值为 14,则成本非常高。因此,我在考虑修改损失函数,但可能有更好的方法。
标签: python scikit-learn neural-network loss-function