小鱼今天介绍的逻辑回归算法,虽然叫逻辑回归,但实际上确是一个经典的二分类算法!并且逻辑回归的决策边界可以是非线性的,比如下面的逻辑回归决策边界将所有的红色和绿色点区分了出来:
此外,逻辑回归也是机器学习模型中最简单的算法之一!但使用却非常普遍。大家可能了解到机器学习中还有向量机,神经网络等非常复杂的算法,但算法越复杂,过拟合的风险也就越大。
在做机器学习分类问题时,我们通常的策略就是先逻辑回归再用复杂的,能简单还是用简单的。我们也会先用逻辑回归创建一个 Base Model ,然后再用更复杂的算法来实现。
Sigmoid 函数
Sigmoid 函数的表达式为:
Sigmoid 函数可以将任意的输入映射到 [0,1]
区间,我们在线性回归中可以得到一个预测值,再将该值映射到 Sigmoid 函数中,即可完成由值到概率的转换,也就是分类任务。
下面,我们来绘制一下 Sigmoid 函数。首先,定义 Sigmoid 函数:
def sigmoid(z):
return 1 / (1 + np.exp(-z))
使用 matplotlib
绘图:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
nums = np.linspace(-10, 10, 100)
plt.plot(nums, sigmoid(nums), 'r')
Sigmoid 函数特点总结如下:
使用梯度下降求解逻辑回归
在线性回归中,我们使用 x
和 θ
的转置来表示预测值:
将线性回归的结果代入 Sigmoid 函数后,可以得到逻辑回归的预测函数:
对于二分类算法,有如下公式成立:
我们可以使用一个表达式来进行整合:
上述函数表达式满足:如果 y==0
,则 p = 1-hθ(x)
;如果 y==1
,则 p = hθ(x)
。
这样就得到了我们的似然函数:
取对数似然,将叠乘转换为叠加:
为对数似然引入负号,转换为梯度下降问题,并计算平均损失:
求导:
更新参数:
以上就是逻辑回归算法原理的全部内容~
下节,小鱼将为大家带来使用 Python 实现的逻辑回归算法模型,来进一步感受逻辑回归的算法思路。