前几天和同学争论, 用来做逻辑回归的训练数据的目标值只能是{0,1}两个值,还是[0,1]之间的数?
今天再回顾了Andrew Ng的讲义,答案应该是两种都 可以。
logistic 回归的目标值h(x):
hθ(x)=g(θTx)g(z)=11+e−z,
h(x) 是[0,1]之间的数,可根据阈值进行用于分类(h>0.5 则此样本为1类)。
和线性回归类似,logistic回归也是求解theta使得损失函数(cost function)的值最小。
但是和线性回归的区别是,线性回归的损失函数定义为最小均方差: J(θ)=12m∑i=1m(hθ(x(i))−y(i))2
若也用这个函数作为损失函数,带入h(x),则J不是一个凸函数,所以要换一个损失函数。
原文:Logistic Function will cause the output to be wavy, causing many local optima. In other words, it will not be a convex function.
新的损失函数定义为:
简写为: Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x)) //关键就在这里,这个函数允许训练样本的y值为0-1之间的数字。
J(θ)=−1m∑mi=1[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]
然后求解偏导数: ∂∂θjJ(θ)
求导的公式基本上忘了,查了一下还是挺简单的。导数是切线的斜率:lim(y1-y2)/(x1-x2) 当x1无限趋近x2。
求出来的结果和线性回归的函数求出来是一样的: )