我想知道Weka的简单逻辑函数是否使用正则化。
我在文档中没有看到任何相关提及,但我并不确定。有人能确认这一点吗?
*用于构建线性逻辑回归模型的分类器。LogitBoost使用简单回归函数作为基础学习器来拟合逻辑模型。最佳的LogitBoost迭代次数通过交叉验证确定,这导致了自动属性选择。更多信息请参见:
Niels Landwehr, Mark Hall, Eibe Frank (2005). 逻辑模型树。Marc Sumner, Eibe Frank, Mark Hall: 加速逻辑模型树的归纳。在:第9届欧洲知识发现原理与实践会议,675-683,2005年。
选项
调试 — 如果设置为true,分类器可能会向控制台输出额外信息。useCrossValidation — 设置是否对LogitBoost迭代次数进行交叉验证,还是在训练集上使用停止标准。如果未设置(并且没有给出固定的迭代次数),则使用在训练集上最小化错误的LogitBoost迭代次数(分类错误或根据errorOnProbabilities的概率错误)。
errorOnProbabilities — 在确定最佳LogitBoost迭代次数时,使用概率上的错误作为错误度量。如果设置,则选择最小化均方根误差的LogitBoost迭代次数(在训练集上或在交叉验证中,根据useCrossValidation)。weightTrimBeta — 设置LogitBoost中用于权重修剪的beta值。只有携带前一迭代中(1 – beta)%权重的实例才会在下一迭代中使用。设置为0表示不进行权重修剪。默认值为0。numBoostingIterations — 设置LogitBoost的固定迭代次数。如果 >= 0,则设置执行的LogitBoost迭代次数。如果 < 0,则根据useCrossValidation的值,迭代次数通过交叉验证或在训练集上使用停止标准来确定。
useAIC — 使用AIC来确定何时停止LogitBoost迭代(而不是使用交叉验证或训练误差)。
heuristicStop — 如果heuristicStop > 0,则启用在交叉验证LogitBoost迭代次数时的贪婪停止启发式。这意味着如果在过去的heuristicStop迭代中没有达到新的错误最小值,则停止LogitBoost。建议使用此启发式方法,尤其在小数据集上能大幅加速。默认值为50。
maxBoostingIterations — 设置LogitBoost的最大迭代次数。默认值为500,对于非常小/大的数据集,可能需要较低/较高的值。*
回答:
Weka中有多种逻辑回归:
- SimpleLogistic – 不使用正则化
- LogisticBase – 不使用正则化(它是SimpleLogistic的辅助类)
- LogitBoost – 不使用正则化(如该论文中所实现)
- Logistic – 使用岭正则化(
-r
参数)