如何调整最大熵的参数?



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

c和max_iter参数在Sklearn中具有默认值,这意味着需要调整它们。但是,据我了解,早期停止和L1/L2正则化是避免过度拟合和执行其中一个的两种绝望方法是足够的。我假设调谐max_iter的值等于早期停止吗?

是不正确的吗?

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

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

2-调整ax_iter等效于早期停止?

3-我们应该同时执行早期停止和L1/L2正则化吗?

以下是对您的编号问题的一些简单回答,并且非常简化:

  1. 是的,有时您需要调整max_iter。为什么?请参阅下一个。
  2. 不。max_iter是允许逻辑回归分类器的求解器在停止之前逐步启动的迭代次数。目的是为逻辑回归模型的参数达到"稳定"解决方案,即这是一个优化问题。如果您的max_iter太低,则可能无法达到最佳解决方案,并且模型不足。如果您的价值太高,那么您可以永远等待解决方案,以获取精确度。如果max_iter太低,您也可能会陷入本地Optima。
  3. 是或编号

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

    b。早期停止是在您认为可以接受的某个阶段(max_iter之前)停止优化模型(例如,通过梯度下降)。例如,可以使用诸如RMSE之类的度量来定义何时停止,或者从您的测试/培训数据中比较指标。

    c。什么时候使用它们?这取决于您的问题。如果您有一个简单的线性问题,功能有限,则不需要正则化或尽早停止。如果您有成千上万的功能和经验过高,则将正则化作为一种解决方案。如果您不想等待优化在玩参数时运行到结束,因为您只关心一定程度的准确性,则可以提早停止。。

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

最新更新