逻辑回归算法


活动地址:CSDN21天学习挑战赛

概念

引例

逻辑回归算法_第1张图片

我们无法做到,根据年龄和是否的冠心病的散点图,得到回归

——因此,我们将年龄这个连续值和是否的冠心病进行转换

逻辑回归算法_第2张图片

——然后,我们就能得到逻辑斯特回归曲线

逻辑回归算法_第3张图片

定义

背景:1838年由比利时学者Verhulst首次提出;1920年美国学者Bearl & Reed在研究果蝇的繁殖中发现和使用该函数,并在人口估计和预测中推广使用

l o g i s t i c 函数的值域为 [ 0 , 1 ] f ( x ) = e x 1 + e x 用 p i = P ( y i = 1 ∣ x i 1 , x i 2 , . . . , x i p ) logistic函数的值域为[0,1]\\ f(x)=\frac{e^x}{1+e^x}\\ 用 p_i=P(y_i=1|x_{i1},x_{i2},...,x_{ip}) logistic函数的值域为[0,1]f(x)=1+exexpi=P(yi=1∣xi1,xi2,...,xip)

作为因变量,得到 l o g i s t i c 回归模型 p i = e x p ( α + β 1 x i 1 + β 2 x i 2 + . . . + β p x i p ) 1 + e x p ( α + β 1 x i 1 + β 2 x i 2 + . . . + β p x i p ) l n p i 1 − p i = α + β 1 x i 1 + β 2 x i 2 + . . . + β p x i p p i 就是患病的概率 作为因变量,得到logistic回归模型\\ p_i=\frac{exp(\alpha+\beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip})}{1+exp(\alpha+\beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip})}\\ ln\frac{p_i}{1-p_i}=\alpha+\beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip}\\ p_i就是患病的概率 作为因变量,得到logistic回归模型pi=1+exp(α+β1xi1+β2xi2+...+βpxip)exp(α+β1xi1+β2xi2+...+βpxip)ln1pipi=α+β1xi1+β2xi2+...+βpxippi就是患病的概率

逻辑回归特点:线性分类器

最简单的逻辑回归就是线性分类器,如左图

而如右图的,则是非线性的分类器

逻辑回归算法_第4张图片

——为什么是逻辑回归是线性分类器
∙ 逻辑斯特回归函数: l n p i 1 − p i = α + β 1 x i 1 + β 2 x i 2 + . . . + β p x i p L o g i t ( l o g i s t i c    p r o b a b i l i t y    u n i t ) 变换 : 定义: L o g i t ( p i ) = l n p i 1 − p i ∙ 得到 L o g i t ( p i ) = α + β 1 x i 1 + β 2 x i 2 + . . . + β p x i p + ε i L o g i t 变换的特点: L o g i t ( p i ) = l n p i 1 − p i ∈ ( 0 , + ∞ ) [ 正类 ] L o g i t ( p i ) = l n p i 1 − p i ∈ ( − ∞ , 0 ) [ 负类 ] \bullet 逻辑斯特回归函数:\\ ln\frac{p_i}{1-p_i}=\alpha+\beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip}\\ Logit(logistic\,\,probability\,\,unit)变换:\\ 定义:Logit(p_i)=ln\frac{p_i}{1-p_i}\\ \bullet 得到Logit(p_i)=\alpha+\beta_1x_{i1}+\beta_2x_{i2}+...+\beta_px_{ip}+\varepsilon_i\\ Logit变换的特点:\\ Logit(p_i)=ln\frac{p_i}{1-p_i}\in (0,+\infty)[正类]\\ Logit(p_i)=ln\frac{p_i}{1-p_i}\in (-\infty,0)[负类]\\ 逻辑斯特回归函数:ln1pipi=α+β1xi1+β2xi2+...+βpxipLogit(logisticprobabilityunit)变换:定义:Logit(pi)=ln1pipi得到Logit(pi)=α+β1xi1+β2xi2+...+βpxip+εiLogit变换的特点:Logit(pi)=ln1pipi(0,+)[正类]Logit(pi)=ln1pipi(,0)[负类]
逻辑回归算法_第5张图片

优势比OR

l n P 1 − P = β 0 + β 1 X 1 + β 2 X 2 + . . . + β m X m = l o g i t P ln\frac{P}{1-P}=\beta_0+\beta_1X_1+\beta_2X_2+...+\beta_mX_m=logitP ln1PP=β0+β1X1+β2X2+...+βmXm=logitP

模型参数意义

  • 常数项 β 0 \beta_0 β0

    表示暴露剂量为0时个体发病与不发病概率之比的自然对数

  • 回归系数 β j ( j = 1 , 2 , . . . , m ) \beta_j(j=1,2,...,m) βj(j=1,2,...,m)

    表示自变量改变一个单位时logitP的改变量

  • 流行病学衡量危险因素作用大小的比数比例指标

  • 计算公式为: O R j = P 1 / ( 1 − P 1 ) P 0 / ( 1 − P 0 ) 计算公式为:\\ OR_j=\frac{P_1/(1-P_1)}{P_0/(1-P_0)}\\ 计算公式为:ORj=P0/(1P0)P1/(1P1)

  • 表示自变量变化以后,发病概率的变化情况

  • 比如,自变量=0时,发病概率是 P 0 1 − P 0 \frac{P_0}{1-P_0} 1P0P0

    自变量=1时,发病概率是 P 1 1 − P 1 \frac{P_1}{1-P_1} 1P1P1

    因此优势比OR反映的是发病概率的变化情况

  • 式中 P 0 P_0 P0 P 1 P_1 P1分别表示在同一危险因素 X j X_j Xj取值为 c 0 c_0 c0 c 1 c_1 c1时的发病概率

    O R j OR_j ORj称作多变量调整后的优势比,表示扣除了其他自变量影响后危险因素的作用

    即只考虑一个变量,对整个发病的影响

与 l o g i s t i c P 的关系: ∙ 对比某一危险因素两个不同暴露水平 X j = c 0 与 X j = c 1 的发病情况 假定其他因素的水平相同,则优势比的自然对数为: l n O R j = l n [ P 1 / ( 1 − P 1 ) P 0 / ( 1 − P 0 ) ] = l o g i t P 1 − l o g i t P 0 = ( β 0 + β j c 1 + ∑ t ≠ j m β t X t ) − ( β 0 + β j c 0 + ∑ t ≠ j m β t X t ) = β j ( c 1 − c 0 ) 与logisticP的关系:\\ \bullet 对比某一危险因素两个不同暴露水平X_j=c_0与X_j=c_1的发病情况\\ 假定其他因素的水平相同,则优势比的自然对数为:\\ lnOR_j=ln[\frac{P_1/(1-P_1)}{P0/(1-P_0)}]=logitP_1-logitP_0\\ =(\beta_0+\beta_jc_1+\sum_{t\neq j}^m\beta_tX_t)-(\beta_0+\beta_jc_0+\sum_{t\neq j}^m\beta_tX_t)\\ =\beta_j(c_1-c_0) logisticP的关系:对比某一危险因素两个不同暴露水平Xj=c0Xj=c1的发病情况假定其他因素的水平相同,则优势比的自然对数为:lnORj=ln[P0/(1P0)P1/(1P1)]=logitP1logitP0=(β0+βjc1+t=jmβtXt)(β0+βjc0+t=jmβtXt)=βj(c1c0)

  • 即得 O R j = e x p [ β j ( c 1 − c 0 ) ] OR_j=exp[\beta_j(c_1-c_0)] ORj=exp[βj(c1c0)]

  • 若 X j = { 1 暴露 0 非暴露 , c 1 − c 0 = 1 若X_j= \begin{cases} 1&暴露\\ 0&非暴露 \end{cases} ,c_1-c_0=1 Xj={10暴露非暴露,c1c0=1

则有 O R j = e x p β j β j { = 0 , O R j = 1 无作用   > 0 , O R j > 1 危险因子 < 0 , O R j < 1 保护因子 则有OR_j=exp\beta_j\\ \beta_j \begin{cases} =0,OR_j=1&无作用\\ \ >0,OR_j>1&危险因子\\ <0,OR_j<1&保护因子\\ \end{cases} 则有ORj=expβjβj =0,ORj=1 >0,ORj>1<0,ORj<1无作用危险因子保护因子

优势比理解

在一个具有17个家庭的样本里,共有3家的收入为¥10000,5家的收入为¥11000,9家的收入为¥12000

在收入¥10000的家庭里,1个主妇不工作,2个主妇工作

在收入¥11000的家庭里,1个主妇不工作,4个主妇工作

在收入¥12000的家庭里,1个主妇不工作,8个主妇工作

收入 不工作 工作 总计
10 1 2 3
11 1 4 5
12 1 8 9
总计 3 14 17
  • 主妇工作状态对收入的影响
收入 不工作 工作 工作概率
10 1 2 2/3
11 1 4 4/5
12 1 8 8/9
  • 当X分别取10和11时:
    O R j = 4 5 / ( 1 − 4 5 ) 2 3 / ( 1 − 2 3 ) = 4 / 2 = 2 OR_j=\frac{\frac{4}{5}/(1-\frac{4}{5})}{\frac{2}{3}/(1-\frac{2}{3})}=4/2=2\\ ORj=32/(132)54/(154)=4/2=2

  • 当X分别取11和12时:
    O R j = 8 9 / ( 1 − 8 9 ) 4 5 / ( 1 − 4 5 ) = 8 / 4 = 2 OR_j=\frac{\frac{8}{9}/(1-\frac{8}{9})}{\frac{4}{5}/(1-\frac{4}{5})}=8/4=2\\ ORj=54/(154)98/(198)=8/4=2

说明:

  • 收入每增加一个单位,主妇工作的Odds增加到原来的2倍
  • 说明收入对工作状态有正关系,收入越高,工作概率越高
  • 在疾病检测中,说明一个因素越高,使得患病概率越高

逻辑回归算法_第6张图片

逻辑回归正则化

逻辑回归算法_第7张图片

针对同一个分类面,哪一个分类面更好

W在数值上越小越好,这样越能抵抗数据的扰动

——如何找到这个尽可能小的参数,因此引入我们的逻辑回归正则化
正则化表达式: L 1 = ∑ i = 0 m ∣ w i ∣ L 2 = ∑ i = 0 m w i 2 正则化表达式:\\ L_1=\sum_{i=0}^m|w_i|\\ L_2=\sum_{i=0}^mw_i^2 正则化表达式:L1=i=0mwiL2=i=0mwi2

  • 重写误差函数lambda λ \lambda λ是W的权重牺牲正确率来提高推广能力

E = ∑ i = 1 n ( y i − 1 1 + e − ( w 1 x i 1 + w 2 x i 2 + w 0 ) ) 2 + λ L 1 E = ∑ i = 1 n ( y i − 1 1 + e − ( w 1 x i 1 + w 2 x i 2 + w 0 ) ) 2 + λ L 2 E=\sum_{i=1}^n(y_i-\frac{1}{1+e^{-(w_1x_{i1}+w_2x_{i2}+w_0)}})^2+\lambda L_1\\ E=\sum_{i=1}^n(y_i-\frac{1}{1+e^{-(w_1x_{i1}+w_2x_{i2}+w_0)}})^2+\lambda L_2\\ E=i=1n(yi1+e(w1xi1+w2xi2+w0)1)2+λL1E=i=1n(yi1+e(w1xi1+w2xi2+w0)1)2+λL2

  • 惩罚项:若学习到大权值使得误差小,但是再加上正则化式子以后使得上面E值表达
  • 因此,最小化E值使得求解的权值尽可能的相对较小

一个有趣的结论:

  • L 1 L_1 L1倾向于使得w要么取1,要么取0——稀疏编码
  • L 2 L_2 L2倾向于使得w整体偏小——岭回归

逻辑回归算法_第8张图片

适用场景

  • L 1 L_1 L1适合降低维度

  • L 2 L_2 L2也称为岭回归,有很强的概率意义

逻辑回归数值优化

逻辑回归算法_第9张图片

  • 各个维度的输入如果在数值上差异很大,比如上表中老虎数量和麻雀数量,那么会引起正确的W在各个维度上数值差异很大
  • 找寻W的时候,对各个维度的调整基本上是按照同一个数量级来进行调整的

——回顾到数据预处理学习的Z-score规范化

CSDN——Caaaaaan-数据预处理

逻辑回归模型

  • 梯度下降法的选择

  • 两种梯度:

    1. SGD
    2. L-BFGS

    L-BFGS为SGD的优化方法,它的训练速度比SGD快

数值归一化 正则化 梯度下降法 分类个数 数据选择
L-BFGS 需要均值归一化,算法融入方差归一化 支持L2正则化 L-BFGS(收敛快,考虑二阶导数) 支持多分类 加载所有数据都参与训练
SGD 不归一化,需要专门在外面进行归一化 支持L1,L2 SGD 不支持多分类 随机从训练集选取(支持 M i n i B a t c h F r a c t i o n MiniBatchFraction MiniBatchFraction
  1. logistic回归对噪声数据敏感

  2. 分类和回归都可用于预测,分类的输出是离散的类别值,而回归的输出是连续数值

你可能感兴趣的:(AIStudy,回归,逻辑回归,机器学习)