1、Logistic regression 简单介绍
又称对数几率回归;首先,逻辑回归处理是分类问题,对于二分类则是将线性函数的输出结果通过sigmoid函数映射到0/1标签,即越靠近1则判别为正例的概率越大,并最终通过最大似然估计优化求解。
2、 逻辑回归评估器中的参数解释
- LogisticRegression?
参数 | 解释 |
---|---|
penalty | 正则化项 |
dual | 是否求解对偶问题* |
tol | 迭代停止条件:两轮迭代损失值差值小于tol时,停止迭代 |
C | 经验风险和结构风险在损失函数中的权重 |
fit_intercept | 线性方程中是否包含截距项 |
intercept_scaling | 相当于此前讨论的特征最后一列全为1的列,当使用liblinear求解参数时用于捕获截距 |
class_weight | 各类样本权重* |
random_state | 随机数种子 |
solver | 损失函数求解方法* |
max_iter | 求解参数时最大迭代次数,迭代过程满足max_iter或tol其一即停止迭代 |
multi_class | 多分类问题时求解方法* |
verbose | 是否输出任务进程 |
warm_start | 是否使用上次训练结果作为本次运行初始参数 |
l1_ratio | 当采用弹性网正则化时, l 1 l1 l1正则项权重,就是损失函数中的 ρ \rho ρ |
- dual:是否求解对偶问题
对偶问题是约束条件相反、求解方向也相反的问题,当数据集过小而特征较多时,求解对偶问题能一定程度降低运算复杂度,其他情况建议保留默认参数取值。
- class_weight:各类样本权重
class_weight其实代表各类样本在进行损失函数计算时的数值权重,例如假设一个二分类问题,0、1两类的样本比例是2:1,此时可以输入一个字典类型对象用于说明两类样本在进行损失值计算时的权重,例如输入:{0:1, 1:3},则代表1类样本的每一条数据在进行损失函数值的计算时都会在原始数值上*3。而当我们将该参数选为balanced
时,则会自动将这个比例调整为真实样本比例的反比,以达到平衡的效果。
- solver:损失函数求解方法
损失函数到底采用何种优化方法进行求解,其实最终目的是希望能够更快(计算效率更高)更好(准确性更高)的来进行求解,而硬性的约束条件是损失函数的形态,此外则是用户自行选择的空间。
逻辑回归可选的优化方法包括:
liblinear,这是一种坐标轴下降法,并且该软件包中大多数算法都有C++编写,运行速度很快,支持OVR+L1或OVR+L2;
lbfgs,全称是L-BFGS,牛顿法的一种改进算法(一种拟牛顿法),适用于小型数据集,并且支持MVM+L2、OVR+L2以及不带惩罚项的情况;
newton-cg,同样也是一种拟牛顿法,和lbfgs适用情况相同;
sag,随机平均梯度下降,随机梯度下降的改进版,类似动量法,会在下一轮随机梯度下降开始之前保留一些上一轮的梯度,从而为整个迭代过程增加惯性,除了不支持L1正则化的损失函数求解以外(包括弹性网正则化)其他所有损失函数的求解;
saga,sag的改进版,修改了梯度惯性的计算方法,使得其支持所有情况下逻辑回归的损失函数求解;
- multi_class:选用何种方法进行多分类问题求解
可选OVR和MVM,当然默认情况是auto,此时模型会优先根据惩罚项和solver选择OVR还是MVM,但一般来说,MVM效果会好于OVR。