logisticlogisticlogistic回归实际上是一个二分类问题。
问题描述:给一组由若干特征组成的xxx以及相对应的标签yyy。其中yyy是由000和111构成的。
我们来看一下这个预测过程。实际上这应该是一个多元回归的问题,我们由x1,x2,x3,...,xnx_{1},x_{2},x_{3},...,x_{n}x1,x2,x3,...,xn回归出一个f(x)f(x)f(x),其中f(x)f(x)f(x)应该形如y=k1x1+k2x2+...+knxn+by=k_{1}x_{1}+k_{2}x_{2}+...+k_{n}x_{n}+by=k1x1+k2x2+...+knxn+b,但是,我们做的是二分类的问题,这个yyy应该是映射在[0,1][0,1][0,1]之间的。但是如果想现在这样做多元回归,yyy的范围是(−∞,+∞)(-\infty,+\infty)(−∞,+∞)。所以首先将yyy映射到[0,+∞)[0,+\infty)[0,+∞),即eye^{y}ey,然后映射到[0,1)[0,1)[0,1),即eyey+1\frac{e^{y}}{e^{y}+1}ey+1ey,化简整理得到:11+e−y\frac{1}{1+e^{-y}}1+e−y1,也就是我们所熟知的sigmoidsigmoidsigmoid函数。我们知道经过预测之后得到的是概率P(x)P(x)P(x).也就是P(x)=11+e−f(x)P(x)=\frac{1}{1+e^{-f(x)}}P(x)=1+e−f(x)1。则应该有f(x)=ln(P(x)1−P(x))f(x)=ln(\frac{P(x)}{1-P(x)})f(x)=ln(1−P(x)P(x))。
然后今天上课的时候我就一直在想这样一个问题。我们首先手里有待预测的数据,满足yyy是000或111.那么能不能用这个yyy映射到f(x)f(x)f(x),然后去做多元回归。想了半天发现根本不想,lnlnln那块的定义域就不对。所以逻辑回归实际上是定义了一个交叉熵函数,然后用这个交叉熵直接去更新f(x)f(x)f(x)的多元回归系数也就是若干个θ\thetaθ。
下面来看这个交叉熵函数:
J(θ)=−1N∑(yilog(p(yi))+(1−yi)log(1−p(yi)))J(\theta)=-\frac{1}{N}\sum(y_{i}log(p(y_{i}))+(1-y_{i})log(1-p(y_{i}))) J(θ)=−N1∑(yilog(p(yi))+(1−yi)log(1−p(yi)))
其中yiy_{i}yi是期望预测的,p(yi)p(y_{i})p(yi)是实际的计算结果,比如yiy_{i}yi是1,p(yi)p(y_{i})p(yi)是0.9 。注意yyy越大,p(yi)p(y_{i})p(yi)越小,则losslossloss越大。注意这个losslossloss是针对P(x)P(x)P(x)计算的。
后续求导:
这里
losslossloss可以任意定义,与原函数无关。(并不严谨的一种说法)
可能涉及到的代码:
链接:https://pan.baidu.com/s/1Zna79xxqIi1_BitzBSQptw?pwd=1234
提取码:1234