运行 更多 epoch 的缺点是相同的学习率?

Disadvantages of running more epochs on same learn rate?

我运行以下来自sklearn或scikit模块的Perceptron函数和n_tera的数量是40。错误分类总数是 45 个测试数据中的 4 个。

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

后来我将 n_iterat 设置为 100,但现在错误分类增加到 16/45

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

出于好奇,我再次 运行 n_itera=1000,现在错误分类是 5,共 45

我正在使用 Iris 数据集,3 个分类是 present.I 知道当学习率非常低时,时代必须很高才能达到收敛,但真正高的时代如何降低学习性能算法 ?

我的数据是 0.3 和 0.7 拆分出的 150 个数据行和一次拆分

感谢您的宝贵时间。

一般来说,给定足够的 epoch,一个稳定的分类器应该会收敛。一旦找到成本函数的局部最小值,它就应该留在那里。但是,分类器在学习的时候肯定会有噪声。

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

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

一个有用的技巧是使用不同数量的整数调整超参数 (n_iter) 并评估分类精度。尝试查看 http://scikit-learn.org/stable/modules/grid_search.html 了解详细信息。这是一个搜索最佳超参数的好函数,取决于你的数据