我从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分割
感谢您的时间。
答案 0 :(得分:0)
通常,给定足够的时期,稳定的分类器应该收敛。一旦找到了其成本函数的局部最小值,它应该保持在那里。但是,在分类器学习的时候肯定会有噪音。
通常,良好做法是在训练时跟踪测试集的准确性。您可以绘制此图以查看算法收敛的速度。
答案 1 :(得分:0)
n_iter,是Perceptron算法的超参数。根据您的分类问题和您的数据,这个超参数(n_iter)必须正确选择
一个有用的技巧是使用不同数量的整数调整超参数(n_iter)并评估分类准确性。请查看http://scikit-learn.org/stable/modules/grid_search.html了解详情。这是一个很好的功能,可以搜索最佳超级参数,取决于您的数据