线性回归和逻辑回归基本知识
1. 线性回归的基本总结
1.1 基本原理
用线性函数你和数据,用MSE计算损失,然后用梯度下降法(GD)找到一组使MSE最小的权重,具体最小二乘法以及正规方程的推导如下图所示
1.2 梯度下降求解
不同的更新办法区别
1.3 线性回归评价指标汇总
2. 逻辑回归的基本总结
2.1 逻辑回归的基本原理
逻辑回归是最基本的分类方法,本质是二分类最大似然估计,采用的激活函数是Sigmoid函数,一般代价函数是交叉熵
优点是:1)模型简单,不容易过拟合 2)可以直接看到每个变量的权重,可解释性强
缺点是:2)有时候过于简单,其实难度都在特征工程上面
LR对数似然以及SGD的推导过程
2.1 逻辑回归L1,L2正则化
L1 Lasso正则化:所有参数绝对值之和
L2 Ridge正则化:所有参数平方之和
L1正则化和L2正则化的原理
L1正则化和L2正则化效果区别
L1正则化由于求导之后是正负1,所以在做梯度下降的时候存在部分系数的下降速度没有变化,最终会导致收敛在0。L2正则求导之后为系数值,随着梯度下降越来越小,最终会收敛在一个比较小的值但不为0。由于L1正则化的这种稀疏性,可以用来进行变量筛选
对于L1正则化进0的位置不可导,解决方法一般有1)坐标轴下降法 2)近端梯度下降法 3)交替方向乘子法
2.2 逻辑回归如何解决多分类的问题
2.3 Python Sklean中逻辑回归调参步骤
- penalty: L1,L2
- C: 惩罚系数的倒数,C越小惩罚越重
- class_weight:给少量标签更多权重,解决数据不平衡的问题
- solver:
liblinear,坐标下降法,会惩罚截距,只支持L2正则化,对未标准化的数据比较有用
lbfgs:拟牛顿法,支支持L2正则化,对未标准化的数据很有用
newton-cg:牛顿法,和lbfgs差不多
sag: 随机平均梯度下降,只支持L2,对大型数据非常友好,不惩罚截距
sage: sag的改进版
实测调整:C会对准确度(AUC)产生影响,但影响有限,一般取0.1就可以
调整L1,L2对于效果影响比较小
L1正则的系数比较小
调整不同的class_weight,可以看到输出概率均值随之变化
class_weight={0: 0.9, 1: 0.1},mean Y result=0.018
class_weight={0: 0.8, 1: 0.2},mean Y result=0.027
class_weight={0: 0.7, 1: 0.3},mean Y result=0.038
class_weight={0: 0.6, 1: 0.4},mean Y result=0.050
class_weight={0: 0.5, 1: 0.5},mean Y result=0.065
class_weight={0: 0.4, 1: 0.6},mean Y result=0.085
class_weight=balanced,mean Y result=0.328