Logistic原理
Logistic虽然也叫回归,但是处理是分类问题;
;
注:Logistic回归预测时,先要算出要预测的数据属于每个分类的概率,然后输出概率最大的分类;当C=2,即二分类问题时,只需计算出y=1的概率即可,y=0的概率用1减少y=1的概率即可;
Logistic回归模型(两类分类问题)
;
注:Logistic回归预测时,当给定了向量x时,其分布为伯努利分布,此时只需计算参数即可,
表示y等于某个分类的概率,取值范围为[0,1];
中μ与x之间最简单的为线性模型,但如果用
这种线性函数时,不能保证
的取值范围是[0,1],因此通常加上sigmoid函数变换保证其取值的范围;
Logistic回归和线性回归类似,都是变量x的一个线性组合,都是用线性组合逼近目标,用训练数据来求参数,且两者梯度的形式看起来是一样的;
极大似然估计(用于求解参数,数学原理)
伯努利分布的概率密度函数为;
;
注:Logistic损失是极大似然估计的负数,因此最小Logistic损失等价于极大似然估计;Logistic用极大似然估计求解w时,没有解析解,因此只能用梯度下降法或者牛顿法(泰勒展开式求近似解)来求解;
梯度(多元函数的一阶导数)
;
梯度推导
;
注:是对
的估计,
是真值,
回归里面叫残差;
以下为的推导
;
以下为总结
;
注:向量求导为矩阵;
;
;
Iteratively Reweighted Least Squares(IRLS)---加权的最小二乘,Logistic回归的牛顿法解法
;
;
注:线性回归中的最小二乘中,每个样本的权重是一样的,但实际的情况下,样本之间的权重可能不相同,此时就需要加上一个权重矩阵;
以下为Logistic回归的加权最小乘法求解的总结:
;
;
;
注:同线性回归,Logistic回归也可以在极大似然估计的基础上加正则项,Logistic回归的正则比线性回归更重要, 尤其是在线性完全可分的时候,向量w一定要加上正则,否则w会无穷大;
多类Logistic回归
;
注:对多分类问题,可以训练多个分类器,每个分类器将除自身之外的分类都看成是一个分类;
;
;
注:多分类问题时,要将二分类问题中的伯努利分布换成多项分布;
;
模型性能评价
;
注:scikit learn中每个模型都有一个自带score函数用来评估模型;分类问题中缺省的评估指标为正确率,正确率是越大越好,损失则是越小越好;
分类模型性能评价(Classification metrics)
;
http://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics
注:如0-1损失,分类正确时为0,分类错误时为1,求和后即为0-1损失;-logloss损失是越小越好,中前面的
是真值,后面的
是预测值;
两类分类任务中更多评价指标
;
;
混淆矩阵
;
ROC曲线
;
注:PPV------查准率,TPR------查全率,FPR------虚警率;
;
注:ROC曲线中,每个模型的起点和终点是一样的,模型越往上越好,如上图中,模型A要好于模型B;当模型A和模型B互有上下时,则用AUC(曲线面积)来评价,越大越好;
;
注:稀有事件检测是指样本中绝大数样本均为负样本,只有极少数样本为正样本,如从多张图片中搜索某一个可能存于一张或几张图片中的目标;
;
注:PR曲线通常用查准率和查全率来绘制曲线,评价方法同ROC曲线;
;
;
;
;
;
metrics模块的API地址:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics
;
Scikit learn中的Logistic回归实现
;
;
注:红色的正则参数penalty,C需要重点关注,参数调优时就是针对这两个参数,其它参数当任务确定下来时,基本也都确定了;
;
;
;
;
;
;
;
;
;
;
注:欠采样是指对分类没有分对的样本进行重新采样(undersampling),这样模型的性能会更好一点;
模型选择与参数调优
参数调优对模型性能的好坏影响很大,参数调优最常想到的是交叉验证;
;
注:C的取值不能为0,L1和L2可以同时选取,但这样的话如上图所示,就会训练14个模型;
;
;
总结:Logistic回归
;