我已经使用MLPClassifier一段时间了,我认为我对函数在整个过程中所做的事情有一个错误的解释,我想我现在就知道了,但是我不确定。因此,我将总结一下我的理解,并且如果您能对正确的理解添加您的想法,那将是很棒的。
因此,借助MLPClassifier,我们正在基于训练数据集构建神经网络。设置early_stopping = True
可以在训练过程中使用验证数据集,以便检查网络是否也正在使用新的集合。如果为early_stopping = False
,则过程中将不进行任何验证。完成构建后,如果需要,我们可以使用拟合模型来预测第三个数据集。
我以前想过的是,在整个培训过程中,都会将验证数据集放在一边,并在每个时期之后进行验证。
我不确定我的问题是否可以理解,但是如果您能帮助我清除我的想法,那将是很好的选择。
答案 0 :(得分:0)
sklearn.neural_network.MLPClassifier默认使用随机梯度下降(SGD)。您的问题可能更笼统地描述为在有监督的学习环境中如何使用SGD优化参数值。此处没有特定的多层感知器(MLP)。
因此,借助MLPClassifier,我们正在基于训练数据集构建神经网络。设置
early_stopping = True
可以在训练过程中使用验证数据集
正确,但是应该注意,该验证集已从原始训练集中删除。
为了检查网络是否也正在使用新的集合。
不完全是。尽早停止的目的是在训练过程中跟踪验证分数,并在验证分数停止明显改善后立即停止训练。
如果
early_stopping = False
,则不会在过程中进行任何验证。完成构建后,如果需要,我们可以使用拟合模型来预测第三个数据集。
正确。
我以前想过的是,在整个训练过程中,都会将验证数据集放在一边,并在每个时期之后进行验证。
您可能现在已经知道,事实并非如此。将学习过程划分为几个时期是任意的,与验证无关。