逻辑回归 笔记

概述

Logistic regression is a method for classifying data into discrete outcomes.
逻辑回归将数据归类为离散的结果并输出。

逻辑回归虽然名为“回归”,但它解决的其实是分类问题。以二分类问题为例,习惯上把我们关注的某一现象的存在归为y=1(如垃圾邮件、恶性肿瘤细胞),反之则为y=0。

为什么不用线性回归

.利用线性回归解决分类问题通常不是好的方法,主要有两个原因:
1. 如图1所示,线性回归的参数很容易受到极端值的影响,容易得到不好的假设函数。
2. 比如进行2分类(binary classifying)问题,假设y的值ϵ{0,1},但是线性回归模型的假设函数计算出来的函数值会远大于1或远小于0。
图1

假设函数(Hypothesis Funciton)

针对一个分类问题
想要:0hθ(x)10≤h_θ (x)≤1
对假设函数h_θ (x)输出结果的解释:y=1的概率。
若计算出hθ(x)h_θ (x)=0.7,则表示对输入x,输出y=1的概率为0.7。

logistic函数

logistic函数可以很好避免线性回归的第2点不足。
逻辑回归(Logistic Regression)的函数值在区间[0,1]中。
Sigmoid函数和Logistic函数通常是指同一个函数:g(z)= 1/(1+eze^{-z} ) ,
进一步地,常用的Logistic函数的形式:hθ(x){h_θ (x)}=g(θTx){g(θ^T x)}= 1/(1+eθTxe ^{-θ^T x})
图2
该函数具有如下较好性质:g(z)=g(z)(1g(z)){g'(z) = g(z)(1-g(z)) } limx11+ez=0{\lim_{x \to -\infty}} \frac{1}{1+e^{-z}}= 0limx+11+ez=1{\lim_{x\to +\infty} }\frac{1}{1+e^{-z}}= 1 g(0)=0.5{g(0)= 0.5}

决策边界(Decision Boundary)

类似于高中学的线性规划或者非线性规划的边界,根据函数不等式反解出来。
hθ(x)=g(θTx) h_θ (x)= g(θ^T x)(两个x是不同的),由于函数是单调递增的,
0.5hθ(x)<1x00.5≤h_θ (x)<1⇔ x≥00<hθ(x)<0.5x<00<h_θ (x)<0.5⇔ x<0
所以当进行二分类时,容易想到利用0作为阈值(threshold)。

根据假设函数(hypothesis function)的设想以及概率的意义(假设函数计算的可以不严谨地理解为概率)
hθ(x)0.5x0y=1当h_θ (x)≥0.5⇔ x≥0⇒预测y=1 hθ(x)<0.5x<0y=0当h_θ (x)<0.5⇔ x<0⇒预测y=0当要确定h_θ (x)≥0.5的范围,只要确定x≥0的范围即可。

eg1:线性决策边界
hθ(x)=g(θ0+θ1x1+θ2x2)h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2)假设[θ0,θ1,θ2][θ_0,θ_1,θ_2]=[-3,1,1]。想要预测y=1
只需要g(θ0+θ1x1+θ2x2)=g(3+x1+x2)0.5g({θ_0+θ_1 x_1+θ_2 x_2} )=g(-3+x_1+x_2 )≥0.5只需要3+x1+x20-3+x_1+x_2≥0则直线l:3+x1+x2l:-3+x_1+x_2是决策边界,当-3+x_1+x_2≥0时,y预测为1。
图2

eg2:非线性决策边界
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)h_θ (x)=g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2)
[θ0,θ1,θ2,θ3,θ4]=[1,0,0,1,1][θ_0,θ_1,θ_2,θ_3,θ_4]=[-1,0,0,1,1]
想要预测y=1,只需要g(θ0+θ1x1+θ2x2+θ3x32+θ4x42)=g(1+x32+x42)0.5g(θ_0+θ_1 x_1+θ_2 x_2+θ_3 x_3^2+θ_4 x_4^2)=g(-1+x_3^2+x_4^2 )≥0.5只需要1+x32+x420-1+x_3^2+x_4^2≥01+x32+x42=0-1+x_3^2+x_4^2=0是决策边界,当1+x32+x420-1+x_3^2+x_4^2≥0时,y预测为1。

图4

代价函数(Cost Function)

如果采用之前的均方误差(Mean Squared Error)公式:J(θ)=1mi=1m12(hθ(x(i))y(i))2J(θ)=\frac1m \sum_{i=1}^m\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 J(θ)J(\theta)改写成更一般的形式
J(θ)=1mi=1mCost(hθ(x(i)),y(i)){ J(θ)=\frac1m \sum_{i=1}^mCost(h_θ (x^{(i)} ),y^{(i)})}Cost(hθ(x(i)),y(i))=12(hθ(x(i))y(i))2 { Cost(h_θ (x^{(i)} ),y^{(i)})=}\frac12 (h_θ (x^{(i)} )-y^{(i)})^2 J(θ){J(\theta)}非凸函数,拥有多个局部最小值,使用梯度下降法不一定能收敛到全局最小。
下面介绍一个能使J(θ){J(θ)}凸函数的Cost函数。

Cost(hθ(x),y)={log(hθ(x)),y=1log(1hθ(x)),y=0Cost(h_θ (x),y)=\begin{cases}-log⁡(h_θ (x)), &y= 1 \cr-log⁡(1-h_θ (x)) , &y=0\end{cases}
图5

图6
当y=1时,从Cost函数的图像中不难看出,当y=1时,Cost = 0,说明当实际值为1,预测值为1时,付出的代价为0;当y从右边趋于0时,Cost趋于正无穷,说明当实际值为1,预测值为0,付出的代价非常大。这符合Cost函数的性质。
当y=0时,做类似解释。
由于原来的Cost函数为分段函数,不好处理,构造出等价的Cost函数,即
Cost=y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))(y0,1) {Cost= y^{(i)} log⁡(h_θ (x^{(i)}))+(1-y^{(i)} )log⁡(1-h_θ (x^{(i)} )) (y只取0,1) }

梯度下降及优化算法

θjθjαθjJ(θ)θ_j←θ_j-α\frac ∂{∂θ_j } J(θ)i.e.θjθjα1mi=1m(hθ(x(i))y(i))xj(i)(θj) θ_j←θ_j-α \frac1m \sum_{i=1}^m(h_θ (x^{(i) })-y^{(i)}) x^{(i)}_j (同时更新所有θ_j)hθ(x)=11+eθTxh_θ (x)= \frac1{1+e^{-{θ^Tx}} }

优化算法:
共轭梯度(Conjugate gradient)、BFGS、L-BFGS等方法。
优点:1可以自动寻找适合的学习率α
2 能够更快地收敛到最优解
缺点:算法复杂

多分类问题

比如要把整个数据集分成3类,则先挑出第一类,其余两类视为一类,重复操作两次。

图8
图9
图10
图11
图12
hθ(i)(x)=P(y=ix;θ),(i=1,2,3).h_θ^{(i)}(x)=P(y=i |x;θ),(i=1,2,3).所以这里有三个分类器
针对每个类别 i,训练一个逻辑回归分类器hθ(i)(x)h_θ^{(i)}(x)去预测y=i的概率。
针对一个新的输入x,预测x的类别i,
i s.t.s.t.
maxihθ(i)(x)\max_i⁡h_θ^{(i)} (x)
可以理解为取i , s.t maxP(y=i)max{P(y=i)}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章