简介
文章针对像我一样数学弱又想学好机器的朋友们!手写推导过程尽可能的详尽。后面还有案例实现,希望也能帮助大家理解。
Logistic 回归模型和线性回归一样,都是 y = wx + b ,其中 x 可以是一个多维特征,唯一不同的地方在于Logistic 回归会对 y 作用一个Logistic 函数,将其变为一种概率结果,Logistic 函数作为逻辑回归核心,也称谓sigmod函数。
基本公式
下面公式不好表示,就用图片形式展示了。
假设:
代价函数
效果的好坏需要定义一个代价函数来反映。如果将线性回归的代价函数(平方误差等)用在非线性中,那J(θ)很有可能就是非凸函数,即存在很多局部最优解,但不一定是全局最优解。我们希望构造一个凸函数,也就是一个碗型函数做为逻辑回归的代价函数。联想到高数的似然方程,按照求最大似然函数的方法,定义逻辑回归似然函数:
问题转换为求L(θ)的极值。其中,m为样本总数,y(i)表示样本的类别,x(i)表示第i个样本,需要注意的是θ为多维向量,x(i)也是多维向量。下面利用似然函数常处理的方法,两边去log将乘法运算转换为加法。
然后就是求导取极值(如果存在)。
求导过程
根据公式:
我们可以把logL(θ)看成3部分处理。
最终求得:
代码实现
最后我们用代码实现来加深下这个公式的理解。自己实现一个梯度下降或者上升的方法。