一、算法介绍
Logistic regression (逻辑回归)是一种非线性回归模型,特征数据可以是连续的,也可以是分类变量和哑变量,是当前业界比较常用的机器学习方法,用于估计某种事物的可能性,主要的用途:
分类问题:如,反垃圾系统判别,通过计算被标注为垃圾邮件的概率和非垃圾邮件的概率判定;
排序问题:如,推荐系统中的排序,根据转换预估值进行排序;
预测问题:如,广告系统中CTR预估,根据CTR预估值预测广告收益;
这个世界是随机的,所以万物的发生都可以用可能性或者几率(Odds)来表达。“几率”指的是某事物发生的可能性与不发生的可能性的比值。
LR可以用来回归,也可以用来分类,主要是二分类。logistic回归模型在多分类问题上的推广是softmax regression。
二、算法原理
Regression问题的常规步骤为:
1. 寻找h函数(即hypothesis);
2. 构造J函数(损失函数);
3. 想办法使得J函数最小并求得回归参数(θ)
LR在分类问题中,是经过学习得到一组权值,θ0,θ1,..,θm.当加入测试样本集的数据时,权值与测试数据线性加和,即z=θ0+θ1*x1+...+θm*xm,求出一个z值为样本的分类概率。LR分类问题主要在于得到分类的权值,权值是通过h函数求得。在实际应用中我们需要将Hypothesis的输出界定在0和1之间,既:
对Sigmoid函数求导数形式为:
对分类结果取1和0的概率假定为如下:
较大似然估计是求使ℓ(θ)取较大值的θ。现在我们需要得到LR算法的cost functionJ(θ),根据李航博士《统计学习方法》中对cost function说明,统计学习中常用的损失函数有以下几种:
对损失函数求最小值,相当于对ℓ(θ)求较大值,式中m为了推导方便引入的,并无实际意义。我们在这里用的是梯度上升算法求解,即θ := θ + α∇ℓ(θ),我们以一个训练实例(x,y)为例,利用偏导求每次一个梯度方向上损失函数较大值,通过梯度上升达到局部最优解。下图为梯度下降方法示意图。
通过上式可以得到权值进行预测。
三、python实现过程
实现过程:
改进算法,随机梯度上升算法:
1)第一种改进算法,随机梯度算法,加大计算每组数据的梯度。
Logistic回归优点:
1、实现简单;
2、分类时计算量非常小,速度很快,存储资源低;
缺点:
1、容易欠拟合,一般准确度不太高
2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;
参考内容:
Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
李航博士《统计学习方法》
欢迎加入本站公开兴趣群
高性能计算群
兴趣范围包括:并行计算,GPU计算,CUDA,MPI,OpenMP等各种流行计算框架,超级计算机,超级计算在气象,军事,航空,汽车设计,科学探索,生物,医药等各个领域里的应用