0x00前言大家好,我是小娇。上次我们讲完了线性回归。不知道小伙伴们有没有什么建议。你有没有发现每一个字你都能看懂,却不知道整篇文章讲的是什么?哈哈哈哈哈,原来如此。这次我们来聊聊,有朋友说,如果我要把结果分成两组,怎么办?车前草挥笔。啊,这不是很好的成绩吗?我敢说现在很多10%(目测70%到80%)说做人工智能的,只是用Logistic回归做分析。“你的东西很多,我不知道怎么分。”“想学你?我教你。”0x01什么是物流?思路大概是这样的。将数据映射到Logistic函数。如果大于0.5,我们认为它是类别y1=0,如果它小于0.5,我们认为它是类别y2=1。函数y∈{0,1}是什么样子的?看起来像这样。π(x)=1/(1+exp(-x))所以在这种情况下,观察到每个样本的概率如下。P(Y=1|x)=1/(1+exp(-x))P(Y=0|x)=1/(1+exp(x))所以比率比ODD长所以odd=P(Y=1|x)/P(Y=0|x)=exp(x)对数优势比刚好变成g(x)=θ.T*x+b其中θ为N维向量,即与每个样本X的维度一致。所以LR的映射函数做了线性变换,就变成了这样。π(x)=1/(1+exp(-g(x)))至此,我们已经知道什么是Logistic回归了。其实就是将数据映射到Logistic函数,按照概率进行分类。0x02MaximumLikelihoodEstimation我们如何得到损失函数loss?别急着跟着车前草一步步来。上面我们已经看到了每个样本的概率。现在让我们谈谈最大似然估计是什么。最大似然估计就是我们假装这些参数,我们很久以前就知道了,然后用它们来估计这些样本现在被观察到的概率。你是不是疯了?既然已经找到了这些样本,那实际概率肯定是***的!!概率越高越好,越大越好,它只是一个估计,所以我们称之为最大似然估计La。所以我们观察到样本的概率是P=(p^Y)*((1-p)^(1-Y))这行蜈蚣式的公式怎么会比较容易理解呢?Y的值为0和1代进去,你就会明白,当Y等于0时,就是(1-p),当y等于1时,就是p。就这么简单。以下是重点。敲黑板画重点!!!卡在这里想了很多天,也不知道损失函数是怎么来的!因为所有的样本都是相互独立的,它们的联合概率分布就是它们的概率积。L(θ)=‖(p^yi)*((1-p)^(1-yi))yi是每个样本的实际Y值。我们这里求的是最大值,那怎么改成损失函数呢?我们知道这个值永远是(0,1),所以我们直接加一个负号。原本求最大的变成了最小的。∴loss=-L(θ)当然我们习惯这样加,看起来比较高端,m是样本数∴loss=-1/m*L(θ)无所谓,原理是一样的。乘法是很耗资源的,我们可以把它转化为对数,让所有的乘法都变成加法!!并且功能的性质保持不变。所以最终的损失函数看起来是这样的。loss(θ)=-logL(θ)下面我们用AndrewNG来大改造一下,就是为了后面计算起来方便一些。P=p^(y+1)/2*(1-p)^-(y-1)/2Y∈{-1,1}和上面没有本质区别,只是把Y的取值范围改成-1后面跟着1。下面是一般的公式变换。0x03损失函数l(θ)=-∑ln(p^(yi+1)/2*(1-p)^-(yi-1)/2)进行对数变换,幂乘变为乘法。=-∑(yi+1)/2*lnp-(yi-1)/2*ln(1-p))将p代入其中,即在P中加上负号,就变成了直接倒数。就得到下面的=∑(yi+1)/2*ln(1+exp(-g(xi))-(yi-1)/2*ln(1+exp(g(xi)))来观察,可以看到,自己代入就知道了∴当yi=1时,l(θ)=∑ln(1+exp(-g(xi))当yi=-1时,l(θ)=∑ln(1+exp(g(xi))所以最终的损失函数看起来像这样。l(θ)=∑ln(1+exp(-yi*g(xi))好了,到这里我们的推导就结束了,接下来只要按照梯度下降算法求最小值即可。如何使用0x04那么我们可以使用做预测的最终参数,如果大于0,则认为是类别Y1,即Y=1,如果小于0,则认为是类别Y1,即Y=-1.当然这个只能用于二分类,那这个东西有什么用呢?应用场景有很多这个产品推荐不推荐?小伙伴们自己试试吧。0x05结语今天的酱,break~粉丝跪不下【本文为专栏作者“大教”原创稿件,转载请通过作者微信公众号》《程序员》获取授权】点此阅读作者更多好文
