关于线性回归和逻辑回归的问题整理。

为什么逻辑斯蒂回归的输出值可以作为概率?

因为逻辑回归使用的sigmoid函数可以将线性函数映射到伯努利分布的期望中,并且sigmoid函数是符合广义线性模型的伯努利分布规范的联系函数的反函数。

  • 联系函数:函数的反函数能够将线性方程映射到某个广义线性模型的期望;
  • 广义线性模型:模型可以通过某些变换转化为线性模型。

LR推导目标函数和梯度。

LR(逻辑斯蒂回归):从几率的概念构建线性回归模型。
$$几率=\frac{事件A发生的概率}{事件A不发生的概率}\in[0,+\infin)$$
几率缩写是odds,对数的取值是$R$。
二项逻辑斯蒂回归的条件概率分布$P$为
$$P(Y=1|x)=\frac{1}{1+e^{-{(\omega^Tx+b)}}}$$
$$P(Y=0|x)=\frac{e^{-{(\omega^Tx+b)}}}{1+e^{-{(\omega^Tx+b)}}}$$
$\omega^Tx+b$可令成列向量$\omega=[\omega,b]^T,x=[x,1]^T$,令$\pi(x)=P(Y=1|x)$,则有
$$\pi(x)=\frac{1}{1+e^{-\omega^Tx}}$$
$$1-\pi(x)=\frac{e^{-\omega^Tx}}{1+e^{-\omega^Tx}}$$
通过极大似然法估计$\omega$可得LR目标函数为
$$L(\omega)=\sum_{i=1}^N[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))]$$ $$=\sum_{i=1}^N[y_ilog\pi(x_i)+log(1-\pi(x_i))-y_ilog(1-\pi(x_i))]$$ $$=\sum_{i=1}^N[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))$$
将$\pi(x)=\frac{1}{1+e^{-\omega^Tx}}$带入上式,得到目标函数
$$L(\omega)=\sum_{i=1}^N[y_i\omega^Tx_i-log(1+e^{\omega^Tx})]$$

对应的梯度

$$\frac{\mathrm{d} L}{\mathrm{d} \omega}=yx-\frac{xe^{\omega^Tx}}{e^{\omega^Tx}+1}=x(y-\pi(x))$$

再利用梯度下降算法求解即可。

分类问题和回归问题的区别?

  • 两者预测的目标变量类型不一样,分类问题的因变量是离散变量,回归问题的因变量是连续变量;参考
  • 分类问题是定性问题,回归问题是定量问题;
  • 它们的根本区别是输出空间是否为一个度量空间。回归问题的输出空间定义了一个度量去预测输出值和真实值的误差;而分类问题不能来度量,只能具体分为某个类别。

逻辑回归模型是否需要归一化?

  • 需要。 从梯度反向传播过程来看,逻辑回归模型的参数优化一般采用随机梯度下降算法,如果不对特征进行归一化,可能会使得损失函数值的等高线呈椭球形,这样会花费更多的迭代步数才能到达最优解
  • 从损失函数的角度看,逻辑回归的损失函数一般会加入正则化项,这会使得模型参数的大小会影响损失函数的值,而特征是否归一化又会影响模型的参数。所以有必要进行特征归一化。

逻辑回归和线性回归的异同?

  • 异:
    • 逻辑回归处理的是分类问题,线性回归处理的是回归问题。逻辑回归因变量的取值是一个二项分布,而线性回归输出是近似项。
    • 逻辑回归的因变量是离散的,线性回归的因变量是连续的。
  • 同:
    • 二者都使用极大似然估计进行建模,假设逻辑回归的因变量$y$服从二项分布,则逻辑回归可看成广义的线性模型,可以使用对数似然函数求解参数,假设线性回归模型的因变量$y$服从正态分布,可以使用最小二乘法求解参数。

什么样的模型需要特征归一化?

是否需要归一化要看模型是关注变量的取值,还是关注变量的分布以及变量之间的关系

  • SVM,线性回归等最优化问题需要归一化,模型更关注变量的取值;
  • 像决策树和xgboost等概率模型是不需要进行归一化,模型更关注变量之间的关系;
  • 神经网络一般是需要标准化(均值方差标准化或者最大最小值标准化),这样做是为了弱化某些变量取值较大对模型产生影响。

如何提升逻辑回归的模型性能?

逻辑回归是通过假设数据服从伯努利分布,通过极大似然估计的方法,利用梯度下降来求解参数,来到达将数据进行二分类的目的。

提升性能的方法有特征离散化、特征交叉、使用正则化,调参(学习率或者正则化参数),GBDT提取高阶特征

最小二乘法什么条件下与极大似然估计等价?

当测量误差服从均值为0的正态分布时,二者等价。
推导如下:

线性回归模型为:
$$f(x)=\sum_{j=1}^dx_j\omega_j+ \epsilon=x\omega^T+\epsilon$$

其中$x\in\R^{1×d},\omega\in\R^{1×d},\epsilon\in\R$。令$X={x_1,x_2,…,x_n} \in R^{n×d},y\in\R^{n×1}$,有
$$f(x)=X\omega^T+\epsilon$$
假设$\epsilon_i\sim(0,\sigma^2)$,则有$y_i\sim N(x_i\omega^T, \sigma^2)$,极大似然估计推导如下:
$$\underset {\omega} {\operatorname {argmax}} L(\omega)=ln \overset{n}{\underset{i=1}{\Pi}}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y_i-x_i\omega^T)^2}{2\sigma^2}}=-nln\sqrt{2\pi}\sigma-\overset{n}{\underset{i=1}{\sum}}\frac{(y_i-x_i\omega^T)^2}{2\sigma^2}$$
上式等价于
$$\underset {\omega} {\operatorname {argmin}} L(\omega)=\overset{n}{\underset{i=1}{\sum}}(y_i-x_i\omega^T)^2$$
即最小二乘法。

逻辑回归为什么要做特征离散化?

  • 离散化后稀疏向量的内积乘法运算速度快,计算简单;
  • 离散化后的特征能使得对异常数据的值具有较强的鲁棒性
  • 逻辑回归属于广义线性模型,表达能力有限,进行特征离散化后相当于为模型引入了非线性,能增强模型的泛化能力。

逻辑回归怎么实现多分类?

  • 根据每个类别构建一个二分类器,本类别的样本标签定义为1,其他类别定义为0,有多少个类别就构建多少个二分类器。
  • 也可以使用softmax损失函数实现多分类,softmax的输出是每个样本对应各个类别的概率,最后的预测类型是输出概率最高的类别。
  • 若所有类别之间有明显的互斥关系,则使用softmax分类器,若所有类别之间不互斥并且有交叉,则考虑构建类别数个逻辑回归分类器。

逻辑回归为什么不用平方损失函数?

不使用平方损失,因为逻辑回归使用Sigmoid函数作为样本概率输出时,使用平方损失会使得构造出来的损失函数是非凸的,不容易求解,并且参数容易陷入局部最优解。而使用极大似然估计,目标函数是对数似然函数,该函数时未知参数的高阶连续可导的凸函数,便于求解全局最优解。