Logistic回归(逻辑回归)总结
逻辑斯蒂(logistic)回归深入理解、阐述与实现
逻辑斯蒂(logistic)回归深⼊理解、阐述与实现第⼀节中说了,logistic 回归和线性回归的区别是:线性回归是根据样本X各个维度的Xi的线性叠加(线性叠加的权重系数wi就是模型的参数)来得到预测值的Y,然后最⼩化所有的样本预测值Y与真实值y'的误差来求得模型参数。
我们看到这⾥的模型的值Y是样本X各个维度的Xi的线性叠加,是线性的。
Y=WX (假设W>0),Y的⼤⼩是随着X各个维度的叠加和的⼤⼩线性增加的,如图(x为了⽅便取1维):然后再来看看我们这⾥的logistic 回归模型,模型公式是:,这⾥假设W>0,Y与X各维度叠加和(这⾥都是线性叠加W)的图形关系,如图(x为了⽅便取1维):我们看到Y的值⼤⼩不是随X叠加和的⼤⼩线性的变化了,⽽是⼀种平滑的变化,这种变化在x的叠加和为0附近的时候变化的很快,⽽在很⼤很⼤或很⼩很⼩的时候,X叠加和再⼤或再⼩,Y值的变化⼏乎就已经很⼩了。
当X各维度叠加和取⽆穷⼤的时候,Y趋近于1,当X各维度叠加和取⽆穷⼩的时候,Y趋近于0.这种变量与因变量的变化形式就叫做logistic变化。
(注意不是说X各个维度和为⽆穷⼤的时候,Y值就趋近1,这是在基于W>0的基础上,(如果W<0,n那么Y趋近于0)⽽W是根据样本训练出来,可能是⼤于0,也可能是⼩0,还可能W1>0,W2<0…所以这个w值是样本⾃动训练出来的,也因此不是说你只要x1,x2,x3…各个维度都很⼤,那么Y值就趋近于1,这是错误的。
凭直觉想⼀下也不对,因为你连样本都还没训练,你的模型就有⼀个特点:X很⼤的时候Y就很⼤。
这种强假设肯定是不对的。
因为可能样本的特点是X很⼤的时候Y就很⼩。
)所以我们看到,在logistic回归中,X各维度叠加和(或X各维度)与Y不是线性关系,⽽是logistic关系。
⽽在线性回归中,X各维度叠加和就是Y,也就是Y与X就是线性的了。
逻辑回归知识点总结
逻辑回归知识点总结1、总述逻辑回归是应⽤⾮常⼴泛的⼀个分类机器学习算法,它将数据拟合到⼀个logit函数(或者叫做logistic函数)中,从⽽能够完成对事件发⽣的概率进⾏预测。
2、由来要说逻辑回归,我们得追溯到线性回归,想必⼤家对线性回归都有⼀定的了解,即对于多维空间中存在的样本点,我们⽤特征的线性组合去拟合空间中点的分布和轨迹。
如下图所⽰:线性回归能对连续值结果进⾏预测,⽽现实⽣活中常见的另外⼀类问题是,分类问题。
最简单的情况是是与否的⼆分类问题。
⽐如说医⽣需要判断病⼈是否⽣病,银⾏要判断⼀个⼈的信⽤程度是否达到可以给他发信⽤卡的程度,邮件收件箱要⾃动对邮件分类为正常邮件和垃圾邮件等等。
当然,我们最直接的想法是,既然能够⽤线性回归预测出连续值结果,那根据结果设定⼀个阈值是不是就可以解决这个问题了呢?事实是,对于很标准的情况,确实可以的,这⾥我们套⽤Andrew Ng⽼师的课件中的例⼦,下图中X为数据点肿瘤的⼤⼩,Y为观测结果是否是恶性肿瘤。
通过构建线性回归模型,如hθ(x)所⽰,构建线性回归模型后,我们设定⼀个阈值0.5,预测hθ(x)≥0.5的这些点为恶性肿瘤,⽽hθ(x)<0.5为良性肿瘤。
但很多实际的情况下,我们需要学习的分类数据并没有这么精准,⽐如说上述例⼦中突然有⼀个不按套路出牌的数据点出现,如下图所⽰:你看,现在你再设定0.5,这个判定阈值就失效了,⽽现实⽣活的分类问题的数据,会⽐例⼦中这个更为复杂,⽽这个时候我们借助于线性回归+阈值的⽅式,已经很难完成⼀个鲁棒性很好的分类器了。
在这样的场景下,逻辑回归就诞⽣了。
它的核⼼思想是,如果线性回归的结果输出是⼀个连续值,⽽值的范围是⽆法限定的,那我们有没有办法把这个结果值映射为可以帮助我们判断的结果呢。
⽽如果输出结果是 (0,1) 的⼀个概率值,这个问题就很清楚了。
我们在数学上找了⼀圈,还真就找着这样⼀个简单的函数了,就是很神奇的sigmoid函数(如下):如果把sigmoid函数图像画出来,是如下的样⼦:Sigmoid Logistic Function从函数图上可以看出,函数y=g(z)在z=0的时候取值为1/2,⽽随着z逐渐变⼩,函数值趋于0,z逐渐变⼤的同时函数值逐渐趋于1,⽽这正是⼀个概率的范围。
cfa 二级 logistic regression
cfa 二级 logistic regression 引言概述:
CFA(Chartered Financial Analyst)二级考试是金融领域中备受认可的证书考试之一。
在CFA二级考试中,Logistic Regression(逻辑回归)是一个重要的主题。
逻辑回归是一种用于预测二分类问题的统计模型,广泛应用于金融风险评估、市场预测等领域。
本文将从五个大点出发,详细阐述CFA二级考试中的Logistic Regression。
正文内容:
1. 理解逻辑回归的基本概念
1.1 逻辑回归的定义和特点
1.2 逻辑回归的应用场景
1.3 逻辑回归的数学原理
2. 逻辑回归的模型建立与评估
2.1 数据预处理和特征选择
2.2 模型参数估计方法
2.3 模型评估和性能度量指标
3. 逻辑回归的模型解释和推断
3.1 模型系数的解释
3.2 假设检验和置信区间
3.3 模型预测和推断
4. 逻辑回归的改进和扩展
4.1 多项式逻辑回归
4.2 正则化方法
4.3 特征工程和模型优化
5. 逻辑回归的实际应用案例
5.1 金融风险评估
5.2 市场预测
5.3 营销策略优化
总结:
综上所述,CFA二级考试中的Logistic Regression是一个重要的主题。
通过理解逻辑回归的基本概念,学习逻辑回归的模型建立与评估方法,掌握逻辑回归的模型解释和推断技巧,以及了解逻辑回归的改进和扩展方法,我们可以应用逻辑回归解决金融领域的实际问题。
逻辑回归在金融风险评估、市场预测和营销策略优化等方面具有广泛的应用前景,对于金融从业者而言,掌握逻辑回归是提升专业能力的重要一步。
逻辑曲线(Logistic回归)
逻辑回归的参数解释
β0
截距,表示当所有解释变量x都为0时, logit P的估计值。
β1, β2, ..., βp
斜率,表示各解释变量对logit P的影 响程度。
逻辑回归的假设条件
线性关系
假设自变量与因变量之间存在线性关系,即因变 量的变化可以被自变量的线性组合所解释。
误差项同分布
假设误差项服从同一分布,通常是正态分布。
评估指标
根据任务类型选择合适的评估指标,如准确率、召回率、F1分数等。
模型比较
将新模型与其他同类模型进行比较,了解其性能优劣。
04 逻辑回归的优缺点
优点
分类性能好
逻辑回归模型在二分类问题上 表现优秀,分类准确率高。
易于理解和实现
逻辑回归模型形式简单,参数 意义明确,方便理解和实现。
无数据分布假设
总结词
在某些情况下,逻辑回归可能不是解决回归问题的最佳选择,此时可以考虑其他替代方 案。
详细描述
当因变量是连续变量,且自变量和因变量之间的关系非线性时,线性回归可能不是最佳 选择。此时可以考虑使用其他回归模型,如多项式回归、岭回归、套索回归等。另外, 当自变量和因变量之间的关系不确定时,可以考虑使用支持向量回归等模型进行预测。
06 总结与展望
总结
应用广泛
逻辑回归模型在许多领域都有广泛的应用,如医学、金融、市场 营销等,用于预测和解释二元分类结果。
理论基础坚实
基于概率和统计理论,逻辑回归模型能够提供可靠的预测和解释, 尤其是在处理小样本数据时。
灵活性和可解释性
模型参数可以解释为对结果概率的影响程度,这使得逻辑回归成为 一种强大且易于理解的工具。
在二分类问题中,逻辑回归通过将线性回归的输出经过逻辑函数转换,将连续的预测值转换为概率形式,从而实 现对因变量的二分类预测。逻辑函数的形式为1 / (1 + e ^ (-z)),其中z为线性回归的输出。
LOGISTIC回归分析
LOGISTIC回归分析前⾯的博客有介绍过对连续的变量进⾏线性回归分析,从⽽达到对因变量的预测或者解释作⽤。
那么如果因变量是离散变量呢?在做⾏为预测的时候通常只有“做”与“不做的区别”、“0”与“1”的区别,这是我们就要⽤到logistic分析(逻辑回归分析,⾮线性模型)。
参数解释(对变量的评价)发⽣⽐(odds): ODDS=事件发⽣概率/事件不发⽣的概率=P/(1-P)发⽣⽐率(odds ratio):odds ratio=odds B/odds A (组B相对于组A更容易发⽣的⽐率)注:odds ratio⼤于1或者⼩于1都有意义,代表⾃变量的两个分组有差异性,对因变量的发⽣概率有作⽤。
若等于1的话,该组变量对事件发⽣概率没有任何作⽤。
参数估计⽅法线性回归中,主要是采⽤最⼩⼆乘法进⾏参数估计,使其残差平⽅和最⼩。
同时在线性回归中最⼤似然估计和最⼩⼆乘发估计结果是⼀致的,但不同的是极⼤似然法可以⽤于⾮线性模型,⼜因为逻辑回归是⾮线性模型,所以逻辑回归最常⽤的估计⽅法是极⼤似然法。
极⼤似然公式:L(Θ)=P(Y1)P(Y2)...p(Y N) P为事件发⽣概率P I=1/(1+E-(α+βX I))在样本较⼤时,极⼤似然估计满⾜相合性、渐进有效性、渐进正太性。
但是在样本观测少于100时,估计的风险会⽐较⼤,⼤于100可以介绍⼤于500则更加充分。
模型评价这⾥介绍拟合优度的评价的两个标准:AIC准则和SC准则,两统计量越⼩说明模型拟合的越好,越可信。
若事件发⽣的观测有n条,时间不发⽣的观测有M条,则称该数据有n*m个观测数据对,在⼀个观测数据对中,P>1-P,则为和谐对(concordant)。
P<1-P,则为不和谐对(discordant)。
P=1-P,则称为结。
在预测准确性有⼀个统计量C=(NC-0.5ND+0.5T)/T,其中NC为和谐对数,ND为不和谐对数,这⾥我们就可以根据C统计量来表明模型的区分度,例如C=0.68,则表⽰事件发⽣的概率⽐不发⽣的概率⼤的可能性为0.68。
统计学中的Logistic回归分析
统计学中的Logistic回归分析Logistic回归是一种常用的统计学方法,用于建立并探索自变量与二分类因变量之间的关系。
它在医学、社会科学、市场营销等领域得到广泛应用,能够帮助研究者理解和预测特定事件发生的概率。
本文将介绍Logistic回归的基本原理、应用领域以及模型评估方法。
一、Logistic回归的基本原理Logistic回归是一种广义线性回归模型,通过对数据的处理,将线性回归模型的预测结果转化为概率值。
其基本原理在于将一个线性函数与一个非线性函数进行组合,以适应因变量概率为S形曲线的特性。
该非线性函数被称为logit函数,可以将概率转化为对数几率。
Logistic回归模型的表达式如下:\[P(Y=1|X) = \frac{1}{1+e^{-(\beta_0+\beta_1X_1+...+\beta_pX_p)}}\]其中,P(Y=1|X)表示在给定自变量X的条件下,因变量为1的概率。
而\(\beta_0\)、\(\beta_1\)、...\(\beta_p\)则是待估计的参数。
二、Logistic回归的应用领域1. 医学领域Logistic回归在医学领域中具有重要的应用。
例如,研究者可以使用Logistic回归分析,探索某种疾病与一系列潜在风险因素之间的关系。
通过对患病和非患病个体的数据进行回归分析,可以估计各个风险因素对疾病患病的影响程度,进而预测某个个体患病的概率。
2. 社会科学领域在社会科学研究中,研究者常常使用Logistic回归来探索特定变量对于某种行为、态度或事件发生的影响程度。
例如,研究者可能想要了解不同性别、教育程度、收入水平对于选民投票行为的影响。
通过Logistic回归分析,可以对不同自变量对于投票行为的作用进行量化,进而预测某个选民投票候选人的概率。
3. 市场营销领域在市场营销中,Logistic回归也被广泛应用于客户分类、市场细分以及产品销量预测等方面。
通过分析客户的个人特征、购买习惯和消费行为等因素,可以建立Logistic回归模型,预测不同客户购买某一产品的概率,以便制定个性化的市场营销策略。
logistic回归模型分析和总结
含有名义数据的logit
含有名义数据的logit
• 例:某地25岁及以上人中各类婚姻状况居民的死
亡情况见表,试建立死亡率关于年龄和婚姻状况
的logit模型。
ln p 1 p
A 1M1
2M 2
3M3
• 其中,A表示年龄(取中值),M1、M2、M3表示婚 姻状况
• 于是,估计的logit方程为:
多项logit模型
【例】研究三个学校、两个课程计划对学生偏好何 种学习方式的影响。调查数据见表:
• 其中,三个学校对应两个哑变量x1和x2,两个课 程计划为常规(x3=1)和附加(x3=0),学习方式分 为:自修(y=1)、小组(y=2)、上课(y=3)
• 从题目可以看出,响应变量是学习方式有三类, 属于多项逻辑斯蒂回归问题。于是,建模为:
ln ln
p1 p3 p2 p3
10 11x1 12 x2 13 x3 20 21x1 22 x2 23x3
多项logit模型
多项logit模型
• 应用统计软件可以得到模型的参数估计和回归方程:
ln
p1 p3
0.5931.134 x1 0.618 x3
ln
p2 p3
0.603 0.635 x3
ln p A E
1 p
• 其中A为年龄,E为文化程度
含有有序数据的logit
含有有序数据的logit
• 于是,估计的logit方程为:
ln p 11.637 0.124A 0.164E 1 p
• 其中,年龄的系数0.124,说明年龄越大死亡率会 越高;
• 文化程度的系数-0.164,说明文化程度与死亡率 呈负相关,文化程度越高,死亡率越低。
Logic回归总结
Logic回归总结当我第⼀遍看完台⼤的机器学习的视频的时候,我以为我理解了逻辑回归,可后来越看越迷糊,直到看到了这篇⽂章,豁然开朗基本原理Logistic Regression和Linear Regression的原理是相似的,按照我⾃⼰的理解,可以简单的描述为这样的过程:(1)找⼀个合适的预测函数(Andrew Ng的公开课中称为hypothesis),⼀般表⽰为h函数,该函数就是我们需要找的分类函数,它⽤来预测输⼊数据的判断结果。
这个过程时⾮常关键的,需要对数据有⼀定的了解或分析,知道或者猜测预测函数的“⼤概”形式,⽐如是线性函数还是⾮线性函数。
(2)构造⼀个Cost函数(损失函数),该函数表⽰预测的输出(h)与训练数据类别(y)之间的偏差,可以是⼆者之间的差(h-y)或者是其他的形式。
综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表⽰所有训练数据预测值与实际类别的偏差。
(3)显然,J(θ)函数的值越⼩表⽰预测函数越准确(即h函数越准确),所以这⼀步需要做的是找到J(θ)函数的最⼩值。
找函数的最⼩值有不同的⽅法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。
具体过程(1) 构造预测函数Logistic Regression虽然名字⾥带“回归”,但是它实际上是⼀种分类⽅法,⽤于两分类问题(即输出只有两种)。
根据第⼆章中的步骤,需要先找到⼀个预测函数(h),显然,该函数的输出必须是两个值(分别代表两个类别),所以利⽤了Logistic函数(或称为Sigmoid函数),函数形式为:对应的函数图像是⼀个取值在0和1之间的S型曲线(图1)。
图1接下来需要确定数据划分的边界类型,对于图2和图3中的两种数据分布,显然图2需要⼀个线性的边界,⽽图3需要⼀个⾮线性的边界。
接下来我们只讨论线性边界的情况。
图2图3对于线性边界的情况,边界形式如下:构造预测函数为:hθ(x)函数的值有特殊的含义,它表⽰结果取1的概率,因此对于输⼊x分类结果为类别1和类别0的概率分别为:(2)构造Cost函数Andrew Ng在课程中直接给出了Cost函数及J(θ)函数如式(5)和(6),但是并没有给出具体的解释,只是说明了这个函数来衡量h函数预测的好坏是合理的。
logistic回归原理
logistic回归原理
Logistic回归,又称为逻辑回归,是一种广泛应用的机器学习算法,主要用于分类问题。
它将一个数值变量预测为两个或多个二元变量值之一,例如:通过观察一个变量,我们可以预测另一个变量为正类/负类。
Logistic回归是一种函数拟合技术,它可以根据给定的输入数据,建立一个模型以预测数据的输出值。
它使用一个逻辑函数(也称为S形函数)来将连续的输入变量映射到二元类别输出中,形成一个只具有两个类别的模型。
Logistic回归的基本原理是,我们根据输入特征(例如年龄、性别、学历等)来预测输出(例如好/坏借款人)。
在Logistic回归模型中,输入特征是一个变量,而输出是一个二元变量,即只有两个值-0或1。
为了使Logistic回归模型正确地对数据进行建模,需要在训练阶段对参数进行估计。
估计的方式多种多样,但最常用的是最大似然估计(MLE)。
在MLE中,我们根据给定的训练数据找到最可能产生该数据的参数,也就是找到能够最好地拟合训练数据的参数。
一旦参数被估计出来,就可以使用该模型来预测新数据。
预测时,通常使用两个概念来描述预测:概率和似然估计。
概率表示新数据属于某个类别的可能性,即预测出的结果是0还是1的概率。
而似然估计则表示特定参数的可信度,即该参数产生观测数据的可能性。
总之,Logistic回归是一种广泛应用于分类问题的机器学习算
法,它将一个数值变量预测为两个或多个二元变量值之一。
它使用一个函数来将连续的输入变量映射到二元类别输出中,以预测数据的输出值。
在Logistic回归模型中,我们使用最大似然估计来估计参数,以及概率和似然估计来预测新数据。
logistic regression原理(一)
logistic regression原理(一)Logistic Regression原理1. 介绍•Logistic Regression(逻辑回归)是一种用于处理分类问题的机器学习算法。
•它可以用于二分类问题,也可以通过扩展用于多分类问题。
2. 基本概念•Logistic Regression的基本原理是通过拟合一个逻辑函数来预测分类概率。
•逻辑函数是一个S形曲线,将输入映射到0到1之间的值。
3. Sigmoid函数•逻辑函数通常使用Sigmoid函数来表示,公式如下:[Sigmoid Function](其中,z是线性方程的输出。
4. 线性方程•Logistic Regression使用一个线性方程加权求和输入特征来预测分类概率。
•线性方程的表示为:[Linear Equation](其中,x是输入特征,β是线性方程的权重。
5. 模型训练•训练Logistic Regression模型的目标是找到最佳的权重值,使得模型的预测结果与实际情况最为接近。
•常用的方法是最大似然估计,根据已有的训练数据,最大化模型预测正确性的概率。
6. 损失函数•损失函数用于衡量模型预测结果与实际情况之间的差异。
•在Logistic Regression中,常用的损失函数是对数损失函数(Log Loss)。
7. 模型预测•模型训练完成后,可以使用它来进行分类预测。
•根据输入特征,通过线性方程和Sigmoid函数,得到分类的概率值。
•一般而言,当概率大于时,预测为正类;当概率小于等于时,预测为负类。
8. 优点和局限性•优点:–算法简单,易于理解和实现;–训练速度快;–可以处理大规模数据;–可以输出分类概率值。
•局限性:–对特征之间的相关性敏感;–很难处理非线性关系。
9. 应用领域•Logistic Regression在许多领域都有广泛应用,例如:–金融行业中的风险评估和信用评分;–医疗领域中的疾病诊断;–电子商务中的用户购买行为预测。
分类模型归纳总结
分类模型归纳总结在机器学习和数据挖掘领域,分类是一种常见的任务,它旨在根据给定的特征将数据点分为不同的类别。
分类模型是用于解决分类问题的数学模型。
本文将对一些常见的分类模型进行归纳总结,包括逻辑回归、决策树、支持向量机和随机森林等。
一、逻辑回归(Logistic Regression)逻辑回归是一种广泛应用于分类问题的线性模型。
它通过将输入特征与权重相乘,并通过一个激活函数(如sigmoid函数)将结果映射到[0, 1]的范围内,从而预测样本属于某个类别的概率。
逻辑回归具有简单、高效的特点,适用于二分类问题。
二、决策树(Decision Tree)决策树是一种基于树结构的分类模型。
它通过将特征空间划分为多个矩形区域,每个区域对应一个类别,从而实现对样本进行分类。
决策树具有易解释、易理解的特点,可处理离散和连续特征,并且具备较好的鲁棒性。
三、支持向量机(Support Vector Machine)支持向量机是一种经典的分类模型,通过在特征空间中构造最优超平面,将不同类别的样本分开。
支持向量机可处理线性可分和线性不可分的问题,在高维空间中表现出色,并具有一定的抗噪能力。
四、随机森林(Random Forest)随机森林是一种集成学习方法,由多个决策树组成。
它通过对训练集随机采样,并对每个采样子集构建一个决策树,最终通过投票或平均等方式得到分类结果。
随机森林具有较高的准确性和较好的泛化能力,对于处理高维数据和大规模数据集具有一定优势。
五、朴素贝叶斯分类器(Naive Bayes Classifier)朴素贝叶斯分类器是一种基于贝叶斯定理的概率分类模型。
它假设各个特征之间相互独立,并根据训练数据计算类别的先验概率和特征的条件概率,从而进行分类预测。
朴素贝叶斯分类器简单、高效,并在处理文本分类等领域表现突出。
六、神经网络(Neural Networks)神经网络是一类模拟人脑结构和功能的机器学习模型。
它包含输入层、隐藏层和输出层,通过不同层之间的连接权重进行信息传递和特征提取,最终实现分类任务。
logistic回归法
logistic回归法Logistic回归法是一种常用的分类算法,广泛应用于各个领域。
它通过构建一个逻辑回归模型来预测某个事件发生的概率。
本文将介绍Logistic回归法的原理、应用场景以及优缺点。
一、Logistic回归法的原理Logistic回归法是基于线性回归的一种分类算法,它使用sigmoid 函数将线性回归的结果映射到[0,1]之间。
sigmoid函数的公式为:$$f(x) = \frac{1}{1+e^{-x}}$$其中,x为线性回归的结果。
通过这个映射,我们可以将线性回归的结果解释为某个事件发生的概率。
二、Logistic回归法的应用场景Logistic回归法常用于二分类问题,如预测某个疾病的发生与否、判断邮件是否为垃圾邮件等。
它也可以通过一些改进来应用于多分类问题。
在实际应用中,Logistic回归法非常灵活,可以根据需要选择不同的特征和参数,以达到更好的分类效果。
同时,它对特征的要求相对较低,可以处理连续型和离散型的特征,也可以处理缺失值。
三、Logistic回归法的优缺点1. 优点:- 计算简单、效率高:Logistic回归法的计算量相对较小,算法迭代速度快,适用于大规模数据集。
- 解释性强:Logistic回归模型可以得到各个特征的权重,从而可以解释每个特征对结果的影响程度。
- 可以处理离散型和连续型特征:Logistic回归法不对特征的分布做出假设,可以处理各种类型的特征。
- 可以处理缺失值:Logistic回归法可以通过插补等方法处理缺失值,不需要将含有缺失值的样本剔除。
2. 缺点:- 容易出现欠拟合或过拟合:当特征过多或特征与目标变量之间存在非线性关系时,Logistic回归模型容易出现欠拟合或过拟合问题。
- 对异常值敏感:Logistic回归模型对异常值比较敏感,可能会对模型造成较大的干扰。
- 线性关系假设:Logistic回归模型假设特征与目标变量之间的关系是线性的,如果实际情况并非线性关系,模型的预测效果可能较差。
logistic regression逻辑回归算法 -回复
logistic regression逻辑回归算法-回复什么是逻辑回归算法?逻辑回归是一种广泛应用于分类问题的统计学习方法。
它的目标是通过对数几率函数来预测输出的概率值,将其转化为一个二分类问题。
逻辑回归常用于预测事件的发生概率,如判断一个邮件是否为垃圾邮件、预测一个学生是否通过考试等。
逻辑回归的基本原理是假设数据服从伯努利分布,通过对数据进行建模来预测概率。
它利用了一种被称为“逻辑函数”(或者称为“Sigmoid函数”)的数学函数。
逻辑函数将实数输入映射到0和1之间的概率输出,这样可以轻松地进行分类判断。
逻辑函数具有以下形式:P (y=1 X) = 1 / (1 + exp(-z))其中P (y=1 X)是给定观测变量X的条件下输出y为1的概率,z是一个线性组合,可以通过如下形式表示:z = β0 + β1x1 + β2x2 + ... + βnxn其中β0, β1, β2, ..., βn是设定的模型参数,x1, x2, ..., xn是输入特征变量。
如何使用逻辑回归算法进行分类问题的预测?逻辑回归算法的核心工作就是通过对训练数据的学习来确定模型的参数,然后利用这些参数来进行分类问题的预测。
步骤1:准备数据集首先,需要收集或准备一个适当的数据集。
数据集应该包括特征变量和对应的分类(响应)变量。
步骤2:参数初始化为了开始建模,需要初始化逻辑回归模型的参数。
一般来说,可以将模型参数设置为0或者一个小的随机值。
步骤3:计算成本函数(代价函数)为了评估模型的性能,需要定义一个成本函数(也称为代价函数,损失函数),该函数可以用来衡量预测结果与真实结果之间的差距。
常用的成本函数是对数损失函数,具有如下形式:J (β) = −[ylog(h(x))+(1−y)log(1−h(x))]其中,h(x)是逻辑函数的输出,y是真实的分类变量。
步骤4:计算梯度和更新参数为了最小化成本函数,使用梯度下降算法来更新模型的参数。
logisticregression简介
logisticregression简介Logistic Regression简介Logistic Regression(逻辑回归)是一种统计学习方法,用于解决分类问题。
它是由人们对线性回归模型的改进而来,通过引入逻辑函数将线性模型的输出限制在[0,1]之间,从而实现对二分类问题的建模。
Logistic Regression的基本原理是通过构建一个逻辑函数,将输入的特征与输出的概率联系起来。
逻辑函数一般采用Sigmoid函数,形式为:$$f(x) = \frac{1}{1+e^{-x}}$$其中,x为输入特征的线性组合。
Sigmoid函数具有将输入映射到[0,1]之间的特性,因此可以将输出解释为概率。
在Logistic Regression中,模型的参数是通过最大似然估计来求解的。
给定一个训练集,我们希望找到一组参数,使得模型对训练集的预测概率尽可能接近真实标签的概率。
具体来说,我们希望最大化似然函数:$$L(\theta) = \prod_{i=1}^{n}P(y^{(i)}|x^{(i)};\theta)$$其中,$y^{(i)}$为第i个样本的真实标签,$x^{(i)}$为其对应的特征向量,$\theta$为模型的参数。
对上式取对数,可以得到对数似然函数:$$l(\theta) = \sum_{i=1}^{n}\log P(y^{(i)}|x^{(i)};\theta)$$为了最大化对数似然函数,可以使用梯度上升法或者其他优化算法来求解。
Logistic Regression的优点之一是模型简单且易于解释。
由于模型的输出可以解释为概率,因此可以根据设定的阈值来进行分类预测。
此外,Logistic Regression对异常值和噪声有较好的鲁棒性,可以在一定程度上避免过拟合问题。
然而,Logistic Regression也有一些限制。
首先,它只能处理二分类问题,对于多分类问题需要进行扩展。
logistic regression 系数
logistic regression 系数摘要:1.逻辑回归简介2.逻辑回归系数含义3.逻辑回归系数估计方法4.逻辑回归系数解释与应用5.总结正文:一、逻辑回归简介逻辑回归(Logistic Regression)是一种用于分类问题的线性模型。
它通过拟合一个线性方程来预测一个二分类问题的概率,从而判断样本属于哪个类别。
逻辑回归模型中的系数起着关键作用,我们需要了解它们的含义以及如何解释和应用。
二、逻辑回归系数含义在逻辑回归模型中,系数代表特征变量与对应类别概率之间的线性关系。
具体来说,逻辑回归系数可以分为两部分:1.系数β0:截距项,表示当所有自变量为0时,对应类别概率的基准值。
2.系数βi:斜率项,表示自变量xi每增加一个单位,对应类别概率的变化幅度。
三、逻辑回归系数估计方法逻辑回归系数通过最大化分类模型的对数似然函数来估计。
在训练过程中,我们迭代调整系数β,使得训练数据的对数似然概率最大化。
常用的求解方法有梯度下降、牛顿法、拟牛顿法等。
四、逻辑回归系数解释与应用1.系数β0:可以用来判断基准概率。
例如,在信用评分模型中,β0 表示无信用借款人的违约概率。
2.系数βi:表示特征变量xi对分类结果的影响程度。
正值表示该特征与目标类别正相关,负值则表示负相关。
绝对值越大,该特征对分类结果的影响越大。
3.应用:系数可用于构建解释性强的模型,帮助分析各个特征对目标结果的影响程度。
例如,在广告投放场景中,可以根据系数分析哪些用户特征对点击率影响较大,从而优化广告策略。
五、总结逻辑回归系数在逻辑回归模型中具有重要地位,它们反映了特征变量与类别概率之间的关系。
通过合理地选择和解释系数,我们可以更好地理解特征对分类结果的影响,并为实际问题提供有效的解决方案。
逻辑回归最详尽解释
逻辑回归最详尽解释模型介绍Logistic Regression 是⼀个⾮常经典的算法,其中也包含了⾮常多的细节,曾看到⼀句话:如果⾯试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了。
Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常⽤于⼆分类。
Logistic Regression 因其简单、可并⾏化、可解释强深受⼯业界喜爱。
Logistic 回归的本质是:假设数据服从这个分布,然后使⽤极⼤似然估计做参数的估计。
1.1 Logistic 分布Logistic 分布是⼀种连续型的概率分布,其分布函数和密度函数分别为:其中,表⽰位置参数,为形状参数。
我们可以看下其图像特征:Logistic 分布是由其位置和尺度参数定义的连续分布。
Logistic 分布的形状与正态分布的形状相似,但是 Logistic 分布的尾部更长,所以我们可以使⽤ Logistic 分布来建模⽐正态分布具有更长尾部和更⾼波峰的数据分布。
在深度学习中常⽤到的函数就是 Logistic 的分布函数在的特殊形式。
1.2 Logistic 回归之前说到 Logistic 回归主要⽤于分类问题,我们以⼆分类为例,对于所给数据集假设存在这样的⼀条直线可以将数据完成线性可分。
决策边界可以表⽰为,假设某个样本点那么可以判断它的类别为 1,这个过程其实是感知机。
Logistic 回归还需要加⼀层,它要找到分类概率与输⼊向量的直接关系,然后通过⽐较概率值来判断类别。
考虑⼆分类问题,给定数据集考虑到取值是连续的,因此它不能拟合离散变量。
可以考虑⽤它来拟合条件概率,因为概率的取值也是连续的。
但是对于(若等于零向量则没有什么求解的价值),取值为 R ,不符合概率取值为 0 到 1,因此考虑采⽤⼴义线性模型。
最理想的是单位阶跃函数:但是这个阶跃函数不可微,对数⼏率函数是⼀个常⽤的替代函数:于是有:我们将视为为正例的概率,则为为其反例的概率。
logistic regression逻辑回归算法 -回复
logistic regression逻辑回归算法-回复什么是逻辑回归算法(Logistic Regression Algorithm)?逻辑回归算法是一种广泛应用于机器学习和统计学领域的经典算法,用于建立分类模型。
它适用于用于预测二元分类问题的情况,即目标变量只有两个可能的输出。
逻辑回归通过将线性回归模型的输出转换为0和1之间的概率,从而实现分类。
逻辑回归算法的基本原理是将输入特征的加权和通过一个被称为"逻辑函数"或"sigmoid函数"的非线性函数进行转换。
这个函数可以将任何实数映射到[0,1]区间上的一个值。
逻辑函数常见的形式是:sigmoid(z) = \frac{1}{1 + e^{-z}}其中,z是线性回归模型的输出,由输入特征的加权和计算得到。
这个转换将使得输出可以被视为属于某个类别的概率。
逻辑回归算法的训练过程主要通过最大似然估计来确定模型的参数。
最大似然估计的目标是最大化给定数据样本的输出发生概率的乘积。
根据逻辑回归模型的假设,每个数据样本的输出概率可以由逻辑函数来表示。
因此,似然函数可以由所有数据样本的输出概率乘积来表示。
为了最大化似然函数,可以使用梯度下降法或牛顿法等优化算法来更新模型的参数,使得似然函数取得最大值。
这些优化算法会根据似然函数的梯度信息来调整参数的值,直至达到最优解。
在训练完成后,逻辑回归模型可以用于预测新的未知数据样本的类别。
通过计算输入特征的加权和,并将其输入逻辑函数中,可以得到一个概率值。
通常,概率值大于一个阈值(通常是0.5),模型将判定该数据样本属于正类别;反之则属于负类别。
逻辑回归算法具有许多优点。
首先,它的训练速度相对较快,尤其适用于大规模数据集。
其次,逻辑回归可以提供一个明确的概率值,而不仅仅是简单地判定一个样本属于哪个类别。
此外,逻辑回归模型也比较易于解释和理解。
然而,逻辑回归模型也有一些限制。
例如,它只适用于线性可分的数据集,因为它只能通过线性方式从输入特征中提取信息。
logistic回归模型
logistic回归模型一、模型简介在实际分析中,有时候因变量为分类变量,例如阴性阳性、性别、血型等,此时使用线性回归模型进行拟合会出现问题。
因此,我们需要找出其他解决思路,那就是logit变换(逻辑变换)。
逻辑变换将某种结果出现的概率和不出现的概率之比称为优势比P/(1-P),并取其对数,使之与自变量之间呈线性关系,从而解决了线性回归模型无法保证因变量只有两个取值的问题。
经过逻辑变换的线性模型称为logistic回归模型(逻辑回归模型),属于广义线性回归模型的范畴。
逻辑回归可以预测某个结果出现的概率,对因变量进行变换的方法很多,并不只有逻辑变换一种。
二、模型估计方法逻辑回归不能使用普通最小二乘估计,而使用极大似然估计或迭代重加权最小二乘法IRLS(XXX)。
使用极大似然估计的好处是,这是一种概率论在参数估计中的应用,正好和我们对因变量的概率预测相符合。
极大似然估计基于这样的思想:如果某些参数能使这个样本出现的概率最大,那就把这个参数作为估计的真实值。
三、优势比odds根据因变量的取值不同,逻辑回归可以分为四种:二分类逻辑回归、有序多分类逻辑回归、无序多分类逻辑回归、配对逻辑回归。
优势比odds是逻辑回归中的一个重要概念,指某种结果出现的概率和不出现的概率之比,通过逻辑变换,优势比可以被用作因变量进行拟合。
对于一些特殊情况,还需具体问题具体分析,不能一味地使用逻辑变换。
在二分类逻辑回归中,自变量可以是连续变量、二分类变量和多分类变量。
对于多分类变量,需要引入哑变量进行处理。
哑变量也称为虚拟变量,取值通常为0或1,代表参照分类和比较分类。
需要注意避免共线性,定义k-1个哑变量(包含截距)或k个哑变量(不包含截距)。
有序多分类变量指各因变量之间存在等级或程度差异。
对于因变量为有序分类变量的数据,可以通过拟合因变量个数-1个的逻辑回归模型,称为累积逻辑模型来进行。
这种方式依次将因变量按不同的取值水平分割成若干个二分类变量,然后再依次拟合二分类逻辑回归模型。
逻辑回归(LogisticRegression)详解,公式推导及代码实现
逻辑回归(LogisticRegression)详解,公式推导及代码实现逻辑回归(Logistic Regression)什么是逻辑回归: 逻辑回归(Logistic Regression)是⼀种基于概率的模式识别算法,虽然名字中带"回归",但实际上是⼀种分类⽅法,在实际应⽤中,逻辑回归可以说是应⽤最⼴泛的机器学习算法之⼀回归问题怎么解决分类问题? 将样本的特征和样本发⽣的概率联系起来,⽽概率是⼀个数.换句话说,我预测的是这个样本发⽣的概率是多少,所以可以管它叫做回归问题在许多机器学习算法中,我们都是在追求这样的⼀个函数例如我们希望预测⼀个学⽣的成绩y,将现有数据x输⼊模型 f(x) 中,便可以得到⼀个预测成绩y但是在逻辑回归中,我们得到的y的值本质是⼀个概率值p在得到概率值p之后根据概率值来进⾏分类当然了这个1和0在不同情况下可能有不同的含义,⽐如0可能代表恶性肿瘤患者,1代表良性肿瘤患者逻辑回归既可以看做是回归算法,也可以看做是分类算法,通常作为分类算法⽤,只可以解决⼆分类问题,不过我们可以使⽤⼀些其他的技巧(OvO,OvR),使其⽀持解决多分类问题下⾯我们来看⼀下逻辑回归使⽤什么样的⽅法来得到⼀个事件发⽣的概率的值在线性回归中,我们使⽤来计算,要注意,因为Θ0的存在,所以x⽤⼩的X b来表⽰,就是每来⼀个样本,前⾯还还要再加⼀个1,这个1和Θ0相乘得到的是截距,但是不管怎样,这种情况下,y的值域是(-infinity, +infinity)⽽对于概率来讲,它有⼀个限定,其值域为[0,1]所以我们如果直接使⽤线性回归的⽅式,去看能不能找到⼀组Θ来与特征x相乘之后得到的y值就来表达这个事件发⽣的概率呢?其实单单从应⽤的⾓度来说,可以这么做,但是这么做不够好,就是因为概率有值域的限制,⽽使⽤线性回归得到的结果则没有这个限制为此,我们有⼀个很简单的解决⽅案:我们将线性回归得到的结果再作为⼀个特征值传⼊⼀个新的函数,经过转换,将其转换成⼀个值域在[0,1]之间的值Sigmoid函数:将函数绘制出来:其最左端趋近于0,最右端趋近于1,其值域在(0,1),这正是我们所需要的性质当传⼊的参数 t > 0 时, p > 0.5, t < 0 时, p < 0.5,分界点是 t = 0使⽤Sigmoid函数后:现在的问题就是,给定了⼀组样本数据集X和它对应的分类结果y,我们如何找到参数Θ,使得⽤这样的⽅式可以最⼤程度的获得这个样本数据集X对应的分类输出y这就是我们在训练的过程中要做的主要任务,也就是拟合我们的训练样本,⽽拟合过程,就会涉及到逻辑回归的损失函数逻辑回归的损失函数:我们定义了⼀个这样的损失函数:画出图像:让我们看⼀下这个函数有什么样的性质,据图像我们很容易发现: 当y=1时,p趋近于零的时候,在这个时候可以看此时-log(p)趋近于正⽆穷,这是因为当p趋近于0的时候,按照我们之前的这个分类的⽅式,我们就会把这个样本分类成0这⼀类,但是这个样本实际是1这⼀类,显然我们分错了,那么此时我们对它进⾏惩罚,这个惩罚是正⽆穷的,随着p逐渐的增⾼,可以看我们的损失越来越⼩,当我们的p到达1的时候,也就是根据我们的分类标准,我们会将这个样本x分类成1,此时,它和这个样本真实的y等于1是⼀致的,那么此时损失函数取0也就是没有任何损失,当y=0时同理现在这个损失函数还是太过复杂,需要判定y的值,我们对其进⾏简化:这个函数与上⾯的是等价的这样,根据我们求出的p,就可以得出这次估计的损失是多少最后,再把损失相加求平均值,其公式为:将两个式⼦整合:下⾯我们要做的事情,就是找到⼀组Θ,使得J(Θ)最⼩对于这个式⼦,我们很难像线性回归那样推得⼀个正规⽅程解,实际上这个式⼦是没有数学解的,也就是⽆法把X和直接套进公式获得Θ不过,我们可以使⽤梯度下降法求得它的解,⽽且,这个损失函数是⼀个凸函数,不⽤担⼼局部最优解的,只存在全局最优解现在,我们的任务就是求出J(Θ)的梯度,使⽤梯度下降法来进⾏计算⾸先,求J(Θ)的梯度的公式:⾸先,我们对Sigmoid函数求导:得到其导数,再对logσ(t)求导,求导步骤:由此可知, 前半部分的导数: 其中y(i)是常数再求后半部分:这其中将结果代⼊,化简得:就得到后半部分的求导结果:将前后部分相加:即:就可以得到:此时我们回忆⼀下线性回归的向量化过程参考这个,可以得到:这就是我们要求的梯度,再使⽤梯度下降法,就可以求得结果决策边界:这⾥引⼊⼀个概念,叫做判定边界,可以理解为是⽤以对不同类别的数据分割的边界,边界的两旁应该是不同类别的数据从⼆维直⾓坐标系中,举⼏个例⼦,⼤概是如下这个样⼦:使⽤OvR和OvO⽅法解决多分类:原本的逻辑回归只能解决双分类问题,但我们可以通过⼀些⽅法,让它⽀持多分类问题,⽐如OvR和OvO⽅法OvR: n 种类型的样本进⾏分类时,分别取⼀种样本作为⼀类,将剩余的所有类型的样本看做另⼀类,这样就形成了 n 个⼆分类问题,使⽤逻辑回归算法对 n 个数据集训练出 n 个模型,将待预测的样本传⼊这 n 个模型中,所得概率最⾼的那个模型对应的样本类型即认为是该预测样本的类型 n个类别就进⾏n次分类,选择分类得分最⾼的OvO: n 类样本中,每次挑出 2 种类型,两两结合,⼀共有 C n2种⼆分类情况,使⽤ C n2种模型预测样本类型,有 C n2个预测结果,种类最多的那种样本类型,就认为是该样本最终的预测类型这两种⽅法中,OvO的分类结果更加精确,因为每⼀次⼆分类时都⽤真实的类型进⾏⽐较,没有混淆其它的类别,但时间复杂度较⾼代码实现 :1import numpy as np2from .metrics import accuracy_score345class LogisticRegression:67def__init__(self):8"""初始化Linear Regression模型"""9 self.coef_ = None10 self.intercept_ = None11 self._theta = None1213def _sigmoid(self, t):14return 1. / (1. + np.exp(-t))1516def fit(self, X_train, y_train, eta=0.01, n_iters=1e4):17"""根据训练数据集X_train, y_train, 使⽤梯度下降法训练Logistic Regression模型"""18assert X_train.shape[0] == y_train.shape[0], \19"the size of X_train must be equal to the size of y_train"2021def J(theta, X_b, y):22 y_hat = self._sigmoid(X_b.dot(theta))23try:24return - np.sum(y*np.log(y_hat) + (1-y)*np.log(1-y_hat)) / len(y)25except:26return float('inf')2728def dJ(theta, X_b, y):29return X_b.T.dot(self._sigmoid(X_b.dot(theta)) - y) / len(X_b)3031def gradient_descent(X_b, y, initial_theta, eta, n_iters=1e4, epsilon=1e-8): 3233 theta = initial_theta34 cur_iter = 03536while cur_iter < n_iters:37 gradient = dJ(theta, X_b, y)38 last_theta = theta39 theta = theta - eta * gradient40if (abs(J(theta, X_b, y) - J(last_theta, X_b, y)) < epsilon):41break4243 cur_iter += 14445return theta4647 X_b = np.hstack([np.ones((len(X_train), 1)), X_train])48 initial_theta = np.zeros(X_b.shape[1])49 self._theta = gradient_descent(X_b, y_train, initial_theta, eta, n_iters)5051 self.intercept_ = self._theta[0]52 self.coef_ = self._theta[1:]5354return self55565758def predict_proba(self, X_predict):59"""给定待预测数据集X_predict,返回表⽰X_predict的结果概率向量"""60assert self.intercept_ is not None and self.coef_ is not None, \ 61"must fit before predict!"62assert X_predict.shape[1] == len(self.coef_), \63"the feature number of X_predict must be equal to X_train"6465 X_b = np.hstack([np.ones((len(X_predict), 1)), X_predict])66return self._sigmoid(X_b.dot(self._theta))6768def predict(self, X_predict):69"""给定待预测数据集X_predict,返回表⽰X_predict的结果向量"""70assert self.intercept_ is not None and self.coef_ is not None, \ 71"must fit before predict!"72assert X_predict.shape[1] == len(self.coef_), \73"the feature number of X_predict must be equal to X_train"7475 proba = self.predict_proba(X_predict)76return np.array(proba >= 0.5, dtype='int')7778def score(self, X_test, y_test):79"""根据测试数据集 X_test 和 y_test 确定当前模型的准确度"""8081 y_predict = self.predict(X_test)82return accuracy_score(y_test, y_predict)8384def__repr__(self):85return"LogisticRegression()"。
logistics回归解释
logistics回归解释Logistic回归是统计学中一个常用的分类算法,用于预测二元变量的结果。
例如,它可以用于预测一个人是否喜欢某个产品,或是否患有某种疾病。
Logistic回归的本质是一种线性模型,它通过将自变量的线性组合(在这里通常指特征值)传递到logistic函数中来预测响应变量。
这个函数的输出可以被解释为响应变量是二元的概率。
logistic函数(也称为逻辑斯蒂函数)将线性组合作为输入,并将其“挤压”到介于0和1之间的范围内,它的输出值表示响应变量是1的概率:$$ f(\mathrm{x}) = \frac{1}{1+\mathrm{e}^{-\mathrm{x}}} $$其中x是自变量的线性组合,它的定义可以写成:$$ \mathrm{x} = w_0 + w_1x_1 + w_2x_2 + ... + w_px_p $$其中,w是每个特征的权重,x是每个特征值。
这个方程中的第一个项(w0)是截距项,它确保对于所有的特征值为0的情况下,响应变量的概率为基本值。
当w0+w1x1+w2x2+...wp> 0时,logistic函数的输出为1,并且响应变量被预测为阳性(即响应变量等于1)。
反之,如果w0+w1x1+w2x2+...wp< 0,算法将预测响应变量等于0。
在训练Logistic回归模型时,我们需要确定每个特征的重要程度,以及最佳的随机误差项权重。
我们可以使用最大似然估计(MLE)算法来解决这个问题。
该算法将基于样本数据,逐步调整其参数,直到达到接近最佳拟合的状态。
总之,Logistic回归是一种流行的分类算法,可以处理许多不同的问题,例如预测身患某种疾病的人数,或预测客户对一种产品的反应。
它的输出值可以转化为比率或概率,这使得它非常灵活和可解释。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 梯度下降法求 J ( ) 的最小值
求 J ( ) 的最小值可以使用梯度下降法,根据梯度下降法可得 的更新过程:
j : j -
式中 为学习步长,下面来求偏导:
J ( ), ( j 0 n) j
(11)
1 m 1 1 J ( ) y ( i ) h (x (i) ) (1 y ( i ) ) h (x (i) ) (i) (i) j m i 1 h (x ) j 1 h (x ) j 1 m (i ) 1 1 (1 y ( i ) ) g ( T x (i) ) y T (i) T (i) m i 1 g ( x ) 1 g ( x ) j 1 m (i ) 1 1 T (i) (1 y ( i ) ) g ( T x (i) ) 1 g ( T x (i) ) x y T (i) T (i) m i 1 g ( x ) 1 g ( x ) j
i 1
for 语句循环 m 次,所以根本没有完全的实现 vectorization,不像《机器学习实 战》的代码中一条语句就可以完成 的更新。 下面说明一下我理解《机器学习实战》中代码实现的 vectorization 过程。 约定训练数据的矩阵形式如下, x 的每一行为一条训练样本,而每一列为不同 的特称取值:
(5)
(6) 实际上这里的 Cost 函数和 J 函数是基于最大似然估计推导得到的。下面详 细说明推导的过程。(4)式综合起来可以写成:
P ( y | x; ) (h ( x)) y (1- h ( x))1- y
取似然函数为:
(7)
L( ) P ( y (i) | x (i) ; )
文献[3]中也提到了 vectorization,但是也是比较粗略,很简单的给出 vectorization 的结果为:
1 m : - h (x (i) ) y (i ) x (i) , ( j 0 n) m i 1
m
(17)
且不论该更新公式正确与否,这里的 是一个求和的过程,显然需要一个
g (z)
1 1 e z
(1)
对应的函数图像是一个取值在 0 和 1 之间的 S 型曲线(图 1)。
图1
接下来需要确定数据划分的边界类型,对于图 2 和图 3 中的两种数据分布, 显然图 2 需要一个线性的边界,而图 3 需要一个非线性的边界。接下来我们 只讨论线性边界的情况。
图2
图3
对于线性边界的情况,边界形式如下:
(12) 上式求解过程中用到如下的公式:
f x
1 1 e g (x)
(13)
1 f x e g (x) g x 2 x 1 e g (x) x 1 e g (x) g x 1 e g (x) 1 e g (x) x f x 1 f x g x x
Logistic 回归总结
作者:靠谱哥 微博:洞庭之子-Bing (2013 年 11 月) (本文为作者原创,转载请注明出处) 出处:/dongtingzhizi/article/details/15962797
1 引言
看了 Stanford 的 Andrew Ng 老师的机器学习公开课中关于 Logistic Regression 的 讲解,然后又看了《机器学习实战》中的 Logistic Regression 部分,写下此篇学 习笔记总结一下。 首先说一下我的感受,《机器学习实战》一书在介绍原理的同时将全部的算法 用源代码实现,非常具有操作性,可以加深对算法的理解,但是美中不足的是 在原理上介绍的比较粗略,很多细节没有具体介绍。所以,对于没有基础的朋 友(包括我)某些地方可能看的一头雾水,需要查阅相关资料进行了解。所以 说,该书还是比较适合有基础的朋友。 本文主要介绍以下三个方面的内容: (1) Logistic Regression 的基本原理,分布在第二章中; (2) Logistic Regression 的具体过程,包括:选取预测函数,求解 Cost 函数和
(18)
约定待求的参数 的矩阵形式为:
0 1 n
并记为 A : 先求 xA
(19)
(1) x0 (2) x A xA 0 (m) x0
x1(1) x1(2) x1(m)
(1) (1) (1) 0 0 x0 xn 1 x1(1) n xn (2) (2) (2) (2) xn x x x 1 1 1 n n A 0 0 (m) (m) (m) (m) xn x x x n 1 1 n n 0 0
i 1 m
(9)
最大似然估计就是要求得使 l ( ) 取最大值时的 ,其实这里可以使用梯度上升 法求解,求得的 就是要求的最佳参数。但是,在 Andrew
J ( ) 取为(6)式,即:
Ng 的课程中将
J ( ) -
1 l ( ) m
(10)
因为乘了一个负的系数 -
1 ,所以 J ( ) 取最小值时的 为要求的最佳参数。 m
i 1
m
(15)
另外,补充一下,3.2 节中提到求得 l ( ) 取最大值时的 也是一样的,用梯度上 升法求(9)式的最大值,可得:
j : j
( ) j
m
j y ( i ) h (x (i) ) x (i) j ,
i 1
( j 0 n) P ( y 0 | x; ) 1- h ( x)
(4)
3.2 构造 Cost 函数
Andrew Ng 在课程中直接给出了 Cost 函数及 J 函数如式(5)和(6),但
是并没有给出具体的解释,只是说明了这个函数来衡量 h 函数预测的好坏是合 理的。
(1) x (1) x0 (2) (2) x x0 x (m) (m) x x0 (1) x1(1) xn (2) x1(2) xn , (m) x1(m) xn
y (1) (2) y y (m) y
0 1 x1 n xn i xi T x
i 0
n
(2)
构造预测函数为:
h ( x) g ( T x)
1 1 e
- T x
(3)
h (x) 函数的值有特殊的含义,它表示结果取 1 的概率,因此对于输入 x 分
类结果为类别 1 和类别 0 的概率分别为:
书中说用梯度上升发,为何代码实现时没见到求梯度的代码呢?这些问 题在第三章和第四章中都会得到解答。 文中参考或引用内容的出处列在最后的“参考文献”中。文中所阐述的内容仅 仅是我个人的理解,如有错误或疏漏,欢迎大家批评指正。下面进入正题。
2 基本原理
Logistic Regression 和 Linear Regression 的原理是相似的,按照我自己的理解, 可以简单的描述为这样的过程: 1. 找一个合适的预测函数(Andrew Ng 的公开课中称为 hypothesis),一般表 示为 h 函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判 断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或 者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。 2. 构造一个 Cost 函数(损失函数),该函数表示预测的输出( h )与训练数 据类别( y )之间的偏差,可以是二者之间的差( h y )或者是其他的形 式。综合考虑所有训练数据的“损失”,将 Cost 求和或者求平均,记为
因此,(11)式的更新过程可以写成:
1 m j : j - h (x (i) ) y (i ) x (i) ( j 0 n) j , m i 1
因为式中 本来为一常量,所以一般将
(14)
1 省略,所以最终的 更新过程为: m
j : j - h (x (i) ) y (i ) x (i) ( j 0 n) j ,
3 具体过程
3.1 构造预测函数
Logistic Regression 虽然名字里带“回归”,但是它实际上是一种分类方法, 用于两分类问题(即输出只有两种)。根据第二章中的步骤,需要先找到一 个预测函数( h ),显然,该函数的输出必须是两个值(分别代表两个类别)
,所以利用了 Logistic 函数(或称为 Sigmoid 函数),函数形式为:
i 1 m
m
(8)
(i) (i)
(h ( x (i) )) y (1- h ( x (i) ))1- y
i 1
对数似然函数为:
l ( ) log L( ) y ( i ) log h ( x ( i ) ) 1- y ( i ) log(1- h ( x ( i ) ))
J 函数,表示所有训练数据预测值与实际类别的偏差。
3. 显然, J 函数的值越小表示预测函数越准确(即 h 函数越准确),所以 这一步需要做的是找到 J 函数的最小值。找函数的最小值有不同的方法, Logistic Regression 实现时有的是梯度下降法(Gradient Descent)。
(16)
观察上式发现跟(14)是一样的,所以,采用梯度上升发和梯度下降法是完全 一样的,这也是《机器学习实战》中采用梯度上升法的原因。
3.4 梯度下降过程向量化
关于 更新过程的 vectorization,Andrew Ng 的课程中只是一带而过,没有具体 的讲解。 《机器学习实战》连 Cost 函数及求梯度等都没有说明,所以更不可能说明 vectorization 了。但是,其中给出的实现代码确是实现了 vectorization 的,图 4 所示代码的 32 行中 weights(也就是 )的更新只用了一行代码,直接通过矩 阵或者向量计算更新,没有用 for 循环,说明确实实现了 vectorization,具体代 码下一章分析。