我正在尝试使用scikit learn mlprepressor进行一些有监督的学习。我想知道什么是时代数字在监督学习中的杠杆作用。在
但当我把MLP设置成这样:
mlp = MLPRegressor(max_iter=100, learning_rate_init=0.1)
然后这个:
^{pr2}$然后这个:
mlp = MLPRegressor(max_iter=500, learning_rate_init=0.1)
预测分数保持不变。 我不知道用max_iter来设置epoch的数目是否正确,因为虽然我改变了max_iter的数目,但是预测分数是恒定的。 但是当我改变学习率的时候,分数也会改变,所以学习率有一些杠杆作用。在
有人能帮忙吗?谢谢
使用} 的文档:
max_iter
确实是限制纪元数量的正确方法。根据^{注意,它们的实现也有一个针对
tol
参数的收敛性检查,即,当两个迭代之间的代价变化小于tol
时,学习将停止。tol
默认设置为0.0001(10e-4),这可能对您的用例/训练数据有太大的容忍度,也可能不是太大。在您的例子中,这个精度似乎在100次迭代之前就达到了(
max_iter=100
)。粗略地说,通过使优化器能够在训练集中更长时间地搜索最优解决方案,时间的数量起到了杠杆作用。但是正如@fxx所说,如果两次迭代之间的成本变化不小于
tol
,mlprepressor实现将停止epoch的数量。在您的例子中,您可以减少tol
参数,以迫使算法运行更长时间。为了实现更好的性能,您还可以检查算法的
learning_rate
。0.1可能有点太多了,因此优化器可能会超调。相关问题 更多 >
编程相关推荐