1、情景描述
身体质量指数(Body Mass Index,BMI)是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。其计算公式为
B M I = 体重 ÷ 身 高 2 \rm BMI=体重÷身高^2 BMI=体重÷身高2
其中,体重的单位是千克( k g kg kg),身高的单位是米( m m m),因此BMI的单位是千克每米平方( k g / m 2 kg/m^2 kg/m2)
BMI的中国标准为
只要给定一个人的身高和体重,我们就可以根据BMI判断这个人是属于“胖”还是“瘦”。对于N个人的身高和体重,我们把胖和瘦分别使用0和1来表示,逻辑回归处理的问题是,找到一个模型,将这N组数据输入训练,训练好的模型会将这N个人分成胖瘦两类,从本质上讲,逻辑回归训练后的模型在二维空间中是一条直线
如图所示,点的个数代表样本数,两种颜色代表两种指标,该直线(或平面)将空间中的数据点划分成两部分,属于同一类的数据大多数分布在曲线(或平面)的同一侧,根据这条直线就可以判断新的样本属于哪一类了
2、逻辑回归
2.1、逻辑回归的概念
逻辑回归(Logistic Regression)不是回归算法,而是分类算法。逻辑回归的思想最早可以追溯到19世纪,由英国统计学家Francis Galton在研究豌豆遗传问题时首次提出
逻辑回归与线性回归(详见:传送门)都是一种广义线性模型(详见:传送门)。逻辑回归假设因变量Y服从伯努利分布,而线性回归假设因变量Y服从正态(高斯)分布
逻辑回归属于线性分类器,逻辑回归通过Logistic
函数(Sigmoid
函数)将数据特征映射到0~1区间的一个概率值(样本属于正例的可能性),通过与0.5
的比对得出数据所属的分类。逻辑回归只能用于二分类问题
把线性回归函数的结果y放到Sigmoid
函数中去,就构造了逻辑回归函数的数学表达式(Sigmoid
函数)
P ( Y = y ∣ x ; θ ) = 1 1 + e − θ T x P(Y=y|x;\theta)=\frac{1}{1+e^{-\theta^Tx}} P(Y=y∣x;θ)=1+e−θTx1
其中, P ( Y = y ∣ x ; θ ) P(Y=y|x;\theta) P(Y=y∣x;θ)表示因变量 Y Y Y预测值为 y y y的概率,具体来说就是在给定条件 x x x下事件 y y y发生的概率, θ \theta θ是该条件概率的参数
Logistic
函数(Sigmoid
函数)的图像为
从上图可以看到,Sigmoid
函数是一个S形曲线,取值范围在(0,1)
之间,在远离0的地方函数的值很快接近0或1,它的这个特性对于解决二分类问题十分重要
Logistic
函数可以分解为
{ h θ ( x ) = θ T x g ( y ) = 1 1 + e − y \begin{cases} \rm h_{\theta}(x)=\theta^Tx\\ \rm g(y)=\frac{1}{1+e^{-y}} \end{cases} { hθ(x)=θTxg(y)=1+e−y1
其中 h θ ( x ) h_{\theta}(x) hθ(x)为线性回归的假设函数, g ( y ) \rm g(y) g(y)称为Sigmoid
函数,Sigmoid
函数是逻辑回归的外层函数
由此可见,逻辑回归通过Sigmoid
函数引入了非线性因素,逻辑回归就是一个被Sigmoid
函数(Logistic
方程)所归一化后的线性回归模型。去除Sigmoid
映射函数的话,逻辑回归就是一个线性回归
由图像可见,逻辑回归通过Sigmoid
函数将线性回归的值域映射到(0,1)
之间,得到的这个结果类似一个概率值,这有助于直观的做出预测类型的判断:大于等于0.5
表示正类,小于0.5
表示负类
从本质上来说,在分类情况下,经过学习后的逻辑回归分类器其实就是一组权值 θ \theta θ,当有测试样本输入时,这组权值与测试数据按照加权得到
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n − 1 x n \rm h_{\theta}(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_{n-1}x_n hθ(x)=θ0+θ1x1+θ2x2+...+θn−1xn
这里的 x 1 x_1 x1~ x n x_n xn为每个样本的n个特征值。之后按照Sigmoid
函数的形式求出 P ( Y = y ∣ x ; θ ) P(Y=y|x;\theta) P(Y=y∣x;θ),从而判断每个测试样本所属的类别
对逻辑函数(Sigmoid
函数) g ( y ) \rm g(y) g(y)进行转换可得
y = ln g ( y ) 1 − g ( y ) y=\ln \frac{\rm g(y)}{\rm 1-g(y)} y=ln1−g(y)g(y)
上述中, y = θ T x y=\theta^Tx y=θTx即 h θ ( x ) h_{\theta}(x) hθ(x)表示线性回归函数,若将逻辑回归的结果 g ( y ) \rm g(y) g(y)看成某个事件发生的概率,那么这个事件不发生的概率为 1 − g ( y ) \rm 1-g(y) 1−g(y),两者的比值称为几率(odds),令 g ( y ) = p \rm g(y)=p g(y)=p,则可得
θ T x = ln