在相同学习率下运行更多纪元的缺点?

时间:2017-04-22 13:37:30

标签: python machine-learning scikit-learn classification data-mining

我从sklearn或scikit模块运行了以下Perceptron函数,n_tera的数量是40。在45个测试数据中,错误分类总数<4>。

sklearn_percep=Perceptron(n_iter=40,eta0=0.1,random_state=0)

后来我让n_iterat成为100但现在错误分类增加到 16中的16

 sklearn_percep=Perceptron(n_iter=100,eta0=0.1,random_state=0)

出于好奇,我又跑了n_itera = 1000,现在错误分类是 45中的5

我正在使用虹膜数据集并且存在3种分类。我知道当学习速率非常低时,时间必须很高才能达到收敛,但真正的高时代如何降低学习算法的性能呢?

我的数据是150个数据行和单个时间分割中的0.3和0.7分割

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

通常,给定足够的时期,稳定的分类器应该收敛。一旦找到了其成本函数的局部最小值,它应该保持在那里。但是,在分类器学习的时候肯定会有噪音。

通常,良好做法是在训练时跟踪测试集的准确性。您可以绘制此图以查看算法收敛的速度。

答案 1 :(得分:0)

n_iter,是Perceptron算法的超参数。根据您的分类问题和您的数据,这个超参数(n_iter)必须正确选择

一个有用的技巧是使用不同数量的整数调整超参数(n_iter)并评估分类准确性。请查看http://scikit-learn.org/stable/modules/grid_search.html了解详情。这是一个很好的功能,可以搜索最佳超级参数,取决于您的数据