这种类型的统计模型(也称为 Logit 模型)通常用于分类和预测性分析。 逻辑回归根据给定的自变量数据集来估计事件的发生概率,如投票或未投票。 由于结果是一个概率,因此因变量的范围在 0 和 1 之间。 在逻辑回归中,对几率应用 Logit 变换,即成功概率除以失败概率。 这通常也称为对数几率,或几率的自然对数,该逻辑函数由以下公式来表示: Show Logit(pi) = 1/(1+ exp(-pi)) ln(pi/(1-pi)) = Beta_0 + Beta_1*X_1 + … + B_k*K_k 在这个逻辑回归方程中,logit(pi) 是因变量或响应变量,x 是自变量。 该模型中的 beta 参数或系数通常通过最大似然估计 (MLE) 方法进行估算。 此方法通过多次迭代测试不同的 beta 值,从而优化对数几率的最佳拟合。 所有这些迭代都会产生对数似然函数,逻辑回归会试图最大化该函数,从而找到最佳参数估计值。 一旦找到了最佳系数(具有多个自变量时找到多个系数),就可以计算、记录每个观测值的条件概率,并将它们相加在一起,得出预测概率。 对于二元分类,小于 .5 的概率将预测为 0,而大于 0 的概率则将预测为 1。 计算模型过后,最佳做法是对模型的因变量预测情况进行评估,这称为拟合优度。 Hosmer-Lemeshow 检验是评估模型拟合情况的流行方法。 在逻辑回归数据分析中,对数几率可能难以理解。 因此,通常会对 beta 估计值求幂,将结果转换为优势率 (OR),便于对结果加以解释。 OR 表示与未发生特定事件时出现结果的几率相比,发生该事件时产生结果的几率。 如果 OR 大于 1,那么该事件产生特定结果的几率较高。 反之,如果 OR 小于 1,那么该事件产生该结果的几率较低。 根据上面的等式,优势率的解释可以表示如下:x 每增加一个 c 单位,成功的几率就会改变 exp(cB_1) 倍。 举个例子,假设我们要估计泰坦尼克号上的生存几率,由于这个人是男性,男性的优势率为 .0810。 我们将优势率解释为与女性相比,男性的生存几率降低了 .0810 倍,同时保持所有其他变量不变。 阅读白皮书 (776 KB) 线性回归和逻辑回归都是数据科学中最流行的模型之一,Python 和 R 等开源工具则让它们的计算变得既快速又简单。 线性回归模型用于识别连续因变量与一个或多个自变量之间的关系。 当只有一个自变量和一个因变量时,称为简单线性回归,而随着自变量数目的增加,则被称为多元线性回归。 对于每种线性回归,都会力求绘制一条通过一组数据点的最佳拟合线,这通常使用最小二乘法来计算。 与线性回归类似,逻辑回归也用于估计因变量与一个或多个自变量之间的关系,只是其作用是对分类变量与连续变量进行预测。 分类变量可以为 true 或 false、yes 或 no、1 或 0 等等。 此外,度量单位也不同于线性回归,因为它会产生一个概率,而 Logit 函数则将 S 形曲线转换为直线。 虽然这两种模型都用于回归分析,以便预测未来结果,但线性回归通常更容易理解。 线性回归也不像逻辑回归那样需要足够大的样本来表示各类响应中的值。 如果没有较大的代表性样本,这种模型可能没有足够的统计能力来检测显著效果。 逻辑回归模型分为三种类型,它们基于分类响应而定义。
在机器学习中,逻辑回归属于监督式机器学习模型系列。 它被视为判别模型,这意味着它试图区分不同的类(或类别)。 与生成算法(例如朴素贝叶斯)不同,顾名思义,它不能生成试图预测的类别信息,例如图像(如猫的图片)。 先前,我们提到了逻辑回归如何最大化对数似然函数来确定模型的 beta 系数。 这在机器学习的背景下略有变化。 在机器学习中,负对数似然用作损失函数,使用梯度下降的过程来找到全局最大值。 这只是获得上述相同估计值的另一种方法。 逻辑回归也容易出现过度拟合,特别是在模型中有大量预测变量的情况下。 当模型遭遇高维时,正则化通常用于以较大系数对参数进行惩罚。 Scikit-learn(链接位于 IBM 外部)提供有价值的文档,用于了解有关逻辑回归机器学习模型的更多信息。 逻辑回归通常用于预测和分类问题。 其中一些用例包括:
Logistic 回归成功示例相关解决方案IBM SPSS Advanced Statistics在使用单变量和多变量建模技术分析复杂关系时,得出更准确的结论。 IBM SPSS ModelerIBM SPSS RegressionIBM Watson Studio构建并训练 AI 与机器学习模型,准备并分析数据 - 一切都在灵活的混合云环境中完成。 IBM Watson Discovery借助认知探索、强大的文本分析和机器学习功能,以智能且便捷的方式挖掘和探索全部非结构化数据。 资源所以文档都用来做笔记,便于翻阅复习,如有侵权,联系我哈,可删除~~ 什么是逻辑回归:LR是linear regression还是logistics regression呐? 两者的区别:线性回归的预测是无界限的,则需要根据可能的分类设置阈值,来作为分类问题;而逻辑回归的值域被严格限制为 0 到 1,逻辑回归并不是回归而是分类,是一种定性的分析,线性回归用来预测数值,是定量的,不适合用在分类上。当我们想将线性回归应用到分类问题中该怎么办呢?比如二分类问题,将X对应的y分为类别0和类别1。我们知道,线性回归本身的输出是连续的,也就是说要将连续的值分为离散的0和1。答案很容易想到,找到一个联系函数,将X映射到y∈{0,1}。可能大家立马会想到单位阶跃函数(unit-step Function),单位阶跃函数的确直接明了,小于0为类别0,大于0为类别1,等于0则皆可。但是有一个原则性的问题,我们需要的联系函数,必须是一个单调可微的函数,也就是说必须是连续的。逻辑回归使用的联系函数是Sigmoid函数(S形函数)中的最佳代表,即对数几率函数(Logistic Function)。 逻辑回归的对数几率函数是关于X的线性函数。 举个例子: 预测明天的气温是多少度,属于回归问题。 预测明天是阴、晴还是雨,属于分类问题。 下面来看下logistics regression:“逻辑回归”这个名称的由来,通过线性回归拟合数据,而后使用逻辑函数来预测分类的结果。 也有另外一种解释:如何用连续的数值去预测离散的标签值呢?--->从线性回归到逻辑回归原因 线性回归的输出是一个数值,而不是一个标签,显然不能直接解决二分类问题。那我如何改进我们的回归模型来预测标签呢? 一个最直观的办法就是设定一个阈值,比如0,如果我们预测的数值 y > 0 ,那么属于标签A,反之属于标签B,采用这种方法的模型又叫做感知机(Perceptron)。 另一种方法,我们不去直接预测标签,而是去预测标签为A概率,我们知道概率是一个[0,1]区间的连续数值,那我们的输出的数值就是标签为A的概率。一般的如果标签为A的概率大于0.5,我们就认为它是A类,否则就是B类。这就是我们的这次的主角逻辑回归模型 (Logistics Regression)。 适用场景:应用场景:
存在的问题:
原理:模型:附上线性回归的最小二乘推导,矩阵求导也还是有大学问滴: 损失函数:用来衡量模型的输出与真实输出的差别,最大化输出概率。 优化方法:与线性回归不同的是,逻辑回归由于其联系函数的选择,它的参数估计方法不再使用最小二乘法,而是极大似然法(Maximum Likelihood Method)。最小二乘法是最小化预测和实际之间的欧氏距离,极大似然法的思想也是如出一辙的,但是它是通过最大化预测属于实际的概率来最小化预测和实际之间的“距离”。 为什么可以用梯度下降法? 因为逻辑回归的损失函数L是一个连续的凸函数(conveniently convex)。这样的函数的特征是,它只会有一个全局最优的点,不存在局部最优。对于GD跟SGD最大的潜在问题就是它们可能会陷入局部最优。然而这个问题在逻辑回归里面就不存在了,因为它的损失函数的良好特性,导致它并不会有好几个局部最优。当我们的GD跟SGD收敛以后,我们得到的极值点一定就是全局最优的点,因此我们可以放心地用GD跟SGD来求解。 梯度下降,使用梯度G进行W的更新,随机梯度下降,不直接使用损失函数的梯度去更新,而是使用期望为G的替代函数T(W)来更新W。 梯度下降:核心思想就是先随便初始化一个W0,然后给定一个步长k,w0-->wn,从而最后靠近到达取得最大值的点,即不断进行下面的迭代过程,直到达到指定次数,或者梯度等于0为止。 随机梯度下降:如果我们能够在每次更新过程中,加入一点点噪声扰动,可能会更加快速地逼近最优值。所以使用期望为G的替代函数T来更新W。随机抽出一个样本,代替整体样本,相当于获得了梯度的无偏估计值。 代码:底层函数是怎么开发的呐? 1 初始化函数,初始化学习率、迭代的次数:__init__()
2.初始化参数,参数矩阵w里的大小范围在(-limit,limit)之间,矩阵大小为(n_features,1)。w加入b的值相当于把偏置值加进去.
3.sigmoid函数
4.逻辑回归的主要核心函数吗,X加多一列全1的值,这样wx相当于wx + b。然后根据迭代的次数,利用梯度下降法循环优化w,w_grad是梯度。
5.预测函数,利用优化求得的w预测数据的分类。
完整 版本代码:
参考git: 逻辑回归( Logistic Regression)的Python源码的实现 - 知乎 逻辑回归的可解释性:逻辑回归最大的特点就是可解释性很强。 在模型训练完成之后,我们获得了一组n维的权重向量 w跟偏差 b。 对于权重向量w,它的每一个维度的值,代表了这个维度的特征对于最终分类结果的贡献大小。假如这个维度是正,说明这个特征对于结果是有正向的贡献,那么它的值越大,说明这个特征对于分类为正起到的作用越重要。 对于偏差b (Bias),一定程度代表了正负两个类别的判定的容易程度。假如b是0,那么正负类别是均匀的。如果b大于0,说明它更容易被分为正类,反之亦然。 根据逻辑回归里的权重向量在每个特征上面的大小,就能够对于每个特征的重要程度有一个量化的清楚的认识,这就是为什么说逻辑回归模型有着很强的解释性的原因。 线性回归和逻辑回归的区别和联系:
LR模型的可解释性:从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。 优点:一是逻辑回归的算法已经比较成熟,预测较为准确; 二是模型求出的系数易于理解,便于解释,不属于黑盒模型,尤其在银行业,80%的预测是使用逻辑回归; 三是结果是概率值,可以做ranking model; 四是训练快。 缺点:分类较多的y都不是很适用;对于自变量的多重共线性比较敏感,所以需要利用因子分析或聚类分析来选择代表性的自变量;另外预测结果呈现S型,两端概率变化小,中间概率变化大比较敏感,导致很多区间的变量的变化对目标概率的影响没有区分度,无法确定阈值。 故事:1.Logistic并非逻辑的意思,其语义来自Logarithm:对数。这更体现了Logistic Regression的本质。周志华老师在其书《机器学习》中,给出了一个更恰当的中文名称:对数几率回归。我觉得这个翻译比起不搭边的“逻辑回归”,或者画蛇添足的“逻辑斯谛回归”更靠谱。 2.对数几率回归的“回归”并非针对可以应用的问题,而是来自其父级:广义线性回归模型。对数几率回归之所以用于离散的分类而不是连续的回归,是因为它将本来连续的输出,通过对数几率函数,映射到了非线性的{0,1}空间上,所以它可以有效地解决二分类问题(甚至可推广至多分类) 3.Odds(几率)和Probability(概率)之间是有区别的。Probability是指,期望的结果/所有可能出现的结果。Odds是指,期望的结果/不期望出现的结果 参考博客: 1 逻辑回归LR - fionaplanet - 博客园 2.里面的概念介绍的很好浅析机器学习:线性回归 & 逻辑回归 - 知乎 3.推导公式很好:逻辑回归原理详细推导_碧空之戈的博客-CSDN博客_逻辑回归原理 4.适用场景:https://www.jianshu.com/p/b628c90e1c1c 5.详尽解释LR的优缺点:机器学习(四)— 逻辑回归LR - 深度机器学习 - 博客园 |