大型数据集 - ANN
Posted
技术标签:
【中文标题】大型数据集 - ANN【英文标题】:Large dataset - ANN 【发布时间】:2021-04-24 09:23:29 【问题描述】:我正在尝试用 13 个属性对大约 400K 数据进行分类。我用过python sklearn的SVM包,但是没用,后来才知道SVM不适合大数据集分类。然后我使用以下 MLPClassifier 使用 (sklearn) ANN:
MLPClassifier(solver='adam', alpha=1e-5, random_state=1,activation='relu', max_iter=500)
并使用 200K 样本训练系统,并在剩余样本上测试模型。分类效果很好。但是,我担心的是系统过度训练或过度拟合。你能指导我隐藏层的数量和节点大小,以确保没有过拟合吗? (了解到默认实现有100个隐藏神经元,按原样使用默认实现可以吗?)
【问题讨论】:
【参考方案1】:要知道你是否过度拟合,你必须计算:
训练集准确率 测试集准确度计算完这些分数后,进行比较。 如果训练集分数比你的测试集分数好很多,那么你就过拟合了。这意味着您的模型正在“记忆”您的数据,而不是从中学习以做出未来的预测。
如果您过度拟合神经元网络,您可能必须减少层数并减少每层的神经元数量。 没有任何严格的规则规定您需要的层数或神经元数取决于您的数据集大小。在数据集大小相同的情况下,每个数据集的行为可能完全不同。
因此,总而言之,如果您过度拟合,则必须使用不同的层参数和神经元数量来评估模型的准确性,然后观察使用哪些值可以获得最佳结果。您可以使用一些方法来找到最佳参数,例如gridsearchCV
。
【讨论】:
感谢@alex-serra-marrugat!我已经检查过了,他们都给出了相似的分数。也许是这样,因为与特征数量相比,我拥有庞大的数据集? 很高兴我的回答对您有所帮助。那么,关于您提到的内容,您并没有过度拟合。所以你的模型是完全正确的。数量越少,过拟合就越困难,所以,如果你有少量的特征是好的,这对你来说不是问题。 感谢@alex-serra-marrugat!如果他们都给出 1 作为 F1 分数,这是否有问题,因为 ANN 正确分类了他们,没有 FP 或 FN。 看起来很奇怪,也许你的问题很简单,我的意思是,对样本进行分类很容易。您还必须认为 ANN 是一个超级强大的工具。尝试另一种模型,例如随机森林,并检查 F1 分数。但是,您没有过度拟合,因为您还可以通过测试数据获得良好的结果(模型以前没有见过)。以上是关于大型数据集 - ANN的主要内容,如果未能解决你的问题,请参考以下文章
Matlab基于人工神经网络ANN实现多分类预测(Excel可直接替换数据)
Matlab基于人工神经网络ANN实现多分类预测(Excel可直接替换数据)