我正在尝试用13个属性对大约40万个数据进行分类。我使用过python sklearn的SVM包,但它不起作用,然后我了解到SVM不适合大数据集分类。然后我使用了(sklearn) ANN,使用了下面的MLPClassifier:
MLPClassifier(solver='adam', alpha=1e-5, random_state=1,activation='relu', max_iter=500)并使用200K样本对系统进行了训练,并在其余样本上对模型进行了测试。这种分类效果很好。然而,我担心的是该系统训练过度或过度适应。你能指导我隐藏层的数量和节点大小,以确保没有过拟合吗?(我了解到默认实现有100个隐藏神经元。是否可以按原样使用默认实现?)
发布于 2021-01-20 15:19:10
要知道你是否过拟合,你必须计算:
一旦你计算了这个分数,就比较它。如果训练集分数比测试集分数高得多,那么您就过度拟合了。这意味着你的模型正在“记忆”你的数据,而不是从中学习来做出未来的预测。
如果你过度拟合神经元网络,你可能不得不减少层数,并减少每层神经元的数量。根据数据集大小,没有任何严格的规则来说明所需的层数或神经元数。对于相同的数据集大小,每个数据集可以表现出完全不同的行为。
因此,总而言之,如果你过度拟合,你将不得不使用不同的层参数和神经元数量来评估模型的准确性,然后观察哪些值可以获得最佳结果。有一些方法可以用来找到最佳参数,比如gridsearchCV。
https://stackoverflow.com/questions/65802314
复制相似问题