博舍

逻辑回归算法的原理及实现(LR) 人工智能逻辑回归算法原理是什么样的

逻辑回归算法的原理及实现(LR)

Logistic回归虽然名字叫”回归” ,但却是一种分类学习方法。使用场景大概有两个:第一用来预测,第二寻找因变量的影响因素。逻辑回归(LogisticRegression,LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的特征属性,例如性别,年龄,注册时间等设置为自变量。根据特征属性预测购买的概率。逻辑回归与回归分析有很多相似之处,在开始介绍逻辑回归之前我们先来看下回归分析。

回归分析用来描述自变量x和因变量Y之间的关系,或者说自变量X对因变量Y的影响程度,并对因变量Y进行预测。其中因变量是我们希望获得的结果,自变量是影响结果的潜在因素,自变量可以有一个,也可以有多个。一个自变量的叫做一元回归分析,超过一个自变量的叫做多元回归分析。

下面是一组广告费用和曝光次数的数据,费用和曝光次数一一对应。其中曝光次数是我们希望知道的结果,费用是影响曝光次数的因素,我们将费用设置为自变量X,将曝光次数设置为因变量Y,通过一元线性回归方程和判定系数可以发现费用(X)对曝光次数(Y)的影响。

以下为一元回归线性方式,其中y是因变量,X是自变量,我们只需求出截距b0和斜率b1就可以获得费用和曝光次数之间的关系,并对曝光次数进行预测。这里我们使用最小二乘法来计算截距b0和斜率b1。最小二乘法通过最小化误差的平方和寻找数据的最佳函数匹配。

下表中是使用最小二乘法计算回归方程的一些必要的计算过程。在表中最左侧的两列分别为自变量X和因变量Y,我们首先计算出自变量和因变量的均值,然后计算每一个观测值与均值的差,以及用于计算回归方程斜率b1所需的数据。

根据表中的数据按公式计算出了回归方程的斜率b1,计算过程如下。斜率表示了自变量和因变量间的关系,斜率为正表示自变量和因变量正相关,斜率为负表示自变量和因变量负相关,斜率为0表示自变量和因变量不相关。

求得斜率b1后,按下面的公式可以求出Y轴的截距b0。

将斜率b1和截距b0代入到回归方程中,通过这个方程我们可以获得自变量和因变量的关系,费用每增加1元,曝光次数会增长7437次。以下为回归方程和图示。

 

在回归方程的图示中,还有一个R^2,这个值叫做判定系数,用来衡量回归方程是否很好的拟合了样本的数据。判定系数在0-1之间,值越大说明拟合的越好,换句话说就是自变量对因变量的解释度越高。判定系数的计算公式为SST=SSR+SSE,其中SST是总平方和,SSR是回归平方和,SSE是误差平方和。下表为计算判定系数所需三个指标的一些必要的计算过程。

根据前面求得的回归平方和(SSR)和总平方和(SST)求得判定系数为0.94344。

以上为回归方程的计算过程,在根据费用预测曝光数量的场景下,我们可以通过回归方程在已知费用的情况下计算出曝光数量。逻辑回归与回归方程相比在线性回归的基础上增加了一个逻辑函数。例如通过用户的属性和特征来判断用户最终是否会进行购买。其中购买的概率是因变量Y,用户的属性和特征是自变量X。Y值越大说明用户购买的概率越大。这里我们使用事件发生的可能性(odds)来表示购买与未购买的比值。

使用E作为购买事件,P(E)是购买的概率,P(E’)是未购买的概率,Odds(E)是事件E(购买)发生的可能性。

Odds是一个从0到无穷的数字,Odds的值越大,表明事件发生的可能性越大。下面我们要将Odds转化为0-1之间的概率函数。首先对Odds取自然对数,得到logit方程,logit是一个范围在负无穷到正无穷的值。

基于上面的logit方程,获得以下公式:

其中使用π替换了公式中的P(E),π=P(E)。根据指数函数和对数规则获得以下公式:

并最终获得逻辑回归方程:

下面根据逻辑回归方程来计算用户购买的概率,下表是用户注册天数和是否购买的数据,其中注册天数是自变量X,是否购买是自变量Y。我们将购买标记为1,将未购买标记为0。

 

 

接下来我们将在Excel中通过8个步骤计算出逻辑回归方程的斜率和截距。并通过方程预测新用户是否会购买。

第一步,使用Excel的排序功能对原始数据按因变量Y进行排序,将已购买和未购买的数据分开,使得数据特征更加明显。第二步,按照Logit方程预设斜率b1和截距b0的值,这里我们将两个值都预设为0.1。后续再通过Excel求最优解。第三步,按照logit方程,使用之前预设的斜率和截距值计算出L值。

第四步,将L值取自然对数,第五步,计算P(X)的值,P(X)为事件发生的可能性(Odds)。具体的计算步骤和过程见下图。

第六步,计算每个值的对数似然函数估计值(Log-Likelihood)。方法和过程见下图。第七步,将对数似然函数值进行汇总。

第八步,使用Excel的规划求解功能,计算最大对数似然函数值。方法和过程见下图。设置汇总的对数似然函数值LL为最大化的目标,预设的斜率b1和截距b0是可变单元格,取消”使无约束变量为非负数”的选项。进行求解。

Excel将自动求出逻辑回归方程中斜率和截距的最优解,结果如下图所示。

求得逻辑回归方程的斜率和截距以后,我们可以将值代入方程,获得一个注册天数与购买概率的预测模型,通过这个模型我们可以对不同注册天数(X)用户的购买概率(Y)进行预测。以下为计算过程。

第一步,输入自变量注册天数(X)的值,这里我们输入50天。第二步,将输入的X值,以及斜率和截距套入Logit方程,求出L值。第三步,对L值取自然对数。第四步,求时间发生可能性P(X)的概率值。

注册天数为50天的用户购买的概率约为17.60%。

我们将所有注册天数的值代入到购买概率预测模型中,获得了一条注册天数对购买概率影响的曲线。从曲线中可以发现,注册天数在较低和较高天数的用户购买概率较为平稳。中间天数用户的购买概率变化较大。

我们继续在上面的计算结果中增加新的自变量“年龄”。以下是原始数据的截图。现在有年龄和注册天数两个自变量和一个因变量。

依照前面的方法计算斜率和截距的最优解,并获得逻辑回归方程,将不同的年龄和注册天数代入到方程中,获得了用户年龄和注册天数对购买的预测模型。我们通过Excel的三维图表来绘制年龄和注册天数对购买概率的影响。

从图中可以看出,购买概率随着注册天数的增加而增长,并且在相同的注册天数下,年龄较小的用户购买概率相对较高。

转载于: http://bluewhale.cc/2016-05-18/logistic-regression.html#ixzz4RbUh8R3T

一从线性回归到Logistic回归

线性回归和Logistic回归都是广义线性模型的特例。

假设有一个因变量y和一组自变量x1,x2,x3,...,xn,其中y为连续变量,我们可以拟合一个线性方程:

y=β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

并通过最小二乘法估计各个β系数的值。

如果y为二分类变量,只能取值0或1,那么线性回归方程就会遇到困难: 方程右侧是一个连续的值,取值为负无穷到正无穷,而左侧只能取值[0,1],无法对应。为了继续使用线性回归的思想,统计学家想到了一个变换方法,就是将方程右边的取值变换为[0,1]。最后选中了Logistic函数:

y=1/(1+e-x)

这是一个S型函数,值域为(0,1),能将任何数值映射到(0,1),且具有无限阶可导等优良数学性质。

我们将线性回归方程改写为:

y=1/(1+e-z),

其中,z=β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

此时方程两边的取值都在0和1之间。

进一步数学变换,可以写为:

Ln(y/(1-y))=β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn

Ln(y/(1-y))称为Logit变换。我们再将y视为y取值为1的概率p(y=1),因此,1-y就是y取值为0的概率p(y=0),所以上式改写为:

p(y=1)=ez/(1+ez),

p(y=0)=1/(1+ez),

其中,z=β0 +β1*x1 +β2*x2 +β3*x3 +...+βn*xn.

接下来就可以使用”最大似然法”估计出各个系数β。

 

二 odds与OR复习

      odds: 称为几率、比值、比数,是指某事件发生的可能性(概率)与不发生的可能性(概率)之比。用p表示事件发生的概率,则:odds=p/(1-p)。

      OR:比值比,为实验组的事件发生几率(odds1)/对照组的事件发生几率(odds2)。 

 

三 Logistic回归结果的解读

      我们用一个例子来说明,这个例子中包含200名学生数据,包括1个自变量和4个自变量:

      因变量: hon,表示学生是否在荣誉班(honorsclass),1表示是,0表示否;

      自变量:

      female :性别,分类变量,1=女,0=男

      read: 阅读成绩,为连续变量

      write: 写作成绩,为连续变量

      math:数学成绩,为连续变量 

 

      1、不包含任何变量的Logistic回归

      首先拟合一个不包含任何变量的Logistic回归,

      模型为 ln(p/(1-p)=β0

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

截距

-1.12546

0.164

0.000

      这里的系数β就是模型中的β0 =-1.12546,

      我们用p表示学生在荣誉班的概率,所以有ln(p/(1-p)=β0 =-1.12546,

      解方程得:p=0.245。

      odds=p/1-p=0.3245

      这里的p是什么意思呢?p就是所有数据中hon=1的概率。

      我们来统计一下整个hon的数据:

hon

例数

百分比

0

151

75.5%

1

49

24.5%

      hon取值为1的概率p为49/(151+49)=24.5%=0.245,我们可以手动计算出ln(p/(1-p)=-1.12546,等于系数β0。可以得出关系:

      β0=ln(odds)。

 

      2、包含一个二分类因变量的模型

      拟合一个包含二分类因变量female的Logistic回归,

      模型为 ln(p/(1-p) =β0 +β1* female.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

female

0.593

.3414294

0.083

截距

-1.47

.2689555

0.000

      在解读这个结果之前,先看一下hon和female的交叉表:

hon

female

Total

Male

Female

0

74

77

151

1

17

32

49

Total

91

109

 

根据这个交叉表,对于男性(Male),其处在荣誉班级的概率为17/91,处在非荣誉班级的概率为74/91,所以其处在荣誉班级的几率odds1=(17/91)/(74/91)=17/74=0.23;相应的,女性处于荣誉班级的几率odds2=(32/109)/(77/109)=32/77=0.42。女性对男性的几率之比OR=odds2/odds1=0.42/0.23=1.809。我们可以说,女性比男性在荣誉班的几率高80.9%。

回到Logistic回归结果。截距的系数-1.47是男性odds的对数(因为男性用female=0表示,是对照组),ln(0.23)=-1.47。变量female的系数为0.593,是女性对男性的OR值的对数,ln(1.809)=0.593。所以我们可以得出关系:OR=exp(β),或者β=ln(OR)(exp(x)函数为指数函数,代表e的x次方)。 

      3、包含一个连续变量的模型

      拟合一个包含连续变量math的Logistic回归,

      模型为 ln(p/(1-p) =β0 +β1* math.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

math

.1563404

.0256095

0.000

截距

-9.793942

1.481745

0.000

      这里截距系数的含义是在荣誉班中math成绩为0的odds的对数。我们计算出odds=exp(-9.793942)=.00005579,是非常小的。因为在我们的数据中,没有math成绩为0的学生,所以这是一个外推出来的假想值。

      怎么解释math的系数呢?根据拟合的模型,有:

      ln(p/(1-p))= -9.793942  +.1563404*math

      我们先假设math=54,有:

      ln(p/(1-p))(math=54)=-9.793942+.1563404*54

      然后我们把math提高提高一个单位,令math=55,有:

      ln(p/(1-p))(math=55)=-9.793942+.1563404*55

      两者之差:

      ln(p/(1-p))(math=55)-ln(p/1-p))(math=54)=0.1563404.

      正好是变量math的系数。

      由此我们可以说,math每提高1个单位,odds(即p/(1-p),也即处于荣誉班的几率)的对数增加0.1563404。

      那么odds增加多少呢?根据对数公式:

      ln(p/(1-p))(math=55)-ln(p/1-p))(math=54)=ln((p/(1-p)(math=55)/(p/(1-p)(math=54)))=ln(odds(math=55)/odds(math=54))=0.1563404.

      所以:

      odds(math=55)/odds(math=54) = exp(0.1563404)=1.169.

      因此我们可以说,math每升高一个单位,odds增加16.9%。且与math的所处的绝对值无关。

      聪明的读者肯定发现,odds(math=55)/odds(math=54)不就是OR嘛!

      4、包含多个变量的模型(无交互效应)

      拟合一个包含female、math、read的Logistic回归,

      模型为 ln(p/(1-p)= β0 +β1* math+β2* female+β3* read.

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

math

.1229589

0.000

female

0.979948

0.020

read

.0590632

0.026

截距

-11.77025

0.000

      该结果说明:

     (1) 性别:在math和read成绩都相同的条件下,女性(female=1)进入荣誉班的几率(odds)是男性(female=0)的exp(0.979948)=2.66倍,或者说,女性的几率比男性高166%。

     (2) math成绩:在female和read都相同的条件下,math成绩每提高1,进入荣誉班的几率提高13%(因为exp(0.1229589)=1.13)。

     (3)read的解读类似math。

 

      5、包含交互相应的模型

      拟合一个包含female、math和两者交互相应的Logistic回归,

      模型为 ln(p/(1-p) =β0 +β1* female+β2* math+β3* female*math.

      所谓交互效应,是指一个变量对结果的影响因另一个变量取值的不同而不同。

      回归结果如下(结果经过编辑):

hon

系数β

标准误

P

female

-2.899863

0.349

math

.1293781

0.000

female*math

.0669951

0.210

截距

-8.745841

0.000

      注意:female*math项的P为0.21,可以认为没有交互相应。但这里我们为了讲解交互效应,暂时忽略P值,姑且认为他们是存在交互效应的。

      由于交互效应的存在,我们就不能说在保持math和female*math不变的情况下,female的影响如何如何,因为math和female*math是不可能保持不变的!

      对于这种简单的情况,我们可以分别拟合两个方程,

      对于男性(female=0):

      log(p/(1-p))= β0 + β2*math.

      对于女性(female=1):

      log(p/(1-p))=(β0 + β1)+(β2 + β3 )*math.

      然后分别解释。

分类变量(哑变量)的处理及解读

一、哑变量的设置方法

Logistic回归中分类变量需要使用哑变量(也叫虚拟变量)来操作。一般的,n个分类需要设置n-1个哑变量(为什么不是n个?请继续看)。举个例子,有一个“年龄”变量,分为:青年,中年,老年三类,那么我们可以用两个哑变量来代替: 年龄 变量1变量2  青年10  中年0 1 老年00变量1=1代表青年,0代表非青年变量2=1代表中年,0代表非中年变量1和变量2都等于0代表老年所以用2个变量就可以表示3个类别。 二、分类变量在SPSS中的操作及结果解读 SPSS中能自动设置哑变量,只需要把变量标记为分类变量即可。 假设我们要分析年龄和病程对某种疾病预后的影响,采用Logistic回归分析。变量赋值如下(数据均为人造,非真实数据):预后:因变量,为二分类变量,0=预后差,1=预后好年龄:自变量,为多分类变量,1=青年,2=中年,3=老年病程:自变量,为连续变量 (1)首先将年龄设置为分类变量,对比方式默认为“指示符”,参考类别默认为“最后一个”(后面解释为什么)。见下图。

 (2)结果输出,有两个主要的表格。 

这是分类变量的编码表格,可以看出,年龄被替换为两个新的变量:年龄(1)和年龄(2)。年龄(1)代表青年人,年龄(2)代表中年人,他们的取值都为0表示老年人,作为青年和中年的参考对象。

 这是回归表格,出现了年龄(1)和年龄(2)两个新的变量。可以看出年龄(1)的P为0.000,有统计学意义,年龄(2)的P为0.135,没有统计学意义。 两者不一致,怎么解释? 因为年龄(1)和(2)都是以老年人来作为参照的,所以可以解释为:(1)青年人相对于老年人,预后更好(2)中年人相对于老年人,预后没有统计学差异(3)青年人比中年人看起来预后好,但需要进一步假设检验。 三、参照方式的选择 分类变量都需要一个参考对象,也就是说跟谁比。SPSS中提供了多种对比方式,如指示符,简单,差值等等,如下图: 其中默认的“指示符”使用最多,这里仅介绍这一个。 “指示符”表示将每一个类别与参考类别对比。那么哪一个是参考类别呢?SPSS有两个选项:“最后一个”与“第一个”。这里的“最后一个”和“第一个”顺序与上文“分类变量编码表”中的顺序是一样的。如果设置为最后一个,就是以老年为参考类别,如果设置为第一个,就是以青年为参考类别。具体使用哪一个,需要根据分析目的来确定。

 来源于:http://blog.sina.com.cn/wjyhumor

人工智能领域的10大算法

       本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在学习摘录和笔记专栏:

        学习摘录和笔记(12)---《人工智能领域的10大算法》

人工智能领域的10大算法

原文/论文出处:

题目:《人工智能领域的10大算法》

作者:AI智胜未来

时间:2022-09-26

来源:AI智胜未来

1 线性回归

        线性回归(LinearRegression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。

2逻辑回归

        逻辑回归(Logisticregression)与线性回归类似,但逻辑回归的结果只能有两个的值。如果说线性回归是在预测一个开放的数值,那逻辑回归更像是做一道是或不是的判断题。逻辑函数中Y值的范围从0到1,是一个概率值。逻辑函数通常呈S型,曲线把图表分成两块区域,因此适合用于分类任务。

3决策树   

        如果说线性和逻辑回归都是把任务在一个回合内结束,那么决策树(DecisionTrees)就是一个多步走的动作,它同样用于回归和分类任务中,不过场景通常更复杂且具体。

4朴素贝叶斯

        朴素贝叶斯(NaiveBayes)是基于贝叶斯定理,即两个条件关系之间。它测量每个类的概率,每个类的条件概率给出x的值。这个算法用于分类问题,得到一个二进制“是/非”的结果。

5 支持向量机

        支持向量机(SupportVectorMachine,SVM)是一种用于分类问题的监督算法。支持向量机试图在数据点之间绘制两条线,它们之间的边距最大。为此,我们将数据项绘制为n维空间中的点,其中,n是输入特征的数量。在此基础上,支持向量机找到一个最优边界,称为超平面(Hyperplane),它通过类标签将可能的输出进行最佳分离。

6 K-最近邻算法

        K-最近邻算法(K-NearestNeighbors,KNN)非常简单。KNN通过在整个训练集中搜索K个最相似的实例,即K个邻居,并为所有这些K个实例分配一个公共输出变量,来对对象进行分类。

        K的选择很关键:较小的值可能会得到大量的噪声和不准确的结果,而较大的值是不可行的。它最常用于分类,但也适用于回归问题。

7 K-均值

        K-均值(K-means)是通过对数据集进行分类来聚类的。例如,这个算法可用于根据购买历史将用户分组。它在数据集中找到K个聚类。K-均值用于无监督学习,因此,我们只需使用训练数据X,以及我们想要识别的聚类数量K。

8随机森林

        随机森林(RandomForest)是一种非常流行的集成机器学习算法。这个算法的基本思想是,许多人的意见要比个人的意见更准确。在随机森林中,使用决策树集成(参见决策树)。

(a)在训练过程中,每个决策树都是基于训练集的引导样本来构建的。

(b)在分类过程中,输入实例的决定是根据多数投票做出的。

        随机森林拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源、保留及流失,也可以用来预测疾病的风险和病患者的易感性。

9 降维

        降维(Dimensionalityreduction)试图在不丢失最重要信息的情况下,通过将特定的特征组合成更高层次的特征来解决这个问题。主成分分析(PrincipalComponentAnalysis,PCA)是最流行的降维技术。

10人工神经网络

        人工神经网络(ArtificialNeuralNetworks,ANN)可以处理大型复杂的机器学习任务。神经网络本质上是一组带有权值的边和节点组成的相互连接的层,称为神经元。

   文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者关注VX公众号:Rain21321,联系作者。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇