如何调整最大熵的参数?

How to tune maximum entropy's parameter?

我正在使用 scikit learn 的逻辑回归函数 (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) 进行文本分类。我正在使用网格搜索来为 C 参数选择一个值。我是否需要为 max_iter 参数做同样的事情?为什么?

C 和 max_iter 参数在 Sklearn 中都有默认值,这意味着它们需要调整。但是,据我了解,提前停止和 l1/l2 正则化是避免过度拟合的两种绝望方法,执行其中一种就足够了。我是否假设调整 max_iter 的值等同于提前停止?

总而言之,这是我的主要问题:

1- max_iter 需要调整吗?为什么? (文档说它只对某些求解器有用)

2- 调整 max_iter 是否等同于提前停止?

3- 我们是否应该同时执行提前停止和 L1/L2 正则化?

以下是对您编号问题的一些简单回答,并且经过粗略简化:

  1. 是的,有时你需要调整max_iter。为什么?看下一个。
  2. 没有。 max_iter 是逻辑回归分类器的求解器在停止之前允许逐步执行的迭代次数。目的是使逻辑回归模型的参数达到"stable"的解,即是一个优化问题。如果您的 max_iter 太低,您可能无法获得最佳解决方案并且您的模型不适合。如果你的价值太高,你基本上可以永远等待有一个解决方案,而准确性却很少。如果 max_iter 太低,您也可能会陷入局部最优。
  3. 是或否。

    一个。 L1/L2 正则化 本质上是复杂模型的 "smoothing",因此它不会过度拟合训练数据。如果参数变得太大,它们会在成本中受到惩罚。

    b。 提前停止 是指在您认为可以接受的某个阶段(max_iter 之前)停止优化模型(例如,通过梯度下降)。例如,诸如 RMSE 之类的指标可用于定义何时停止,或与 test/training 数据中的指标进行比较。

    c。什么时候使用它们?这取决于您的问题。如果你有一个简单的线性问题,具有有限的特征,你将不需要正则化或提前停止。如果您有数以千计的特征并且经历过拟合,那么应用正则化作为一种解决方案。如果您不想在使用参数时等待优化 运行 结束,因为您只关心特定级别的准确性,您可以 应用提前停止 .

最后,如何正确调整max_iter?这取决于您手头的问题。如果您发现您的分类指标显示您的模型表现不佳,则可能是您的求解器没有采取足够的步骤来达到最小值。我建议您手动执行此操作并查看成本与 max_iter 以查看它是否正确地达到最低而不是自动化。