理解Logistic回归首先要了解线性回归(http://blog.csdn.net/u013917439/article/details/77481216)。Linear Regression: h=WTX
训练集共m个样本,第i个样本 (x(i),y(i)),x(i)=(x(i)1,x(i)2,...,x(i)d)T ,即有d维特征。为了表示方便,将偏置b统一到权重W里。 W=(w0,w1,...,wd),w0=b 。
Logistic回归将线性回归的结果输入到sigmoid函数函数中,得到一个0-1之间的数值,可用与分类。当结果大于 0.5时是正类,小于0.5时是负类。
sigmoid函数,也叫Logistic函数:
假设函数 Hypothesis:hw(X)=11+e−WTX
hw(X)=g(WTX)
g(z)=11+e−z
z=WTX
- 参数 Parameters:w
- 损失函数 CostFunction:J(w)=−1m∑mi=1[y(i)log(hw(x(i)))+(1−y(i))log(1−hw(x(i)))]
- 优化目标 Goal:minimizeJ(w)
为什么将线性回归的结果输入到sigmoid函数中去做分类呢?
线性回归本身是预测连续值,是用于对线性数据进行拟合。输入特征X,输出的预测值 y∈R ,是实数集合。而二分类任务输入特征X后,输出 y∈0,1 。
怎样把实数集合映射到0,1? sigmoid函数:定义域R,值域(0,1),则 hw(X)=g(WTX) 的输出是0-1之间的数值,输出的是该样本为正类的概率。再用概率值判断所属类别。
p(y=1|x,w)=hw(x(i))
p(y=0|x,w)=1−hw(x(i))
对数几率
将 hw(x(i)) 视为样本作为正例的概率,则 1−hw(x(i)) 是该样本为反例的概率,两者的比值称为“几率“(odds),反应了 x(i) 作为正例的相对可能性。
决策边界Decision Boundary
正类 <=> hw(X)>0.5<=>WTX>0
负类 <=> hw(X)<0.5<=>WTX<0
整个样本集的损失为样本集中每个样本预测值与真实值的误差的平均值。
由 p(y=1|x,w)=hw(x(i)) p(y=0|x,w)=1−hw(x(i)) 结合在一起,正类负类都可以表达,每一个样本 (x(i),y(i)) 出现的概率为
损失函数: J(w)=−1m∑mi=1[y(i)log(hw(x(i)))+(1−y(i))log(1−hw(x(i)))]
优化目标: minimizeJ(w)
梯度下降参数更新过程:
步骤:
1.初始化 w1,w2...,wd
2.同步更新所有参数,使 J(w,b) 不断减小。( α 是学习率)
wj:=wj−α∂∂wjJ(w,b)(j=0,...,d)
3.重复步骤2直至收敛
wj:=wj−α1m∑mi=1(h(x(i))−y(i))x(i)j ( 与线性回归参数更新公式的形式相同,但 h(x(i)) 不同。)
1.Andrew Ng的Machine Learning课程
2.《机器学习》周志华