sklearn中的逻辑回归

目录

逻辑回归

1.1 逻辑回归概述

1.2 为什么需要逻辑回归

1.3 sklearn中的逻辑回归

2 linear_model.LogisticRegression

2.3 梯度下降:重要参数max_iter

2.4 二元回归与多元回归:重要参数solver & multi_class

2.5 样本不平衡与参数class_weight


逻辑回归

1.1 逻辑回归概述

逻辑回归

是一种线性的分类器,一种由线性回归变化而来的广义回归算法

z = \theta_{0} + \theta_{1}x_{1}+ \theta_{2}x_{2}+...+\theta_{n}x_{n}

 被统称为模型的参数,其中\theta_{0}被称为截距(intercept), \theta_{1}~\theta_{n}被称为系数(coefficient),我们可以使用矩阵来表示这个方程,其中x和θ都可以被看作是一个列矩阵

z = [\theta_{0},\theta_{1},\theta_{2}...\theta_{n}] * \begin{bmatrix} x_{0} \\ x_{1} \\ x_{2} \\ ... \\ x_{n} \end{bmatrix} = \theta^{T} x\ (x_{0} = 1)

 线性回归的任务,就是构造一个预测函数 来映射输入的特征矩阵x和标签值y的线性关系,而构造预测函数的核心就是找出模型的参数:\theta^{T}\theta_{0},著名的最小二乘法就是用来求解线性回归中参数的数学方法。

那如果我们的标签是离散型变量,尤其是,如果是满足0-1分布的离散型变量,我们要怎么办呢?我们可以通过引入联系函数(link function),将线性回归方程z变换为g(z),并且令g(z)的值分布在(0,1)之间,且当g(z)接近0时样本的标签为类别0,当g(z)接近1时样本的标签为类别1,这样就得到了一个分类模型。而这个联系函数对于逻辑回归来说,就是Sigmoid函数:

g(z) = \frac{1}{1+e^{-z}}

* Sigmoid函数的公式和性质

Sigmoid函数是一个S型的函数,当自变量z趋近正无穷时,因变量g(z)趋近于1,而当z趋近负无穷时,g(z)趋近于0,它能够将任何实数映射到(0,1)区间,使其可用于将任意值函数转换为更适合二分类的函数。

因为这个性质,Sigmoid函数也被当作是归一化的一种方法,与我们之前学过的MinMaxSclaer同理,是属于数据预处理中的“缩放”功能,可以将数据压缩到[0,1]之内。

区别在于,MinMaxScaler归一化之后,是可以取到0和1的(最大值归一化后就是1,最小值归一化后就是0),但Sigmoid函数只是无限趋近于0和1。

线性回归中z = \theta^{T}x,于是我们将z带入,就得到了二元(标签是二分类)逻辑回归模型的一般形式:

g(z) =y(x) = \frac{1}{1+e^{-\theta^{T}x}}

而y(x)就是我们逻辑回归返回的标签值。此时,y(x)的取值都在[0,1]之间,因此y(x)和1-y(x)相加必然为1。如 果我们令y(x)除以1-y(x)可以得到形似几率(odds)的\frac{y(x)}{1-y(x)},在此基础上取对数,可以很容易就得到:

ln\frac{y(x)}{1-y(x)} = ln\frac{\frac{1}{1+e^{-\theta^{T}x}}}{1-\frac{1}{1+e^{-\theta^{T}x}}

= ln\frac{1}{e^{-\theta^{T}x}} = ln(e^{\theta^{T}x}) = \theta^{T}x

不难发现,y(x)的形似几率取对数的本质其实就是我们的线性回归z,我们实际上是在对线性回归模型的预测结果取对数几率来让其的结果无限逼近0和1。

因此,其对应的模型被称为”对数几率回归“(logistic Regression),也就是我们的逻辑回归,这个名为“回归”却是用来做分类工作的分类器。

逻辑回归的核心任务:求解θ来构建一个能够尽量拟合数据的预测函数y(x) ,并通过向预测函数中输入特征矩阵来获取相应的标签值y。

* 思考:y(x)代表了样本为某一类标签的概率吗?

我们让线性回归结果逼近0和1,此时y(x)和1-y(x)之和为1,因此它们可以被我们看作是一对正反例发生的概率,即y(x)是某样本i的标签被预测为1的概率,而1-y(x)是i的标签被预测为0的概率,\frac{y(x)}{1-y(x)}就是样本i的标签被预测为1的相对概率。基于这种理解,我们使用最大似然法和概率分布函数推到出逻辑回归的损失函数,并且把返回样本在标签取值上的概率当成是逻辑回归的性质来使用,每当我们诉求概率的时候,我们都会使用逻辑回归。

1.2 为什么需要逻辑回归

逻辑回归依然是一个受工业商业热爱,使用广泛的模型,因为它有着不可替代的优点:

1. 逻辑回归对线性关系的拟合效果好到丧心病狂,特征与标签之间的线性关系极强的数据,比如金融领域中的信用卡欺诈,评分卡制作,电商中的营销预测等等相关的数据,都是逻辑回归的强项。虽然现在有了梯度提升树GDBT,比逻辑回归效果更好,也被许多数据咨询公司启用,但逻辑回归在金融领域,尤其是银行业中的统治地位依然不可动摇(相对的,逻辑回归在非线性数据的效果很多时候比瞎猜还不如,所以如果你已经知道数据之间的联系是非线性的,千万不要迷信逻辑回归)

2. 逻辑回归计算快:对于线性数据,逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林,亲测表示在大型数据上尤其能够看得出区别

3. 逻辑回归返回的分类结果不是固定的0,1,而是以小数形式呈现的类概率数字:我们因此可以把逻辑回归返回的结果当成连续型数据来利用。比如在评分卡制作时,我们不仅需要判断客户是否会违约,还需要给出确定的”信用分“,而这个信用分的计算就需要使用类概率计算出的对数几率,而决策树和随机森林这样的分类器,可以产出分类结果,却无法帮助我们计算分数(当然,在sklearn中,决策树也可以产生概率,使用接口 predict_proba调用就好,但一般来说,正常的决策树没有这个功能)。

另外,逻辑回归还有抗噪能力强的优点。福布斯杂志在讨论逻辑回归的优点时,甚至有着“技术上来说,最佳模型的AUC面积低于0.8时,逻辑回归非常明显优于树模型”的说法。并且,逻辑回归在小数据集上表现更好,在大型的数据集上,树模型有着更好的表现。

由此,我们已经了解了逻辑回归的本质,它是一个返回对数几率的,在线性数据上表现优异的分类器,它主要被应用在金融领域。其数学目的是求解能够让模型对数据拟合程度最高的参数θ的值,以此构建预测函数y(x),然后将特征矩阵输入预测函数来计算出逻辑回归的结果y。

注意,虽然我们熟悉的逻辑回归通常被用于处理二分类问题, 但逻辑回归也可以做多分类。

1.3 sklearn中的逻辑回归

逻辑回归相关的类 说明
linear_model.LogisticRegression 逻辑回归分类器(又叫logit回归,最大熵分类器)
linear_model.LogisticRegressionCV 带交叉验证的逻辑回归分类器
linear_model.logistic_regression_path 计算Logistic回归模型以获得正则化参数的列表(调参)
linear_model.SGDClassifier 利用梯度下降求解的线性分类器(SVM,逻辑回归等等)
linear_model.SGDRegressor 利用梯度下降最小化正则化后的损失函数的线性回归模型
metrics.log_loss 对数损失,又称逻辑损失或交叉熵损失
其他会涉及的类 说明
metrics.confusion_matrix 混淆矩阵,模型评估指标之一
metrics.roc_auc_score ROC曲线,模型评估指标之一
metrics.accuracy_score 精确性,模型评估指标之一

2 linear_model.LogisticRegression

class sklearn.linear_model.LogisticRegre

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值