最开始学习手动编写梯度下降循环代码求解逻辑回归参数时,都是要设置步长和迭代次数、损失函数阈值等停止条件,并且根据收敛图像多次调整这些参数才可以得到一个相对不错的模型。
然后接触 sklearn 时,怎么看到都是简单的一句话就求解好了,并没有看到调整过程;很多教程会告诉你 LogisticRegression 的各种参数意义,但没有更多解释,多数示范代码也没有用到太多参数。
是因为 solver 选择的方法和步长什么的没有关系了吗?还是因为那些高级方法(例如cg/lbfs)可以自己选择合适的步长和停止条件?
问题2,看到 LogisticRegression 里的默认参数 tol=0.0001,最大迭代次数 max_iter=100,这两个停止条件都有默认值,但是不冲突的吗?一定会有达到最大迭代次数时 tol 没到 0.0001 的时候,那会怎么样呢?编写代码过程中尝试了交叉验证不同的tol和max_tier参数,结果如下图,各项评分竟然都是一样的...无法理解。。。
小白自学过程中总会想到一些奇怪的问题...望过路大神答疑解惑,灰常感谢!