逻辑回归
-
概述:名为"回归"的分类器
-
- 为什么需要逻辑回归?
-
sklearn中的逻辑回归
-
linear_model.LogisticRegression
-
- 二元逻辑回归的损失函数
-
- 损失函数的概念与解惑
-
重要参数penalty & C
-
- 正则化(L1、L2)
-
附录
-
- 逻辑回归的参数列表
-
逻辑回归的属性列表
-
逻辑回归的接口列表
================================================================================
我们已经接触了不少带 “回归” 二字的算法,例如回归树、随机森林的回归,他们都是区别于分类算法,用来处理和预测连续型标签的算法。然而逻辑回归是一种名为"回归"的线性分类器,其本质是由线性回归变化而来的,一种广泛使用于分类问题中的广义回归算法。
要理解逻辑回归从何而来,得先理解线性回归。线性回归是机器学习中最简单的的回归算法:
z = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n z = \theta_0 + \theta_1x_1 + \theta_2x_2 + … + \theta_nx_n z=θ0+θ1x1+θ2x2+…+θnxn
θ \theta θ被统称为模型的参数,其中 θ 0 \theta_0 θ0被称为截距(intercept), θ 1 \theta_1 θ1~ θ n \theta_n θn被称为系数(coefficient)。这个表达式和我们熟悉的 y = k x + b y = kx + b y=kx+b是同样的性质。我们可以使用矩阵来表示这个方程,其中x和 θ \theta θ都可以被看做是一个列矩阵,则有:
z = [ θ 0 , θ 1 , θ 2 . . . θ n ] ∗ [ x 0 x 1 x 2 . . x n ] = θ T x ( x 0 = 1 ) z = [\theta_0, \theta_1, \theta_2…\theta_n] * \begin{bmatrix} x_0\\ x_1\\ x_2\\ …\\ x_n\\ \end{bmatrix} = \theta^Tx(x_0=1) z=[θ0,θ1,θ2…θn]∗⎣⎢⎢⎢⎢⎡x0x1x2…xn⎦⎥⎥⎥⎥⎤=θTx(x0=1)
线性回归的任务:构造一个预测函数 z z z来映射输入的特征矩阵x和标签值y的线性关系
- 构造预测函数的核心就是找出模型的参数: θ T \theta^T θT和 θ 0 \theta_0 θ0
著名的最小二乘法就是用来求解线性回归中参数的数学方法
通过函数 z z z ,线性回归使用输入的特征矩阵X来输出一组连续型的标签值y_pred,以完成各种预测连续型变量的任务(比如预测产品销量,预测股价等等)。
如果我们的标签是离散型变量(尤其是满足0-1分布的离散型变量),要怎么办呢?
我们可以通过引入联系函数(link function),将线性回归方程 z z z变换为 g ( z ) g(z) g(z),并且令 g ( z ) g(z) g(z)的值分布在(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+e−z1
面试高频问题:Sigmoid函数的公式和性质
Sigmoid函数能够将任何实数映射到(0,1)区间,使其可用于将任意值函数转换为更适合二分类的函数。
因为这个性质,Sigmoid函数也被当作是归一化的一种方法,与我们之前学过的MinMaxSclaer同理,是属于数据预处理中的"缩放"功能,可以将数据压缩到[0,1]之内。区别在于,MinMaxScaler归一化之后是可以取到0和1的(最大值归一化后是1,最小值归一化后是0),但Sigmoid函数只是无限趋近于0和1。
线性回归中 z = θ T z = \theta^T z=θT,于是我们将 z z z带入,就得到了二元逻辑回归模型的一般形式:
g ( z ) = y ( x ) = 1 1 + e − θ T x g(z) = y(x) = \frac 1 {1 + e{-\thetaTx}} g(z)=y(x)=1+e−θTx1
y ( x ) y(x) y(x)就是我们逻辑回归返回的标签值。此时, y