【学习笔记】逻辑斯蒂回归
为什么使用sigmoid
一共进行过三次对于逻辑斯蒂回归这一概念理解的尝试,分别是李航的《统计学习方法》一书,B站深度之眼的视频学习,还有刘建平老师的博客,但是都没有完全弄明白逻辑斯蒂回归的作用以及为什么要使用逻辑斯蒂回归,今天在知乎上看到了一篇文章
好家伙,豁然开朗,简单复述一下,就是假如我有一堆数据,对这一堆数据分类的时候突然发现,我有时候他大于0的时候,是好的,但是有时小于零的时候就是坏的,一般在数学里面想要构造这种函数的话就只能使用分段函数了,但是分段函数有一个缺点,他不是连续的,那怎样才能搞出来一个函数,不仅连续,还能达到分段的目的呢
答案就是sigmond函数
sigmoid函数是一个s形曲线,就像是阶跃函数的温和版,阶跃函数在0和1之间是突然的起跳,而sigmoid有个平滑的过渡。从图形上看,sigmoid曲线就像是被掰弯捋平后的线性回归直线,将取值范围(−∞,+∞)映射到(0,1) 之间,更适宜表示预测的概率,即事件发生的“可能性” 。
逻辑斯蒂回归的损失函数
在线性回归中,我们用到的损失函数是最小二乘法,这种方法在我前面的博客我有学到过,如果是个凸函数就有全局最优解。但是逻辑回归不能用用平方损失因为他不是凸函数,不易优化,容易陷入局部最小值,所以逻辑函数用的是别的形式的函数作为损失函数,
叫做对数损失函数
这个对数损失,就是似然函数取对数后,再取相反数
这个对数损失函数的推导我很快的就看懂了,其实就是最大似然估计的方法取个相反数。因为在逻辑回归中不是用差值计算偏差哦,用的是对数损失
根据log函数的特性,自变量取值在[0,1]间,log出来是负值,而损失一般用正值表示,所以要取个相反数。
这里还有一个地方存疑
- 用文章开头那个例子,假设我们有一组样本,建立了一个逻辑回归模型P(y=1)=f(x),其中一个样本A是这样的:公司花了x=1000元做广告定向投放,某个用户看到广告后购买了,此时实际的y=1,f(x=1000)算出来是0.6,这里有-0.4的偏差,是吗?在逻辑回归中不是用差值计算偏差哦,用的是对数损失,所以它的偏差定义为log0.6(其实也很好理解为什么取对数,因为我们算的是P(y=1),如果算出来的预测值正好等于1,那么log1=0,偏差为0)。
- 样本B:x=500,y=0,f(x=500)=0.3,偏差为log(1-0.3)=log0.7。
我的疑惑是,既然买下广告是y=1,那么第二个例子不就是没买广告吗,那么算偏差的时候不应该是0.3-0=0.3嘛,期待有弄明白的一天
梯度下降法求解
这里我手推了一遍公式,其实不难,主要是对各个参数的理解
有一个地方不是很理解,为什么最后会出现xij,给出的解释是
这个xi实际上指的是第i个样本的特征向量,即 [公式] ,其中只有xij会和βj相乘,因此求导后整个xi只剩xij了 存疑
然后就是梯度下降的算法过程了
- 初始化β向量的值,即 [公式] ,将其代入G得到当前位置的梯度;
- 用步长α乘以当前梯度,得到从当前位置下降的距离;
- 更新 [公式] ,其更新表达式为 [公式] ;
- 重复以上步骤,直到更新到某个 [公式] ,达到停止条件,这个 [公式] 就是我们求解的参数向量。
本文来自博客园,作者:Lugendary,转载请注明原文链接:https://www.cnblogs.com/lugendary/p/16023648.html