《老饼讲解机器学习》https://www.bbbdata.com/text/6
目录
逻辑回归一般用来做二分类(类标签为{0,1}),输出属于1类的概率。
备注:
(1)也可以用来做多分类,底层还是二分类,只是把多分类问题转为多个二分类问题,它是二分类的延伸,而非本身是多分类,所以我们只讲二分类的逻辑。
(2)标签一定是{0,1},不能是{-1,1},如果是{-1,1}或其它,则底层还是会转回{0,1}。即它是一个预测”是“/”否“ 概率的问题。
本文介绍逻辑回归的基本原理与要点。
一、模型表达式
(一) 表达式
逻辑回归模型表达式:
矩阵形式为:
(二) 表达式意义
它可以拆成两部分来看,
第一部分:
这部分实际是各个变量的加权和,例如预测明天下不下雨,那这个加权和,可以认为下雨的指标。
第二部分:
Sigmoid(x) = 部分,则相当于在上述线性函数的结果上,再套一层 Sigmoid函数,它的意义,如果线性部分认为是指标,则它把指标转化为概率。
备注:sigmoid函数是一个S形函数,取值范围为(0,1),适合把各种”量“转为概率。
二、损失函数
我们的目标就是求一组,.....和b,使我们的模型的预测准确率最好。
用于评估“模型预测准不准确”的损失函数(对数似然损失函数)如下:
即使损失函数L(W)最小的,.....和b,就是我们所认为的预测效果最好的 ,.....和b。
逻辑回归非常简单,简单到理解 对数似然损失函数 成了整个算法的核心。
它的推导可参考《附件:对数似然损失函数(0,1)详细推导》
备注:也就是因为这个损失函数,所以类别必须是【0,1】。
三、模型求解
即求解一组 ,.....和b,使损失函数最小。这就是一个数学问题。
一般用梯度下降法,或牛顿法求解即可。
梯度下降算法:《启发寻解:梯度下降》
牛顿下降算法:《启发寻解:牛顿法求极值》
而要做到更优化,则需要在梯度法和牛顿法法的基础上抠细节。
matlab中就是使用牛顿法:《概率模型:逻辑回归(matlab包实现原理讲解)》,使用牛顿法复现matlab逻辑回归包的求解。
四、模型评估
逻辑回归一般用AUC或KS进行模型评估 (逻辑回归是二分类模型,最终输出的是概率。该类型的预测效果评估一般都用AUC、KS)
(一)损失函数与模型评估的区别
损失函数是用于引导我们求解w,b,而最终还需要评估模型效果
备注:模型效果评估高于损失函数函数的评估,模型效果评估相当于不管你内部用什么模型,我只管看结果。
(二)模型评估为什么不用准确率
模型预测出来的是概率,而最后确定是哪一类,还需要定一个阈值,例如P>0.5则认为是1类,或者P>0.4认为是1类。因此,并不能用准确率,因为不同的阈值就有不同的准确率。
而AUC则是各个阈值的准确率的综合指标。KS则是最优阈值时评估。AUC和KS更适用于此类问题的效果评估。
五、总流程与要点
(一) 总流程
1.确定输入特征和输出目标
2.通过算法(一般为梯度下降或牛顿下降法,或基于这两种算法的变种)求损失函数最小时 的W。3.计算AUC,评估模型的预测效果。
(二) 要点
1.损失函数的推导。
2.求解算法的细节与推导。
相关文章