下面分为两个部分:
1. 逻辑回归的相关原理说明
2. 通过python代码来实现一个梯度下降求解逻辑回归过程
逻辑回归(Logistic Regression)
首先需要说明,逻辑回归属于分类算法。分类问题和回归问题的区别在于,分类问题的输出是离散的,如(0,1,2,…)而回归问题的输出是连续的。
我们将要用来描述这个分类问题的标记如下:
m m 代表训练集中实例的数量
代表特征的数量
x(i) x ( i ) 表示第 i i 个训练实例,是特征矩阵的第i行,是一个向量
表示特征矩阵中第 i i 行的第 个特征,也就是第 i i 个训练实例的第 个特征
y y 代表目标变量,也就是输出变量
代表训练集中的一个实例
(x(i),y(i)) ( x ( i ) , y ( i ) ) 代表第 i i 个观察实例
代表学习算法的函数,或者假设(hypothesis)
假设函数
逻辑回归是在线性回归的基础上,转化而来的。它是用来解决经典的二分类问题
首先说明下,什么是二分类问题
我们将输出结果 y y 可能属于的两个类分别称为负向类(negative class)和正向类(positive class),则输出结果 属于0,1 ,其中 0 表示负向类,1 表示正向类。
我们将线性回归的输出记为:
我们知道,线性回归的输出结果是实数域中连续的,要想解决二分类问题,这时,我们引入 Sigmoid函数, 对应公式为:
对应图像如上图,可见,自变量取值为任意实数,值域为[0,1]
经过sigmoid函数,就将任意的输入映射到了[0,1]区间内,我们在线性回归中可以得到一个预测值,再将该值进映射到Sigmoid函数中,这样就完成了由值到概率的转换,这就是逻辑回归中的分类任务
所以,我们逻辑回归的假设函数为:
逻辑回归的假设函数 hθ(x) h θ ( x ) 即为对应y=1的概率值,即我们可以用下式表示: