Logistic Regression 正则

逻辑回归阶段概述 一、逻辑回归 1、逻辑回归解决的是二分类问题 2、逻辑回归的输入就是线性回归的输出 3、激活函数:sigmoid函数 回归的结果输入到sigmoid函数当中,输出结果:[0, 1]区间中的一个概率值,默认为0.5为阈值 阈值意义(默认阈值为0.5):因为逻辑回归解决的是二分类的问题,假如分成A和B两个类,如果一个样本的逻辑回归输出为0.6,0.6大于0.5的阈值所以它就是A类别的,所以只要样本的逻辑回归输出大于0.5那么就是A类别,如果样本的逻辑回归输出小于0.5那么就是B类别 阅读详情


出处:https://chenrudan.github.io/blog/2016/01/09/logisticregression.html

本文是受rickjin老师的启发,谈谈关于logistic regression的一些内容,虽然已经有珠玉在前,但还是做一下自己的总结。在查找资料的过程中,越看越觉得lr实在是博大精深,囊括的内容太多太多了,本文只能浅显的提到某些方面。文章的内容如下:

1. 起源

logistic regression的起源主要分为几个阶段,从开始想到logistic这个词,到发现logistic function,再推导出logit function,最后才命名logistic regression。这些过程都是大量的研究者们共同努力发现的,只是在历史的长河中,很多人被渐渐遗忘了。

logistic起源于对人口数量增长情况的研究,最重要的工作是Pierre François Verhulst在1838年提出了对人口增长的公式描述(这人是个比利时人,写的文章是法语的,一个字都看不懂,下面的内容都是看了一篇将研究人口数量增长发展历程的书[1]才知道的…),他博士毕业于根特大学的数学系,是个数学教授和人口学家。在1835年Verhulst的同乡人Adolphe Quetelet发表了一篇关于讨论人口增长的文章,文中认为人口不可能一直是几何(指数)增长,而会被与增长速度平方成比例的一种阻力而影响,但是这篇论文只有猜想没有数学理论基础,却极大的启发了Verhulst。因此在1838年Verhulst发表了关于人口数量增长的论文,就是在这篇论文里面他推导出了logistic equation,文章中谈到一个重要观点,随着时间的增加,一个国家的大小(我理解为资源)和这个国家人们的生育能力限制了人口的增长,人口数量会渐渐趋近一个稳定值。厉害的是他将这个过程用公式给描述出来了,他从人口数量增长的速度公式入手,即人口数量 P(t) P(t)对时间t的导数:

∂P∂t=rP(1−PK) ∂P∂t=rP(1−PK)

其中 K K就是他认为人口数量稳定的值,当 P(t) P(t)远小于 K K时,求导公式后一项约等于0,那么就变成了 ∂P∂t≃rP ∂P∂t≃rP,这个阶段人口增长速度与人口数量和一个常数的乘积成正比,并且在渐渐变大。然后对这个式子求解一阶线性微分方程得到 P(t)≃P(0)ert P(t)≃P(0)ert。当 P(t) P(t)接近 K K时,人口增长速度开始渐渐变小,同样求解二阶微分方程(论文中是将二阶转化成一阶求解),然后将二者整合在一起得到最初的形式。

P(t)=P(0)ert1+P(0)(ert−1)/K P(t)=P(0)ert1+P(0)(ert−1)/K

他将法国英国等过十几年的人口实际数据拿来跟这个公式对比之后发现确实拟合的很不错。但他当时并没有那么多年的数据,下图1是在他过世以后人们总结的300年来的人口增长分布,可以看到非常漂亮的拟合了logisitc分布的累积分布函数走势。但是当时这个公式并没有名字,直到1845年他发表了另外一篇重要文章[2],他给这个公式起了一个名字——“logistic”,此外在这篇文章中,他发现在$P(t)K/2 时 时P(t)$呈凹增长(通过求二阶导来分析,这里略)。这个增长的趋势类似logistic分布的概率密度函数。

1

图1 比利时的人口增长数量图(图来源[2])

然而在后来的几十年内人们都没有意识到这个工作的重要性,很多人都独立的研究出了这个增长现象,直到1922年一个叫做Raymond Pearl的人口学家注意到Verhulst在1838年就已经提出了这个现象和公式,并在他的文章中也使用了logistic function来称呼它,并且沿用至今。在1920年Pearl[3]在研究美国人口增长规律时提出了另外一种表示logistic function的方法。

y=beax1+ceax y=beax1+ceax

基于这个表达式,Joseph Berkson在1944年提出了logit function, logit=In(1−QQ) logit=In(1−QQ),假如 Q=11+ea−bx Q=11+ea−bx,结果就是 logit=a−bx logit=a−bx。

后来,在1958年David Cox提出了logistic regression[4]。他的文章是为了解决这样一个问题,有一组取值为0,1的观测值,它们的取值 Yi Yi依赖于一些独立变量 xi xi, 当 Yi=1 Yi=1时对应的概率为 θi=pr(Yi=1) θi=pr(Yi=1)。由于 θi θi限制在[0,1]之间,因此假设 θi θi与 xi xi的关系符合logit function,即 logitθi≡logθi1−θi=α+βxi logitθi≡logθi1−θi=α+βxi,文章主要在分析如何求解里面的参数 β β,这里就不提了。由于用到了logistic function,而这个问题本身又个回归问题(建立观测值与独立变量之间的关系),因而它被称呼为logistic regression。

貌似Cox在这篇文章中并不是刻意提出logistic regression,但确实这个词第一次出现就是在这篇文章中,虽然Cox之前已经有很多人做过这方面的研究了,但是他们没给个名字,因此Cox成了提出logistic regression的人。这个故事告诉我们一个道理,无论是发文章还是写软件一定要取一个言简意赅又好听又好记的名字…

以上是逻辑回归的历史发展中比较有代表性的几件事(我认为的…还有好多论文没时间细看…),J.S Cramer[5]在他的文章中有更加详细的讨论。它是由数学家对人口发展规律研究得出,后来又被应用到了微生物生长情况的研究,后来又被应用解决经济学相关问题,直到发展到今天作为一个非常重要的算法而存在于各行各业。逻辑回归作为Regression Analysis的一个分支,它实际上还受到很多Regression Analysis相关技术的启发,例如Berkson就是基于probit function提出的logit function。光它的起源到应用就能写一本书出来了,难怪rickjin老师说lr其实非常非常复杂…

2.模型介绍与公式推导

上面说过了逻辑斯蒂回归的起源,下面讨论一下完整的模型,首先介绍一下何为逻辑斯蒂分布,再由逻辑斯蒂分布推出逻辑回归。

2.1 Logistic Distribution

随机变量X服从逻辑斯蒂分布,即X的累积分布函数为上文提到过的logistic function。对分布函数求导得到了概率密度函数。公式如下,参数影响参考图2(图来自维基百科,它的参数s就是统计学习方法上的 γ γ)

F(x)=P(X⩽x)=11+e−(x−μ)/γ F(x)=P(X⩽x)=11+e−(x−μ)/γ

f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2 f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2

1

图2 不同参数对logistic分布的影响(图片来源维基百科)

可以看到 μ μ影响的是中心对称点的位置, γ γ越小中心点附近增长的速度越快。而常常在深度学习中用到的非线性变换sigmoid函数是逻辑斯蒂分布的 γ=1,μ=0 γ=1,μ=0的特殊形式。

2.2 Binomial logistic regression model

1

图3 数据示例

逻辑回归是为了解决分类问题,根据一些已知的训练集训练好模型,再对新的数据进行预测属于哪个类。如图3所示,有一些属于两个类的数据,目标是判断圆圈属于哪一类。也就是说逻辑回归的目标是找到一个有足够好区分度的决策边界,从而能够将两类很好的分开。假设已经存在这样一个边界,针对于图中这种线性可分的情况,这条边界是
输入特征向量的线性组合,假设输入的特征向量为 x∈Rn x∈Rn(图中输入向量为二维), Y Y取值为0,1。那么决策边界可以表示为 w1x1+w2x2+b=0 w1x1+w2x2+b=0,假如存在一个例子使得 hw(x)=w1x1+w2x2+b>0 hw(x)=w1x1+w2x2+b>0,那么可以判断它类别为1,这个过程实际上是感知机,即只通过决策函数的符号来判断属于哪一类。而逻辑回归需要再进一步,它要找到分类概率 P(Y=1) P(Y=1)与输入向量 x x的直接关系,然后通过比较概率值来判断类别,而刚好上文中的logit function能满足这样的要求,它令决策函数的输出值 wTx+b wTx+b等于概率值比值取对数 logP(Y=1|x)1−P(Y=1|x) logP(Y=1|x)1−P(Y=1|x),求解这个式子得到了输入向量 x x下导致产生两类的概率为:

P(Y=1|x)=ew⋅x+b1+ew⋅x+b(1) P(Y=1|x)=ew⋅x+b1+ew⋅x+b(1)

P(Y=0|x)=11+ew⋅x+b(2) P(Y=0|x)=11+ew⋅x+b(2)

其中 w w称为权重, b b称为偏置,其中的 w⋅x+b w⋅x+b看成对 x x的线性函数。然后对比上面两个概率值,概率值大的就是x对应的类。有时候为了书写方便,会将 b b写入 w w,即 w=(w0,w1,…,wn) w=(w0,w1,…,wn)其中 w0=b w0=b,并取 x0=1 x0=1。又已知一个事件发生的几率odds是指该事件发生与不发生的概率比值,二分类情况下即 P(Y=1|x)P(Y=0|x)=P(Y=1|x)1−P(Y=1|x) P(Y=1|x)P(Y=0|x)=P(Y=1|x)1−P(Y=1|x)。取odds的对数就是上面提到的logit function, logit(P(Y=1|x))=logP(Y=1|x)1−P(Y=1|x)=w⋅x logit(P(Y=1|x))=logP(Y=1|x)1−P(Y=1|x)=w⋅x。从而可以得到一种对逻辑回归的定义,输出 Y=1 Y=1的对数几率是由输入 x x的线性函数表示的模型,即逻辑斯蒂回归模型(李航.《统计机器学习》)。而直接考察公式1可以得到另一种对逻辑回归的定义,线性函数的值越接近正无穷,概率值就越接近1;线性值越接近负无穷,概率值越接近0,这样的模型是逻辑斯蒂回归模型(李航.《统计机器学习》)。因此逻辑回归的思路是,先拟合决策边界(这里的决策边界不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。这里有个非常棒的博文[6]推荐,阐述了逻辑回归的思路。

在推导多分类的问题时,是假设 wT1x+b1=P(Y=1|x)P(Y=K|x) w1Tx+b1=P(Y=1|x)P(Y=K|x)、 wT2x+b2=P(Y=2|x)P(Y=K|x) w2Tx+b2=P(Y=2|x)P(Y=K|x)…等,再推导出 P(Y=K|x)=11+∑K−1k=1ewTkx P(Y=K|x)=11+∑k=1K−1ewkTx、 P(Y=1|x)=ewT1x1+∑K−1k=1ewTkx P(Y=1|x)=ew1Tx1+∑k=1K−1ewkTx等。

有了上面的分类概率,就可以建立似然函数,通过极大似然估计法来确定模型的参数。设 P(Y=1|x)=hw(x) P(Y=1|x)=hw(x),似然函数为 ∏[hw(xi)]yi[1−hw(xi)](1−yi) ∏[hw(xi)]yi[1−hw(xi)](1−yi),对数似然函数为

L(w)=∑i=1NlogP(yi|xi;w)=∑i=1N[yiloghw(xi)+(1−yi)log(1−hw(xi))](3) L(w)=∑i=1NlogP(yi|xi;w)=∑i=1N[yiloghw(xi)+(1−yi)log(1−hw(xi))](3)

3.解法

优化逻辑回归的方法有非常多[7],有python的不同实现[8],这里只谈谈梯度下降,牛顿法和BFGS。优化的主要目标是找到一个方向,参数朝这个方向移动之后使得似然函数的值能够减小,这个方向往往由一阶偏导或者二阶偏导各种组合求得。逻辑回归的损失函数是

minJ(w)=min−1m[∑i=1myiloghw(xi)+(1−yi)log(1−hw(xi))](4) minJ(w)=min−1m[∑i=1myiloghw(xi)+(1−yi)log(1−hw(xi))](4)

先把 J(w) J(w)对 wj wj的一阶二阶偏导求出来,且分别用 g g和 H H表示。 g g是梯度向量, H H是海森矩阵。这里只考虑一个实例 yi yi产生的似然函数对一个参数 wj wj的偏导。

gj=∂J(w)∂wj=y(i)hw(x(i))hw(x(i))(1−hw(x(i)))(−x(i)j)+(1−y(i))11−hw(x(i))hw(x(i))(1−hw(x(i)))x(i)j=(y(i)−hw(x(i)))x(i)(5) gj=∂J(w)∂wj=y(i)hw(x(i))hw(x(i))(1−hw(x(i)))(−xj(i))+(1−y(i))11−hw(x(i))hw(x(i))(1−hw(x(i)))xj(i)=(y(i)−hw(x(i)))x(i)(5)

Hmn=∂2J(w)∂wm∂wn=hw(x(i))(1−hw(x(i)))x(i)mx(i)n(6) Hmn=∂2J(w)∂wm∂wn=hw(x(i))(1−hw(x(i)))xm(i)xn(i)(6)

这几种方法一般都是采用迭代的方式来逐步逼近极小值,需要给定参数 w0 w0作为起点,并且需要一个阈值 ϵ ϵ来判断迭代何时停止。

3.1 梯度下降法

梯度下降是通过 J(w) J(w)对 w w的一阶导数来找下降方向,并且以迭代的方式来更新参数,更新方式为 wk+1j=wkj+αgj wjk+1=wjk+αgj, k k为迭代次数。每次更新参数后,可以通过比较 ||J(wk+1)−J(wk)|| ||J(wk+1)−J(wk)||或者 ||wk+1−wk|| ||wk+1−wk||与某个阈值 ϵ ϵ大小的方式来停止迭代,即比阈值小就停止。

3.2 牛顿法

牛顿法的基本思路是,在现有极小点估计值的附近对f(x)做二阶泰勒展开,进而找到极小点的下一个估计值[9]。假设 wk wk为当前的极小值估计值,那么有

φ(w)=J(wk)+J′(wk)(w−wk)+12J′′(wk)(w−wk)2(7) φ(w)=J(wk)+J′(wk)(w−wk)+12J″(wk)(w−wk)2(7)

然后令 φ′(w)=0 φ′(w)=0,得到了 w=wk−J′(wk)J′′(wk) w=wk−J′(wk)J″(wk)。因此有迭代更新式,

wk+1=wk−J′(wk)J′′(wk)=wk−H−1k⋅gk(8) wk+1=wk−J′(wk)J″(wk)=wk−Hk−1⋅gk(8)

此方法中也需要一个阈值 ϵ ϵ,当 ||gk||<epsilon ||gk||<epsilon时停止迭代。此外,这个方法需要目标函数是二阶连续可微的,本文中的 J(w) J(w)是符合要求的。

3.3 BFGS

由于牛顿法中需要求解二阶偏导,这个计算量会比较大,而且有时目标函数求出的海森矩阵无法保持正定,因此提出了拟牛顿法。拟牛顿法是一些算法的总称,它们的目标是通过某种方式来近似表示森海矩阵(或者它的逆矩阵)。例如BFGS就是一种拟牛顿法,它是由四个发明人的首字母组合命名,是求解无约束非线性优化问题最常用的方法之一。目标是用迭代的方式逼近海森矩阵 H H,假设这个逼近值为 Bk≈Hk Bk≈Hk,那么希望通过计算 Bk+1=Bk+ΔBk Bk+1=Bk+ΔBk能够达到目的。并且假设 ΔBk=αuuT+βvvT ΔBk=αuuT+βvvT,而由3.2可知, Δw=wk+1−wk=(H−1)k+1(gk+1−gk)=(H−1)kΔg Δw=wk+1−wk=(H−1)k+1(gk+1−gk)=(H−1)kΔg,将 Bk+1 Bk+1的更新式代入,可以得到

Δg=BkΔg+(αuTΔw)u+(βvTΔw)v(9) Δg=BkΔg+(αuTΔw)u+(βvTΔw)v(9)

此处,直接令 αuTΔw=1 αuTΔw=1、 βvTΔw=−1 βvTΔw=−1、 u=Δg u=Δg和 v=BkΔw v=BkΔw,那么可以求得 α=1(Δg)TΔw α=1(Δg)TΔw和 β=−1(Δw)TBkΔw β=−1(Δw)TBkΔw。从而再代入求 ΔBk ΔBk的式子就可以得到更新的式子

ΔBk=Δg(Δg)T(Δg)TΔw−BkΔw(Δw)TBk(Δw)TBkΔw(10) ΔBk=Δg(Δg)T(Δg)TΔw−BkΔw(Δw)TBk(Δw)TBkΔw(10)

这里还会对(10)进行变换,通过Sherman-Morrison公式直接求出 (B−1)k+1 (B−1)k+1与 (B−1)k (B−1)k,用 Dk+1 Dk+1和 Dk Dk来表。更新公式变成了

Dk+1=(I−Δw(Δg)T(Δg)TΔw)Dk(I−Δg(Δw)T(Δg)TΔw)+Δw(Δw)T(Δg)TΔw(11) Dk+1=(I−Δw(Δg)T(Δg)TΔw)Dk(I−Δg(Δw)T(Δg)TΔw)+Δw(Δw)T(Δg)TΔw(11)

用BFGS来更新参数的流程如下:

  1. 确定改变量, (Δw)k=−Dk⋅gk (Δw)k=−Dk⋅gk
  2. 更新参数, wk+1=wk+λ(Δw)k wk+1=wk+λ(Δw)k
  3. 求出 Δg=gk+1−gk Δg=gk+1−gk
  4. 由(11)求出 Dk+1 Dk+1

式子的系数 λ=argminJ(wk+λ(Δw)k) λ=argminJ(wk+λ(Δw)k),即在求得下降方向上来从很多值中搜索最优的下降大小,这里我觉得可以用学习率替代。因此,这个更新方法跟牛顿法的区别是,它是在更新参数 w w之后更新一下近似森海矩阵的值,而牛顿法是在更新 w w之前完全的计算一遍森海矩阵。还有一种从计算上改进BFGS的方法称为L-BFGS,不直接存储森海矩阵,而是通过存储计算过程中产生的部分 Δw(g)k−m+1,k−m+2,…,k Δw(g)k−m+1,k−m+2,…,k,从而减少了参数存储所需空间。

4.正则化

正则化不是只有逻辑回归存在,它是一个通用的算法和思想,所以会产生过拟合现象的算法都可以使用正则化来避免过拟合,在谈正则化之前先聊聊什么是过拟合。

4.1 过拟合

之前的模型介绍和算法求解可以通过训练数据集(图2中的三角形和星形)将分类模型训练好,从而可以预测一个新数据(例如图2中的粉色圆圈)的分类,这种对新数据进行预测的能力称为泛化能力。而对新数据预测的结果不好就是泛化能力差,一般来说泛化能力差都是由于发生了过拟合现象。过拟合现象是指对训练数据预测很好但是对未知数据预测不行的现象,通常都是因为模型过于复杂,或者训练数据太少。即当 complexityofthemodeltrainingsetsize complexityofthemodeltrainingsetsize比值太大的情况下会发生过拟合。模型复杂体现在两个方面,一是参数过多,二是参数值过大。参数值过大会导致导数非常大,那么拟合的函数波动就会非常大,即下图所示,从左到右分别是欠拟合、拟合和过拟合。

1

图4 同样数据下欠拟合,拟合和过拟合(图片来源[12])

在模型过于复杂的情况下,模型会学习到很多特征,从而导致可能把所有训练样本都拟合到,就像上图中一样,拟合的曲线将每一个点都正确的分类了。举个例子,假如要预测一个房子是贵还是便宜,房子的面积和所属的地区是有用的特征,但假如训练集中刚好所有贵的房子都是开发商A开发,便宜的都是开发商B开发,那么当模型变复杂能学习到的特征变多之后,房子是哪个开发商的会被模型认为是个有用特征,但是实际上这点不能成为判断的标准,这个现象就是过拟合。因此在这个例子中可以看到,解决的方法有两个,一个是减少学习的特征不让模型学到开发商的特征,一是增加训练集,让训练集有贵房子是B开发的样本。

从而,解决过拟合可以从两个方面入手,一是减少模型复杂度,一是增加训练集个数。而正则化就是减少模型复杂度的一个方法。

4.2 正则化的两种方法

由于模型的参数个数一般是由人为指定和调节的,所以正则化常常是用来限制模型参数值不要过大,也被称为惩罚项。一般是在目标函数(经验风险)中加上一个正则化项 Φ(w) Φ(w)即

J(w)=−1m[∑i=1myiloghw(xi)+(1−yi)log(1−hw(xi))]+λΦ(w)(12) J(w)=−1m[∑i=1myiloghw(xi)+(1−yi)log(1−hw(xi))]+λΦ(w)(12)

而这个正则化项一般会采用L1范数或者L2范数。其形式分别为 Φ(w)=||x||1 Φ(w)=||x||1和 Φ(w)=||x||2 Φ(w)=||x||2。

首先针对L1范数 ϕ(w)=|w| ϕ(w)=|w|,当采用梯度下降方式来优化目标函数时,对目标函数进行求导,正则化项导致的梯度变化当 wj>0 wj>0是取1,当 wj<0 wj<0时取-1.

从而导致的参数 wj wj减去了学习率与(13)式的乘积,因此当 wj wj大于0的时候, wj wj会减去一个正数,导致 wj wj减小,而当 wj wj小于0的时候, wj wj会减去一个负数,导致 wj wj又变大,因此这个正则项会导致参数 wj wj取值趋近于0,也就是为什么L1正则能够使权重稀疏,这样参数值就受到控制会趋近于0。L1正则还被称为 Lasso regularization。

然后针对L2范数 ϕ(w)=∑nj=1w2j ϕ(w)=∑j=1nwj2,同样对它求导,得到梯度变化为 ∂Φ(w)∂wj=2wj ∂Φ(w)∂wj=2wj(一般会用 λ2 λ2来把这个系数2给消掉)。同样的更新之后使得 wj wj的值不会变得特别大。在机器学习中也将L2正则称为weight decay,在回归问题中,关于L2正则的回归还被称为Ridge Regression岭回归。weight decay还有一个好处,它使得目标函数变为凸函数,梯度下降法和L-BFGS都能收敛到全局最优解。

需要注意的是,L1正则化会导致参数值变为0,但是L2却只会使得参数值减小,这是因为L1的导数是固定的,参数值每次的改变量是固定的,而L2会由于自己变小改变量也变小。而(12)式中的 λ λ也有着很重要的作用,它在权衡拟合能力和泛化能力对整个模型的影响, λ λ越大,对参数值惩罚越大,泛化能力越好。

此外,从贝叶斯的角度而言,正则化项实际上是给了模型一个先验知识,L2正则相当于添加了一个均值为0协方差为 1/λ 1/λ的高斯分布先验(将L2正则表示为 λ2wTw λ2wTw),当 λ λ为0,即不添加正则项,那么可以看成协方差是无穷大, w w可以不受控制变成任意大。当 λ λ越大,即协方差越小,那么参数值的取值方差会变小,模型会趋向于稳定(参考[10]最高票答案)。

5. 逻辑回归与其他模型的关系

5.1 逻辑回归与线性回归

在谈两者关系之前,需要讨论的是,逻辑回归中使用到的sigmoid函数到底起到了什么作用。下图的例子中,需要判断肿瘤是恶性还是良性,其中横轴是肿瘤大小,纵轴是线性函数 hw(x)=wTx+b hw(x)=wTx+b的取值,因此在左图中可以根据训练集(图中的红叉)找到一条决策边界,并且以0.5作为阈值,将 hw(x)⩾0.5 hw(x)⩾0.5情况预测为恶性肿瘤,这种方式在这种数据比较集中的情况下好用,但是一旦出现如右图中的离群点,它会导致学习到的线性函数偏离(它产生的权重改变量会比较大),从而原先设定的0.5阈值就不好用了,此时要么调整阈值要么调整线性函数。如果我们调节阈值,在这个图里线性函数取值看起来是0~1,但是在其他情况下可能就是从 −∞ −∞到 ∞ ∞,所以阈值的大小很难确定,假如能够把 wTx+b wTx+b的值变换到一个能控制的范围那么阈值就好确定了,所以找到了sigmoid函数,将 wTx+b wTx+b值映射到了(0,1),并且解释成概率。而如果调节线性函数,那么最需要的是减少离群点的影响,离群点往往会导致比较大的 |wTx+b| |wTx+b|值,通过sigmoid函数刚好能够削弱这种类型值的影响,这种值经过sigmoid之后接近0或者1,从而对 wj wj的偏导数为 hw(x(i))(1−hw(x(i)))x(i)j hw(x(i))(1−hw(x(i)))xj(i),无论接近0还是1这个导数都是非常小的。因此可以说sigmoid在逻辑回归中起到了两个作用,一是将线性函数的结果映射到了(0,1),一是减少了离群点的影响。

1

图5 良性恶性肿瘤分类(图来源[12])

有了上面的分析基础,再来看看逻辑回归和线性回归的关系(线性回归我这里就不展开说了,不清楚的可以看看[11]),有的人觉得逻辑回归本质上就是线性回归,它们俩都要学习一个线性函数,逻辑回归无非是多加了一层函数映射,但是我对线性回归的理解是在拟合输入向量x的分布,而逻辑回归中的线性函数是在拟合决策边界,它们的目标是不一样的。所以我不觉得逻辑回归比线性回归好,它们俩要解决的问题不一样。但它们都可以用一个东西来概括,那就是广义线性模型GLM(Generalized linear models)[12]。先介绍何为指数簇(exponential family),当某个随机变量的概率分布可以表示为 p(y;η)=b(y)exp(ηTT(y)−a(η)) p(y;η)=b(y)exp(ηTT(y)−a(η))时就可以说它属于指数簇,通过调整 η η可以获得不同的分布。对应于线性回归与逻辑回归的高斯分布与伯努利分布就是属于指数簇的,例如取 T(y)=y T(y)=y、 a(η)=−log(1−ϕ)=log(1+eη) a(η)=−log(1−ϕ)=log(1+eη)以及 b(y)=1 b(y)=1代入上式得到 p(y;η)=exp(ylog(ϕ1−ϕ)+log(1−ϕ))=exp(ylogϕ+log(1−ϕ))=ϕy(1−ϕ)1−y p(y;η)=exp(ylog(ϕ1−ϕ)+log(1−ϕ))=exp(ylogϕ+log(1−ϕ))=ϕy(1−ϕ)1−y。

GLM需要满足下面三个条件。

  1. 在给定观测值x和参数w情况下,输出y服从参数为 η η的指数簇分布
  2. 预测的值 hw(x)=E[y|x] hw(x)=E[y|x]
  3. η=wTx η=wTx

因此,选择合适的参数就能分析出线性回归和逻辑回归都是GLM的一种特例,有时会看到有的人会从GLM出发将逻辑回归的公式给推导出来。总之,线性回归和逻辑回归是属于同一种模型,但是它们要解决的问题不一样,前者解决的是regression问题,后者解决的是classification问题,前者的输出是连续值,后者的输出是离散值,而且前者的损失函数是输出y的高斯分布,后者损失函数是输出的伯努利分布。

5.2 逻辑回归与最大熵

最大熵在解决二分类问题时就是逻辑回归,在解决多分类问题时就是多项逻辑回归。为了证明最大熵模型跟逻辑回归的关系,那么就要证明两者求出来的模型是一样的,即求出来的h(x)的形式应该是一致的。由于最大熵是通过将有约束条件的条件极值问题转变成拉格朗日对偶问题来求解,模型的熵为

−∑v=1k∑i=1mh(x(i))vlog(h(x(i))v)(14) −∑v=1k∑i=1mh(x(i))vlog(h(x(i))v)(14)

并假设约束条件如下,其中 v,u v,u是输出类别的index, j j是对应输入向量 x x的index, A(u,y(i)) A(u,y(i))是指示函数,两个值相等输出1,其他输出0[13]。而第三个约束是通过令公式(5)等于0得来的,它的意义是参数 wu,j wu,j最好的取值是让每一个样本i对应 h(x(i))u h(x(i))u的行为接近指示函数 A(u,y(i)) A(u,y(i))。

⎧⎩⎨⎪⎪⎪⎪h(x)v⩾0∑kv=1h(x)v=1∑mi=1h(x(i))ux(i)j=∑mi=1A(u,y(i))x(i)j always  always  for all u,j(15) {h(x)v⩾0 always ∑v=1kh(x)v=1 always ∑i=1mh(x(i))uxj(i)=∑i=1mA(u,y(i))xj(i) for all u,j(15)

通过约束条件(15)可以直接推导出softmax的公式。基于这一点,再回过头来看《统计学习方法》上的约束条件,如果假设 P(y|x)=h(x) P(y|x)=h(x),公式左边的 f(x,y) f(x,y)实际上取值一直为1,那么这两个约束条件实际上是一样的。

∑x,yP(x)˜P(y|x)f(x,y)=∑x,yP(x,y)˜f(x,y)(16) ∑x,yP(x)~P(y|x)f(x,y)=∑x,yP(x,y)~f(x,y)(16)

因此,可以这样说,最大熵在解决二分类问题时就是逻辑回归,在解决多分类问题时就是多项逻辑回归。此外,最大熵与逻辑回归都称为对数线性模型(log linear model)。

5.3 逻辑回归与svm

逻辑回归和svm作为经典的分类算法,被放在一起讨论的次数特别多,知乎和Quora上每种意见都非常有意思都从不同角度有分析,建议都可以看看[14][15][16]。这里只讨论一些我赞同的观点。要是不清楚svm的由来,建议看JerryLead的系列博客[17],我这里就不提了。

相同点:

  1. 都是分类算法
  2. 都是监督学习算法
  3. 都是判别模型
  4. 都能通过核函数方法针对非线性情况分类
  5. 目标都是找一个分类超平面
  6. 都能减少离群点的影响

不同点:

  1. 损失函数不同,逻辑回归是cross entropy loss,svm是hinge loss
  2. 逻辑回归在优化参数时所有样本点都参与了贡献,svm则只取离分离超平面最近的支持向量样本。这也是为什么逻辑回归不用核函数,它需要计算的样本太多。并且由于逻辑回归受所有样本的影响,当样本不均衡时需要平衡一下每一类的样本个数。
  3. 逻辑回归对概率建模,svm对分类超平面建模
  4. 逻辑回归是处理经验风险最小化,svm是结构风险最小化。这点体现在svm自带L2正则化项,逻辑回归并没有
  5. 逻辑回归通过非线性变换减弱分离平面较远的点的影响,svm则只取支持向量从而消去较远点的影响
  6. 逻辑回归是统计方法,svm是几何方法
5.4 逻辑回归与朴素贝叶斯

这两个算法有一些相似之处,并且在对比判别模型和生成模型,它们作为典型的分类算法经常被提及,因此这里也做一个小小的总结。

相同点是,它们都能解决分类问题和都是监督学习算法。此外,有意思的是,当假设朴素贝叶斯的条件概率 P(X|Y=ck) P(X|Y=ck)服从高斯分布时Gaussian Naive Bayes,它计算出来的 P(Y=1|X) P(Y=1|X)形式跟逻辑回归是一样的[18]。

不同的地方在于,逻辑回归为判别模型求的是 p(y|x) p(y|x),朴素贝叶斯为生成模型求的是 p(x,y) p(x,y)。前者需要迭代优化,后者不需要。在数据量少的情况下后者比前者好,数据量足够的情况下前者比后者好。由于朴素贝叶斯假设了条件概率 P(X|Y=ck) P(X|Y=ck)是条件独立的,也就是每个特征权重是独立的,如果数据不符合这个情况,朴素贝叶斯的分类表现就没有逻辑回归好。

5.5 逻辑回归与能量模型

(3月3日补充)

基于能量的模型不是一个具体的算法,而是一种框架思想,它认为输入输出变量之间的依赖关系用一个值表示 E(x,y) E(x,y),这个值称为能量,对关系建模的这个函数叫能量函数 。如果在保持输入变量不变的情况下,对应正确输出时能量低,对应错误输出时能量高,那么这个模型就是有用的。

因此当给定了训练集S,能量模型的构造和训练由四部分组成[19]:

  1. 有合适的能量函数 E(W,Y,X) E(W,Y,X)
  2. inference算法,针对一个给定的输入变量X和能量函数形式,找到一个Y值使得能量最小,即 Y∗=argminY∈yE(W,Y,X) Y∗=argminY∈yE(W,Y,X)
  3. 有loss函数 L(W,S) L(W,S),用来衡量在训练集S下能量函数的好坏
  4. learning算法,用来找合适的参数W,在一系列能量函数中选择让损失函数最小化的能量函数。

可以看出13步通过选择不同的能量函数和损失函数来构造不同的模型,24步是如何训练这样的一个模型。

因此当我们假设要解决二分类问题时,y取值为-1和1,如果假设能量函数为 E(W,Y,X)=−YGw(X)=WTX E(W,Y,X)=−YGw(X)=WTX,损失函数采用negative log-likelihood loss,那么可以求得损失函数具体形式为 Lnll(W,S)=1P∑Pi=1log(1+exp(−2YiWTX)) Lnll(W,S)=1P∑i=1Plog(1+exp(−2YiWTX)),这个形式与把(1)(2)代入公式(3)后得到的损失函数公式是一致的,说明这种组合下,产生的算法就是逻辑回归。因此逻辑回归是能量模型的一种特例。

而此处,同样针对二分类问题,假如能量函数保持不变,损失函数采用hinge loss,并加上一个正则化项,那么就能够推导出SVM的损失函数表达式(SVM的核函数体现在能量函数中,这里为了方便解释没有具体展开说)。这也是为什么说逻辑回归与svm最本质的区别就是损失函数不同。

6. 并行化

由于找不到特别多的并行化资料,这里就分析一下博主冯扬给出的实现[20]。实际上逻辑回归的并行化最主要的目标就是计算梯度。将目标的label变为-1和1,那么梯度公式可以整合在一起变成 ∑Mi=1(11+exp(y(i)wTx(i))−1)y(i)x(i) ∑i=1M(11+exp(y(i)wTx(i))−1)y(i)x(i),梯度计算里面最主要的就是矩阵乘法,一般的做法都是想办法将矩阵切割成大小合适的块。针对二分类,现在有M个样本,N个特征,假如有m*n个计算节点,并且将计算节点排列成m行n列,那么每个节点分配M/m个样本,N/n个特征,如下图所示。

1

图6 并行LR的数据分割(图片来源[20])

原文的标示我不太习惯,下面都改成了ij,并画出了矩阵运算的过程图。其中 X(i,j),i∈[1,m],j∈[1,n] X(i,j),i∈[1,m],j∈[1,n]表示输入数据被分块后的第i行第j列的块。

X(i,j),k X(i,j),k表示这个块中的第k行, Wj Wj表示参数的第j块。

第一步计算

d(i,j),k=WTjX(i,j),k d(i,j),k=WjTX(i,j),k

第二步计算

di,k=∑j=1nd(i,j),k di,k=∑j=1nd(i,j),k

1

图7 并行LR的求梯度12步

第三步计算

G(i,j)=∑k=1M/m(11+exp(yi,kdi,k)−1)yi,kX(i,j),k G(i,j)=∑k=1M/m(11+exp(yi,kdi,k)−1)yi,kX(i,j),k

第四步计算

Gj=∑i=1mG(i,j) Gj=∑i=1mG(i,j)

1

图6 并行LR的求梯度34步

从而,经过上面的分解步骤可以将逻辑回归来做并行化计算。

7. 总结

这篇文章写了好几天,有时候写着写着就把自己绕进去了,因为可以展开说的地方太多了,写完这些内容,我又找了一些面试题看了看,理论部分基本上都能覆盖到了,但是涉及到真正的应用还是要再花时间去了解,最后的并行化理解还不够透彻,矩阵乘法我用gpu实现过,但是并没有接触过海量的数据,也不知道真正的问题会发生在什么地方。逻辑回归可以从很多方面来解释来理解,确实是个很美丽的算法。

8. 引用

[1] Verhulst and the logistic equation (1838)

[2] Mathematical enquiries on the law of population growth

[3] Proceedings of the national academy of sciences

[4] The regression analysis of binary sequences

[5] The Origins of Logistic Regression

[6] 机器学习系列(2)用初等数学视角解读逻辑回归

[7] A comparison of numerical optimizers for logistic regression

[8] Numerical optimizers for Logistic Regression

[9] 牛顿法与拟牛顿法学习笔记(一)牛顿法

[10] 知乎:机器学习中使用「正则化来防止过拟合」到底是一个什么原理

[11] 多变量线性回归 Linear Regression with multiple variable

[12] CS229 Lecture notes

[13] The equivalence of logistic regression and maximum entropy models

[14] Linear SVM 和 LR 有什么异同?

[15] SVM和logistic回归分别在什么情况下使用?

[16] Support Vector Machines: What is the difference between Linear SVMs and Logistic Regression?

[17] 支持向量机svm

[18] GENERATIVE AND DISCRIMINATIVE CLASSIFIERS: NAIVE BAYES AND LOGISTIC REGRESSION

[19] A Tutorial on Energy-Based Models

[20] 并行逻辑回归

手写算法-python代码实现逻辑回归(带L1、L2正则项) 手写算法-python代码实现逻辑回归逻辑回归原理解析损失函数定义以及数学公式推导过程解释1:通俗易懂的手推损失函数:解释2:最大似然估计求解参数对损失函数推导梯度python代码实现逻辑回归 逻辑回归原理解析 前面我们系统性的介绍了线性回归,初学者建议把我前面的文章看完,再来看逻辑回归。写得应该算是容易看懂的了,且都有实例辅证,大家看的时候要自己跑一边代码,多动手、多思考。 今天,我们来讲逻辑回归。 逻辑回归是LogisticRegression的直译,它不是用来解决回归问题的,而是用来解决分类问题的,它 阅读详情

相关推荐

详解机器学习经典模型(原理及应用)——逻辑回归

本文详细介绍了逻辑回归的定义,原理以及计算公式,并给出了逻辑回归应用于二分类和多标签分类的示例代码,可以用于面试八股或业务开发参考。

学习与分享人工智能技术 5441

(转载)【机器学习算法系列之二】浅析Logistic Regression

(原文:https://chenrudan.github.io/blog/2016/01/09/logisticregression.html) 发表于 2016-01-09 | 分类于 project experience | 9条评论 |  872 本文是受rickjin老师的启发,谈谈关于logistic regression的一些内容,虽然已经有珠玉在前,但还是做一

ligang_csdn的博客 2286

XGBoost模型跟Logistic Regression模型的本质区别

把握机器学习算法关键点有两个 1、loss function的理解(包括:特征X/标签Y配对的建模,X/Y配对建模的loss function的设计)。 2、loss function的求解过程。这两点串接在一起构成了算法实现的主框架。

数据分析之路 1万+

推荐系统学习笔记-Part6 GBDT+LR

GDBT+LR 前面介绍的协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导致生成的结果往往会比较片面。 而这次介绍的这个模型是2014年由Facebook提出的GBDT+LR模型, 该模型利用GBDT自动进行特征筛选和组合, 进而生成新的离散特征向量, 再把该特征向量当做LR模型的输入, 来产生最后的预测结果, 该模型能够综合利用用户、物品和上下文等多种不同的特征, 生成较为全面的推荐结果, 在CTR点击率预估场景下使用较为广泛

qq_39544991的博客 470

Logistic Regression实战指南:可解释、可审计、可部署的决策引擎

Logistic Regression并非过时的入门模型,而是一种以概率输出为核心的分类基础算法,其本质是将线性组合通过Sigmoid函数映射为可解释的风险概率。它凭借参数可解读、逻辑可追溯、部署轻量等优势,成为金融风控、医疗预警、推荐系统等强监管与高可信场景的首选模型。相比黑盒模型,它支持业务归因(如‘年龄系数-0.15’)、满足合规审计要求,并能与WOE编码、特征交叉、在线学习等工程方法深度结合,实现稳定落地。本文聚焦真实工业场景中的数据清洗、特征构造、阈值设定、漂移监控等关键环节,解决‘结果怎么来的’

weixin_33835103的博客 332

Logistic Regression、Linear Discriminant Analysis、Shrinkage Methods(Ridge Regression and Lasso)

引言 Logistic Regression Default数据集描述,详细信息在第6页。 数据集下载 logistic regression 是一个线性模型用于做分类的,它直接对Y属于某个类别的概率进行建模。比如对于Default数据集来说,Pr(default = Yes | balance, student, income). 这也就是说,对于任何给定的balance, stud

踩风火轮的乌龟 5113

逻辑斯谛回归正则化 regularized logistic regression

逻辑斯谛回归正则化 regularized logistic regression 关于logistic回归的基础知识请参见我的前两篇博客:逻辑回归(代价函数,梯度下降) logistic regression--cost function and gradient descent 和 逻辑回归之决策边界 logistic regression -- decision bou

数据之美的博客 892

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.youkuaiyun.com/download/che

chengbaola的博客 1365

逻辑回归(Logistic Regression)和正则化

第三个例子:如果你正在做有关天气的机器学习分类问题,那么你可能想要区分哪些天是晴天、多云、雨天、或者下雪天,对上述所有的例子,𝑦 可以取一个很小的数值,一个相对"谨慎"的数值,比如 1 到 3、1 到 4 或者其它数值,以上说的都是多类分类问题,顺便一提的是,对于下标是 0 1 2 3,还是 1 2 3 4 都不重要,我更喜欢将分类从 1 开始标而不是0,其实怎样标注都不会影响最后的结果。分类问题属于监督学习中的一个核心问题,其目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。

qq_45742413的博客 4469

使用moveit控制机械臂

位置设置:`target_pose.position.x = 0.12`, `target_pose.position.y = 0.41`, 和 `target_pose.position.z = 0.44` 分别设置了机械臂末端执行器的X, Y, 和 Z坐标。设定目标位置:`group.set_pose_target(target_pose)` 这一命令将之前定义的目标位置和姿态设置为当前机械臂组的目标,为接下来的路径规划做准备。在机械臂控制的过程中,设定精确的目标位置和姿态是实现精确操作的关键步骤。

realman_Rop的博客 3687

四足机器人关节电机FOC控制实战:从磁编码器校准到SVPWM调试避坑指南

本文详细解析了四足机器人关节电机FOC控制实战,涵盖磁编码器校准、电流环调试和SVPWM波形优化等关键环节。通过MIT Cheetah案例展示如何解决21倍电气误差问题,并提供相序自动校正、PI参数整定等实用代码片段,帮助工程师避开永磁同步电机(PMSM)控制中的常见陷阱。

weixin_29281915的博客 489

Machine Learning-Andrew Ng 课程第三周——Logistic Regression

目录1.关于Logistic Regression的一些基本问题(1) Logistic Regression的名字(2) 假设$h_\theta(\mathbf{x})$的内在含义(3) Logistic Regression的梯度下降推导2.关于正则化的一些基本问题(1) 正则化的初衷(2) 关于添加特征和运用正则化后的模型预测效果 1.关于Logistic Regression的一些基本问题...

Dr_destiny的博客 461

【SpringBoot 3.x 第51节】带你玩转 GraalVM Native Image:启动快到飞起,内存省到心疼,你还不试试?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1304

(二)Logistic Regression[逻辑回归]&正则项

逻辑回归解决的是分类问题,它的本质是给了X,y,来求解θ,和线性回归很像。逻辑回归也是Xθ进行预测,预测的值可以理解为概率,在0~1之间,比如可以将>0.5的值归为1, 总之,逻辑回归和线性回归都是为了得到θ(θ是个香饽饽~),得到了之后,一个用来分类,一个用来预测。下面详解。 逻辑回归 比如打算把一群sample分成2类,分别用0,1代表负样本和正样本,即y⊂{0, 1},

m0_37770941的博客 1611

uniapp [全端兼容] - 详细实现人脸识别和活体检测功能,实时监测人脸是否进入区域及动作是否正确播报,免费自动提示引导动作及语音,提供提供实名认证、身份证识别、人脸信息采集、刷脸扫脸认证示例代码

uniapp,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,人脸识别,扫脸认证,人脸认证,活体认证,身份认证,uni-app人脸识别详细教程,如何在app端实现免费人脸识别教程,如何在小程序端做,最好用的插件,安卓ios百度人脸识别、活体检测、人脸采集APP,H5人脸识别带前后摄像头,适合新手看的人脸识别功能教程,详细示例代码源码,有没有免费的,接入百度,阿里云人脸识别,百度,api,活体检测,数据采集,动作提示指引,语音提示指引,报错,无法核验一直出错,根本用

🏆 前端领域优质创作者 1万+

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略

我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。

2501_92132293的博客 362

正则化逻辑回归(regularized logistic regression)

正则化下的代价函数 正则化下的梯度下降算法 用octave编码

woahxy的博客 326

OpenAI最强编程助手Codex:下载安装、使用指南(含使用方式、提示技巧、趋势)

OpenAI最近上线了最强编程Agent——Codex,一起来看看吧!

Code_流苏:在代码中寻诗意,在实践中觅真知 1万+

机器学习笔记 ---- Logistic Regression

Logistic Regression 1. Problems of Linear Regression When Applied to Classification Problem 1) h(x) may out of range 2) some unusual feature values lead to failure of classification 2. Logisti...

J. Cole 345

GEE:关于遥感生态指数(RSEI)的若干疑问

本文记录了若干关于在 Google Earth Engine (GEE)平台上,计算基于主成分分析(PCA)的遥感生态指数(RSEI)的问题。并记录了解决这些问题的一些答案。问题包括,主成分分析的特征值的正负,主成分的占比,去云后空值像素的处理方法,异常值处理方法,如何看载荷等。

养乐多的博客 3417

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Regularized Logistic Regression(吴恩达机器学习:正则化逻辑回归)

赶稿中

qq_48691686的博客 1496

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

scikit-learn/sklearn学习|广义线性回归 Logistic regression的三种成本函数

本文介绍了Logistic回归的三种成本函数:L2正则化成本函数(包含权重平方项)、L1正则化成本函数(包含权重绝对值项)以及弹性网正则化成本函数(结合L1和L2正则化)。其中弹性网函数通过参数ρ在两种正则化间平衡,当ρ=1时退化为L1正则化,ρ=0时退化为L2正则化。这些成本函数为Logistic回归提供了不同的正则化选择方案。

专注python+工程实践的热心婶子 1155

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Logistic Regression知识点整理

Logistic Regression Linear Regression 的原理(Logistic Regression 的基础) 目标函数 f(x)=wx+bf(x)=wx+bf(x)=wx+b 损失函数 均方误差 E=∑mi=1(f(xi)−yi)2E=∑i=1m(f(xi)−yi)2E = \sum_{i=1}^m(f(x_i)-y_i)^2 推广至多元 E=(y−wx)T(y−w...

大锅八十小锅四十 1046

Logistic Regression核心知识点透析

一、线性回归到广义线性回归 线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。线性模型通过联合其他函数扩展成为,建立响应变量的数学期望值与线性组合的预测变量之间的关系的模型,大大扩展了线性模型可解决问题的范围,这就是广义线性回归。不同的联系...

Li_yi_chao的博客 746

学习笔记(七): Logistic Regression

目录 Calculating a Probability Model Training 1.Loss function for Logistic Regression 2.Regularization in Logistic Regression Glossay   Calculating a Probability Many problems require a probabil...

Lightmare625 5055
上一篇: hive仓库远程链接:Peer indicated failure: Unsupported mechanism type PLAIN (state=08S01,code=0)
下一篇: PageRank算法简介及Map-Reduce实现
kejiaming
博客等级 码龄15年 19粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值