sklearn中的逻辑回归

1 概述

1.1 名为“回归”的分类器

逻辑回归是一种名为“回归”的线性分类器,它的本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。要理解逻辑回归从何而来,得先理解线性回归。线性回归是机器学习中最简单的回归算法,写作一个几乎人人熟悉的方程:
z = a 0 + a 1 x 1 + a 2 x 2 + . . . + a n x n z=a_0+a_1x_1+a_2x_2+...+a_nx_n z=a0+a1x1+a2x2+...+anxn
其中, a a a被统称为模型的参数,其中 a 0 a_0 a0被称为截距(intercept), a 1 a_1 a1~ a n a_n an被称为系数(coefficient)。使用矩阵来表示这个方程,其中 x x x a a a都可以被看做时一个列矩阵,则有:
z = ( a 0 a 1 a 2 . . . a n ) ∗ ( x 0 x 1 x 2 . . . x n ) = a T x ( x 0 = 1 ) z=\begin{pmatrix}a_0&a_1&a_2&...&a_n\end{pmatrix}*\begin{pmatrix}x_0\\x_1\\x_2\\...\\x_n\end{pmatrix}=\textbf{a}^T\textbf{x}(x_0=1) z=(a0a1a2...an)x0x1x2...xn=aTx(x0=1)
线性回归的任务,就是构造一个预测函数 z z z来映射输入的特征矩阵 x x x和标签值 y y y的线性关系,而构造预测函数的核心就是找出模型的参数: a T a^T aT a 0 a_0 a0,著名的最小二乘法就是用来求解线性回归中参数的数学方法。
通过函数 z z z,线性回归使用输入的特征矩阵 x x x来输出一组连续型的标签值y_pred,以完成各种预测连续型变量的任务(如预测产品销量,预测股价等)。如果标签是离散型变量,尤其是,如果是满足0-1分布的离散型变量,可以通过引入联系函数(link function),将线性回归方程 z z z变换为 g ( z ) g(z) g(z),并且令 g ( z ) g(z) g(z)的值分布在 ( 0 , 1 ) (0,1) (0,1)之间,且当 g ( z ) g(z) g(z)接近为0时样本的标签为类别0,当 g ( z ) g(z) g(z)接近为1时样本的标签为类别1,这样就得到一个分类模型,而这个联系函数对于逻辑回归来说,就是Sigmoid函数
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
Sigmoid函数的公式和性质:Sigmoid函数是一个S型的函数,当自变量 z z z趋近正无穷时,因变量 g ( z ) g(z) g(z)趋近于1,而当 z z z趋近负无穷时, g ( z ) g(z) g(z)趋近于0,它能够将任何实数映射到 ( 0 , 1 ) (0,1) (0,1)区间,使其可用于将任意值函数转换为更适合二分类的函数。因为这个性质,Sigmoid函数也被当作是归一化的一种方法,与之前学过的MinMaxScaler同理,是属于数据预处理中的“缩放”功能,可以将数据压缩到 [ 0 , 1 ] [0,1] [0,1]之内。区别在于,MinMaxScaler归一化之后,是可以取到0和1的(最大值归一化后就是1,最小值归一化后就是0),但Sigmoid函数只是无限趋近于0和1。
线性回归中 z = a T x z=\textbf{a}^T\textbf{x} z=aTx,将 z z z带入,就得到了二元逻辑回归模型的一般形式:
g ( z ) = y ( x ) = 1 1 + e − a T x g(z)=y(x)=\frac{1}{1+e^{-\textbf{a}^T\textbf{x}}} g(z)=y(x)=1+eaTx1
g ( z ) g(z) g(z)就是逻辑回归返回的标签值。此时, y ( x ) y(x) y(x)的取值都在 [ 0 , 1 ] [0,1] [0,1]之间,因此 y ( x ) y(x) y(x) 1 − y ( x ) 1-y(x) 1y(x)相加必然为1。如果令 y ( x ) y(x) y(x)除以 1 − y ( x ) 1-y(x) 1y(x)可以得到形似几率(odds)的 y ( x ) 1 − y ( x ) \frac{y(x)}{1-y(x)} 1y(x)y(x),在此基础上取对数,可以很容易得到:
l n y ( x ) 1 − y ( x ) = l n ( 1 1 + e − a T x 1 − 1 1 + e − a T x ) = l n ( 1 1 + e − a T x e − a T x 1 + e − a T x ) = l n ( 1 e − a T x ) = l n ( e a T x ) = a T x ln\frac{y(x)}{1-y(x)}=ln(\frac{\frac{1}{1+e^{-\textbf{a}^T\textbf{x}}}}{1-\frac{1}{1+e^{-\textbf{a}^T\textbf{x}}}})=ln(\frac{\frac{1}{1+e^{-\textbf{a}^T\textbf{x}}}}{\frac{e^{-\textbf{a}^T\textbf{x}}}{1+e^{-\textbf{a}^T\textbf{x}}}})=ln(\frac{1}{e^{-\textbf{a}^T\textbf{x}}})=ln(e^{\textbf{a}^T\textbf{x}})=\textbf{a}^T\textbf{x} ln1y(x)y(x)=ln(11+eaTx11+eaTx1)=ln(1+eaTxeaTx1+eaTx1)=ln(eaTx1)=ln(eaTx)=aTx
不难发现, y ( x ) y(x) y(x)的形似几率对数的本质其实就是线性回归 z z z,实际上是在对线性回归模型的预测结果取对数几率来让其结果无限逼近0和1。因此,其对应的模型被称为“对数几率回归”(logistic regression),也就是逻辑回归,这个名为“回归”的模型是用来做分类工作的分类器。
线性回归的核心任务是通过求解 a \textbf{a} a构建 z z z这个预测函数,并希望预测函数 z z z能够尽量拟合数据,因此逻辑回归的核心任务也是类似的:求解 a \textbf{a} a来构建一个能够尽量拟合数据的预测函数 y ( x ) y(x) y(x),并通过向预测函数中输入特征矩阵来获取相应的标签值 y y y
思考: y ( x ) y(x) y(x)代表了样本为某一类标签的概率吗? l n y ( x ) 1 − y ( x ) ln\frac{y(x)}{1-y(x)} ln1y(x)y(

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值