一、基本原理
逻辑回归与线性回归
Logistic Regression和Linear Regression的原理是相似的,按照我自己的理解,可以简单的描述为这样的过程:
(1)找一个合适的预测函数(Andrew Ng的公开课中称为hypothesis),一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。
(2)构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差的估计,称为风险函数或期望损失函数。
(3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。
分类问题与Sigmoid函数
σ(z)=11+e−z
Sigmoid函数看起来很像一个阶跃函数。
海维赛德阶跃函数——heaviside step function
自变量为0,函数值为0.5
自变量趋于正无穷,函数值趋近于1
自变量趋于负无穷,函数值趋近于0
(为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,)将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以, Logistic回归也可以被看成是一种概率估计。
括号内的后面会讲。简单来说Sigmoid做分类器使用,逻辑回归计算出最佳拟合的回归系数。
线性回归的参数或系数
假设结果为若干属性(特征)值的线性组合 z=w0∗x0+w1∗x1+...+wn∗xn
写为向量:
z=wTx(式1)
其中的向量x是分类器的输入数据,向量w也就是我们要找到的最佳参数
预测函数
将上两小结内容整合起来,有逻辑回归的预测函数为:
hθ(x)=11+e−θT(x) ,其中 θ 是上小节中w的估计值。
Cost函数
损失函数:表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式
损失函数最常见的形式就是 (h(i)−y(i)) ,
上标(i)表示第i个样本,而不是指数
风险函数常见形式为:
N是样本数,求θ使得J(θ)最小,这样的θ就是理想的参数,对线性回归来说θ就是理想的回归系数。
但是,对于逻辑回归(及任何二分类问题)来说, hθ(x(i)) 的取值是0或者1,所以J(θ)不是一个凸函数,难以通过简单的手段求极小值。
所以我们必须找一个新的损失函数:
什么意思呢?y的真实值为1,预测值也为1时,损失为0,但预测值为0时,损失为正无穷;可类推y=0的叙述。
统一成一个式子,在某个样本上的损失函数定义为:
loss(hθ(x(i)),y(i))=−[y(i)log(hθ(x(i)))+(1−y(i)))log(1−hθ