先举两个简单的例子,看上面的图片。

线性回归主要功能是拟合数据
逻辑回归主要功能是区分数据,找到决策边界。

线性回归的代价函数常用平方误差函数
逻辑回归的代价函数常用交叉熵

参数优化的方法都是常用梯度下降


1 线性回归(Linear Regression)

1.1 建立问题

举个例子,你有一组面积&房价的数据。

现在你有个朋友想要卖房子,他的房子是1250平方英尺,大概能卖多少钱?

我们可以根据这组数据,建立一个模型,然后用这组数据集去拟合模型。拟合完毕后,输入1250,它就会告诉你朋友能卖多少钱。

看起来这组数据似乎分布在一条直线附近:

好,只要找到这条直线的方程,你就能根据面积来预测房价了。(在这个例子里,直线方程就是我们要拟合的模型)

如何找到直线方程?方法就是,线性回归


补充讲一下,这是一个属于监督学习(Supervised Learning)的问题:每个例子都有一个 “正确答案”,我们知道每一个面积对对应一个确定的房价。

而且这还是一个回归问题(Regression Problem)。回归问题指的是,我们预测一个具体的数值输出,也就是房价。

另外再讲一下,监督学习中还有一种被称为分类问题(Classification Problem),我们用它来预测离散值输出。比如观察肿瘤的大小,来判断是良性还是恶性的,输出只有2种:[0]良性,[1]恶性。

然后,这是你的数据集:

1.2 建立模型

现在有一个假设函数 hhh,它的英文名叫 hypothesis。至于为什么叫 hypothesis,这是一个历史问题,反正机器学习里面都这样叫的。

我们要做的是,通过训练集+机器学习算法,学习到这个函数,即 y=h(x)y=h(x)y=h(x)。并且输入和输出的值满足上面的数据集表格。

函数 hhh 应该长什么样子?在这个例子里它是这样的:hθ(x)=θ0+θ1x(1)h_{\bm{\theta}}(x)=\theta_0 + \theta_1 x \tag{1}hθ​(x)=θ0​+θ1​x(1)下标 θ\bm{\theta}θ 的意思是,函数 hhh 的参数是 θ\bm{\theta}θ(在这个例子里 θ\bm{\theta}θ 包括 θ0\theta_0θ0​ 和 θ1\theta_1θ1​,是两个常数)。

显而易见它是一个直线方程

有时候 θ\bm{\theta}θ 不止 2 个,例如 hθ(x)=θ0+θ1x+θ2x2+θ3x3...h_{\bm{\theta}}(x)=\theta_0 + \theta_1 x + \theta_2 x^2 + \theta_3 x^3 ...hθ​(x)=θ0​+θ1​x+θ2​x2+θ3​x3... 但是在这个例子里不需要这么复杂的函数。

它是一条简单的直线,不包含非线性项(xxx的平方、xxx的三次方之类的)。(所以也叫线性回归?)
而且只有一个输入变量 xxx,又叫做单变量线性回归。

现在数据也有了,模型也有了,我们要做的事情就是利用已知数据找到这两个参数: θ0\theta_0θ0​ 和 θ1\theta_1θ1​。

1.3 代价函数

我们知道,选择不同的 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ 的组合,会得到不同的直线:

这几条直线都不是我们想要的,我们要找的直线应该像这样:

假设每个数据点到直线的距离为 did_idi​,把所有距离加起来: ∑di\sum d_i∑di​ 。

调整直线,重新计算 ∑di\sum d_i∑di​,当直线处于某个位置时,算到的 ∑di\sum d_i∑di​ 最小,这条直线就对了。

假设有 iii 个样本,每个样本用 (xi,yi)(x^i,y^i)(xi,yi) 表示。则:di=(hθ(xi)−yi)2d_i = \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2di​=(hθ​(xi)−yi)2
之所以取平方,是因为我们要的距离应该是正数,而直接相减可能有正有负。
(取绝对值也可以,不过取平方方便后面计算。)
(这看起来很像最小二乘法)

把所有样本加起来:∑i=1mdi=∑i=1m(hθ(xi)−yi)2\sum^{m}_{i=1} d_i= \sum^{m}_{i=1} \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2i=1∑m​di​=i=1∑m​(hθ​(xi)−yi)2其中 mmm 表示我们有 mmm 个样本。

所以我们的任务是:找到一组合适的 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ ,使上面求和的结果最小。

再改变一下写法:J(θ0,θ1)=12m∑i=1m(hθ(xi)−yi)2(2)\color{red}{J(\theta_0, \theta_1)=\frac{1}{2m} \sum^{m}_{i=1} \left( \; h_{\bm{\theta}}\left(x^i\right)- y^i \;\right)^2 }\tag{2}J(θ0​,θ1​)=2m1​i=1∑m​(hθ​(xi)−yi)2(2)

意思也是一样,要找一组 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ ,使 J(θ0,θ1)J(\theta_0, \theta_1)J(θ0​,θ1​) 最小。这就是我们的代价函数(Cost Function)。
它也叫平方误差函数(Squared Error Function)。

对于大多数问题,特别是回归问题,这个平方误差函数都是一个合理的选择。
还有其它代价函数也能发挥很好的作用,但是平方误差函数可能是解决线性回归问题的最常用手段了。

记住现在 hθ(x)h_{\bm{\theta}}(x)hθ​(x) 的表达式是 hθ(x)=θ0+θ1xh_{\bm{\theta}}(x)=\theta_0 + \theta_1 xhθ​(x)=θ0​+θ1​x。

我们要求的东西是 θ0\theta_0θ0​ 和 θ1\theta_1θ1​。

代价函数 J(θ0,θ1)J(\theta_0, \theta_1)J(θ0​,θ1​) 的参数也是 θ0\theta_0θ0​ 和 θ1\theta_1θ1​。

(xi,yi)(x^i,y^i)(xi,yi) 是已有的数据集,都是已知数,是用来代进去求 JJJ 的。

1.4 梯度下降

随着 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ 取值的不同,算出来的 J(θ0,θ1)J(\theta_0, \theta_1)J(θ0​,θ1​) 也不同,用图画出来大概像这样:

初始的时候,给 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ 随便设一个值。然后把数据集 (xi,yi)(x^i,y^i)(xi,yi) 都代进去算此时对应的 JJJ。
(你大概率不会一下子就出现在谷底,运气这么好可以买彩票了)
然后我们要根据现在所处的位置,不断地改变 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ 的值,使 J(θ0,θ1)J(\theta_0, \theta_1)J(θ0​,θ1​) 越来越小。

梯度下降法可以找到这个方向,直奔谷底。。。

具体是,对 JJJ 求导,导数的方向就指向谷底,用导数更新 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ 的值,我们就向谷底迈进了一步。

θ0′=θ0−α∂∂θ0J(θ0,θ1)θ1′=θ1−α∂∂θ1J(θ0,θ1){\theta_0}^ {\prime} = \theta_0 - \alpha\frac{\partial}{\partial \theta_0} J(\theta_0, \theta_1) \\ {\theta_1}^ {\prime} = \theta_1 - \alpha\frac{\partial}{\partial \theta_1} J(\theta_0, \theta_1)θ0​′=θ0​−α∂θ0​∂​J(θ0​,θ1​)θ1​′=θ1​−α∂θ1​∂​J(θ0​,θ1​)

其中 α\alphaα 是学习率,决定了你的步伐。

更新 θ0\theta_0θ0​ 和 θ1\theta_1θ1​ ,继续迭代:
θ0=θ0′θ1=θ1′\theta_0 = {\theta_0}^ {\prime} \\ \theta_1 = {\theta_1}^ {\prime}θ0​=θ0​′θ1​=θ1​′

重复上面两组方程,直到 JJJ 的导数为 000 ,此时 JJJ 就取到最小值。

若 α\alphaα 取得太小,则前进步伐太小,收敛太慢。
若 α\alphaα 取得太大,则容易跨过谷底,甚至迈向山峰,导致 JJJ 一直震荡,无法收敛。

为什么求导有这个功效?因为导数的物理意义是这个曲面当前位置切线的斜率,它指明了这个斜坡的方向。
你或许还记得斜率是ΔyΔx\dfrac{\Delta y}{ \Delta x}ΔxΔy​

从切面看,我们的山谷像下面这张图。不管在山谷的哪边,减去一个导数都能让你像谷底迈进一步。

但是梯度下降不是万能的,遇到这种形状的函数可能会陷入局部最优:

它有两个谷底,你从不同的地方开始走(选择不同的初值),会走到不同的山谷,深陷其中,无法翻身。。。
复杂的函数甚至有多个谷底,完全无法知道哪个是最低的。

不过请放心,这个线性回归用的平方误差函数是个凸函数(convex),它只有一个谷底,梯度下降法能很好地工作。

1.5 小结

总结一下,线性回归可以说是一个拟合直线的问题(非线性回归就是拟合曲线?)。
做法是:
∙\bullet∙ 首先选择一个模型(方程),它最符合你的数据集的分布,你需要找到它的参数。在这个例子里是一条直线。
∙\bullet∙ 然后选择一个代价函数,一般是用平方误差函数。它能反映你的数据集和你的模型(方程)之间的整体偏差。
∙\bullet∙ 然后选择一个优化算法,一般是用梯度下降法,把数据集代进去,更新模型(方程)的参数,使代价函数越来越小。
∙\bullet∙ 代价函数变得最小的时候,优化完毕,找到了这个模型(方程)的最佳参数。


2 逻辑回归(Logistic Regression)

虽然它的名字里面也有 “回归” 两个字,但是它解决的是一个分类问题,处理的是 “预测值为一个离散变量” 的情况下的分类问题。

为什么叫逻辑回归,大概是因为它的代价函数里面有一个逻辑函数。

2.1 问题

举一个癌症诊断的例子,根据肿瘤大小判断是否患有癌症。

如上图所示,诊断结果只有两个。1:有癌症0:没癌症

训练集样本也画在图片上了,如果用上一章线性回归的方法,会得到一条蓝色的直线。根据这条直线可以给出以下定义:
{hθ(x)>0.5有癌症hθ(x)⩽0.5无癌症(2.1)\left\{ \begin{array}{cc} h_{\theta}(x) > 0.5 & 有癌症 \\ h_{\theta}(x) \leqslant 0.5 & 无癌症 \end{array} \right. \tag{2.1}{hθ​(x)>0.5hθ​(x)⩽0.5​有癌症无癌症​(2.1)

那只要我们肿瘤体积是小于 1.5m31.5m^31.5m3 的,就没有癌症。

现在又有一些新的样本,出现了特大肿瘤:

这么大的肿瘤,那必须是癌症啊。所以输出 yyy 还是 111。
为了拟合这样的数据,我们的蓝色直线发生了一些改变。

如果还是按照公式 (2.1) 来判别癌症,把那些 “一般肿瘤” 的尺寸输入(大概 2m32m^32m3)进去,算出来 hθ(x)<0.5h_{\theta}(x) < 0.5hθ​(x)<0.5 ,给出结论:没有癌症。这显然不对。

对于这个问题,看来不能再用线性回归来做了。

2.2 逻辑回归的模型

先介绍一个 sigmoid\text{sigmoid}sigmoid 函数,网上找的图:


现在改变我们用的 hypothesis 函数 hθ(x)h_{\theta}(x)hθ​(x),因为上一章线性回归用的 hθ(x)h_{\theta}(x)hθ​(x) 不再适合这个分类问题了。

令 hθ(x)=sigmoid(θTx)h_{\theta}(x) = \text{sigmoid}(\bm{\theta}^T\boldsymbol{x})hθ​(x)=sigmoid(θTx),即:hθ(x)=11+e−θTxh_{\theta}(x) = \dfrac{1}{1+e^{-\bm{\theta}^T\boldsymbol{x}}}hθ​(x)=1+e−θTx1​


举个例子:

(图2.1)

假设你已经拟合好了模型, 2 个输入(x1x_1x1​、x2x_2x2​), 3 个参数(θ0\theta_0θ0​,θ1\theta_1θ1​,θ2\theta_2θ2​):

θTx=θ0+θ1x1+θ2x2=−3+x1+x2\begin{aligned} \bm{\theta}^T\boldsymbol{x} &= \theta_0 + \theta_1 x_1 + \theta_2 x_2 \\ &= -3+x_1 + x_2\end{aligned}θTx​=θ0​+θ1​x1​+θ2​x2​=−3+x1​+x2​​

即:hθ(x)=11+e−θTx=11+e−(−3+x1+x2)h_{\theta}(x) = \dfrac{1}{1+e^{-\bm{\theta}^T\boldsymbol{x}}} = \dfrac{1}{1+e^{- (-3+x_1 + x_2)}}hθ​(x)=1+e−θTx1​=1+e−(−3+x1​+x2​)1​

给出如下定义:
{hθ(x)>0.5输出y=1(红色的类别)hθ(x)⩽0.5输出y=0(绿色的类别)(2.2)\left\{ \begin{array}{cc} h_{\theta}(x) > 0.5 & 输出 y=1\;(红色的类别) \\ h_{\theta}(x) \leqslant 0.5 & 输出y=0\;(绿色的类别) \end{array} \right.\tag{2.2}{hθ​(x)>0.5hθ​(x)⩽0.5​输出y=1(红色的类别)输出y=0(绿色的类别)​(2.2)

根据 sigmoid\text{sigmoid}sigmoid 函数的图像,当 θTx>0\bm{\theta}^T\boldsymbol{x} > 0θTx>0 时, 就能使 hθ(x)>0.5h_{\bm{\theta}}(\boldsymbol{x}) > 0.5hθ​(x)>0.5,就能输出 y=1y=1y=1,就能判定为红色的类别。

而 θTx=−3+x1+x2\bm{\theta}^T\boldsymbol{x} =-3+x_1 + x_2θTx=−3+x1​+x2​,所以只要 −3+x1+x2>0-3+x_1 + x_2>0−3+x1​+x2​>0,就能输出 y=1y=1y=1。

看回 (图2.1) :
红色那些叉叉都满足 −3+x1+x2>0-3+x_1 + x_2 > 0−3+x1​+x2​>0,此时 y=1y=1y=1;
绿色那些圈圈都满足 −3+x1+x2<0-3+x_1 + x_2 < 0−3+x1​+x2​<0,此时 y=0y=0y=0。

分类成功。


根据上面这个例子,可以总结出,我们要做的事情是:建立合适的 θTx\bm{\theta}^T\boldsymbol{x}θTx 表达式,通过数据集拟合得到确定的参数 θ\bm{\theta}θ,以得到最终的假设函数 hθ(x)h_{\theta}(x)hθ​(x)。
hθ(x)=11+e−θTx(2.3)h_{\bm{\theta}}(\boldsymbol{x}) = \dfrac{1}{1+e^{-\bm{\theta}^T\boldsymbol{x}}} \tag{2.3}hθ​(x)=1+e−θTx1​(2.3)

2.3 代价函数

线性回归中,我们用平方误差函数作为代价函数:J(θ)=1m∑i=1m12(hθ(xi)−yi)2(2.4)J(\bm{\theta})=\frac{1}{m} \sum^{m}_{i=1}\color{red}{ \frac{1}{2}\left( \; h_{\bm{\theta}}\left(\boldsymbol{x}^i\right)- y^i \;\right)^2 } \tag{2.4}J(θ)=m1​i=1∑m​21​(hθ​(xi)−yi)2(2.4)

现在处理的是逻辑回归(分类问题),我们的假设函数 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x)和线性回归的时候不一样了。

如果把直接把式子 (2.3) 的 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 代进去,J(θ)J(\theta)J(θ) 会变成非凸函数 (non-convex):

不能直接应用梯度下降法。因此要做一些改造。

现在把式子 (2.4) 红色的部分称为 “代价” (Cost):
Cost(hθ(xi),yi)=12(hθ(xi)−yi)2\text{Cost}(h_{\bm{\theta}}\left(\boldsymbol{x}^i\right),y^i ) = \color{red}{ \frac{1}{2}\left( \; h_{\bm{\theta}}\left(\boldsymbol{x}^i\right)- y^i \;\right)^2 } Cost(hθ​(xi),yi)=21​(hθ​(xi)−yi)2

改写成这样:
Cost(hθ(x),y)={−log⁡(hθ(x))ify=1−log⁡(1−hθ(x))ify=0(2.5)\text{Cost}(h_{\bm{\theta}}\left(\boldsymbol{x}\right),y ) = \left\{ \begin{array}{cc} -\log(h_{\bm{\theta}}(\boldsymbol{x})) & \text{if} \; y=1 \\ -\log(1-h_{\bm{\theta}}(\boldsymbol{x})) & \text{if} \; y=0 \end{array} \right.\tag{2.5} Cost(hθ​(x),y)={−log(hθ​(x))−log(1−hθ​(x))​ify=1ify=0​(2.5)

怎么解释呢,当我们的样本类别为 y=1y=1y=1 时,我们希望此时 hθ(x)>0.5h_{\bm{\theta}}(\boldsymbol{x})>0.5hθ​(x)>0.5,并且 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 越大越好,以满足像式子 (2.2) 那样的判定条件。

函数 −log⁡(hθ(x))-\log(h_{\bm{\theta}}(\boldsymbol{x}))−log(hθ​(x)) 的图像是这样子的:

因为 log⁡\loglog 函数是单调增的,取负号就单调减了。hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 是个 sigmoid\text{sigmoid}sigmoid 函数,所以它在(0, 1)之间。

这样就可以应用梯度下降了:Cost\text{Cost}Cost 越来越小,hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 越来越大。

y=0y=0y=0 的时候同理。

分开写不好看,把这两种情况合并起来:Cost(hθ(x),y)=−(y⋅log⁡(hθ(x))+(1−y)⋅log⁡(1−hθ(x)))\text{Cost}(h_{\bm{\theta}}\left(\boldsymbol{x}\right),y ) = - \left( \; \textcolor{red}{ y \cdot \log(h_{\bm{\theta}}(\boldsymbol{x})) } + \color{blue}{(1-y) \cdot \log(1-h_{\bm{\theta}}(\boldsymbol{x})) } \;\right) Cost(hθ​(x),y)=−(y⋅log(hθ​(x))+(1−y)⋅log(1−hθ​(x)))
y=1y=1y=1 时,蓝色的消掉了;y=0y=0y=0 时,红色的消掉了。所以和式(2.5)是等价的。

此时代价函数 J(θ)J(\bm{\theta})J(θ) 为:

J(θ)=1m∑i=1mCost(hθ(xi),yi)=−1m[∑i=1myi⋅log⁡(hθ(xi))+(1−yi)⋅log⁡(1−hθ(xi))](2.6)\begin{aligned} J(\bm{\theta}) &=\frac{1}{m} \sum^{m}_{i=1} \text{Cost}(h_{\bm{\theta}}\left(\boldsymbol{x}^i\right),y^i ) \\[1.5em] &=- \frac{1}{m} \left[ \sum^{m}_{i=1} y^i \cdot \log(h_{\bm{\theta}}(\boldsymbol{x}^i)) + {(1-y^i) \cdot \log(1-h_{\bm{\theta}}(\boldsymbol{x}^i))} \right] \end{aligned} \tag{2.6}J(θ)​=m1​i=1∑m​Cost(hθ​(xi),yi)=−m1​[i=1∑m​yi⋅log(hθ​(xi))+(1−yi)⋅log(1−hθ​(xi))]​(2.6)

我们的目标是求: min⁡θJ(θ)\min_\theta J(\bm{\theta})θmin​J(θ)
意思是求出一组参数 θ\bm{\theta}θ,使得代价函数 J(θ)J(\bm{\theta})J(θ) 最小。

最后把 θ\bm{\theta}θ 代入这个假设函数:
hθ(x)=11+e−θTxh_{\bm{\theta}}(\boldsymbol{x}) = \dfrac{1}{1+e^{-\bm{\theta}^T\boldsymbol{x}}} hθ​(x)=1+e−θTx1​

就可以把输入值 x\boldsymbol{x}x 代入 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 进行预测了。

此时函数 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 的输出值实际上是一个概率:P(y=1∣x;θ)P(y=1\;|\; \boldsymbol{x};\bm{\theta})P(y=1∣x;θ)。
它的意思是,在给定参数 θ\bm{\theta}θ 时,输入x\boldsymbol{x}x,y=1y=1y=1 的概率。
(你可以把 y=1y=1y=1 定义为某个类,例如 (图2.1) 的红色叉叉。假如 hθ(x)h_{\bm{\theta}}(\boldsymbol{x})hθ​(x) 输出 0.80.80.8,意思就是 x\boldsymbol{x}x 属于红色叉叉的概率为 80%80\%80%)

2.4 梯度下降

上一小节得到了新的代价函数(式子2.6),它是一个凸函数(convex),现在可以应用梯度下降算法了。

假如参数 θ\bm{\theta}θ 的数量是 jjj,则逐个进行梯度下降和更新:
θj:=θj−α∂∂θjJ(θ)\theta_j := \theta_j - \alpha \frac{\partial}{\partial\theta_j} J(\bm{\theta}) θj​:=θj​−α∂θj​∂​J(θ)

:=:=:= 的意思是把右边的式子算完后,把结果赋值给左边的变量。

当代价函数 J(θ)J(\bm{\theta})J(θ) 不再减小,则优化完成,得到最终的参数 θ\bm{\theta}θ。


除了梯度下降(Gradient descent)算法,还有一些其它的高级优化算法,如:

  • Conjugate gradient(共轭梯度)
  • BFGS
  • L-BFGS

这些方法很强,甚至比梯度下降更优,但是数学原理比较复杂。
你要做的是大概明白它的原理,能用就行了,直接调用第三方库即可使用,尽管各种库的实现效果各不相同。

2.5 多分类

对于多分类问题,例如图示的 3 分类。
做法是选出其中 1 类,剩下的归为一类。这样做一共有 3 种分配法,得到 3 个分类器。
因此每个分类器就成为了 2 分类问题,可以用前面讲的方法进行训练。

预测的时候,每个分类器都预测一次,取得分最高的那个结果,作为最终的预测结果。

线性回归(Linear Regression)和逻辑回归(Logistic Regression)相关推荐

  1. 线性回归 Linear Regression 与逻辑回归 Logistic Regression

    1 线性回归 Linear Regression 理论 线性回归模型研究多个变量x与y之间的关系,通过回归模型预测位置样本的数据. 假设函数 损失函数 损失函数寻优,最小二乘法 即: 注:最小二乘法需 ...

  2. 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)

    之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...

  3. 逻辑回归(Logistic Regression)简介及C++实现

    逻辑回归(Logistic Regression):该模型用于分类而非回归,可以使用logistic sigmoid函数( 可参考:http://blog.csdn.net/fengbingchun/ ...

  4. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”

    Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...

  5. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

  6. 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的

    逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...

  7. 逻辑回归(logistic regression)的本质——极大似然估计

    文章目录 1 前言 2 什么是逻辑回归 3 逻辑回归的代价函数 4 利用梯度下降法求参数 5 结束语 6 参考文献 1 前言 逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的.我会争 ...

  8. CS229学习笔记(3)逻辑回归(Logistic Regression)

    1.分类问题 你要预测的变量yyy是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法. 从二元的分类问题开始讨论. 我们 ...

  9. 札记_ML——《统计学习方法》逻辑回归logistic regression)

    统计学习方法:五. 逻辑回归logistic regression 逻辑回归logistic regression Logistic的起源 1).概念logistic回归又称logistic回归分析, ...

  10. 逻辑回归(Logistic Regression

    6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 y y y 是离散的 ...

最新文章

  1. 数十篇推荐系统论文被批无法复现:源码、数据集均缺失,性能难达预期
  2. 模型的跨界:我拿Transformer去做目标检测,结果发现效果不错
  3. Linux对用户态的动态内存管理
  4. 泊松分布E(X^2)
  5. 浅谈WebGIS开放数据(矢量数据)
  6. 计算机英语词汇的特点,电子商务英语词汇都有哪些特点
  7. 图形学教程Lecture 13: RayTracing1(Whitted-Style Ray Tracing)知识点总结
  8. .NET 6 Preview5+VS2022实战千万并发秒杀项目,帅爆了(附源码)
  9. 测试色谱柱柱效的软件,高效液相色谱柱柱效测定
  10. JQuery 添加元素appendf 后\prepend前,before 前\after 后,删除元素remove\empty
  11. python列表的内置方法_python 基础之列表切片内置方法
  12. fw313r手机登录_fw313r路由器设置
  13. 驱动精灵(Driver Genius Professional Edition 2007) v7.1.622 完美注册版(可升级)
  14. html 圣杯布局 高度,圣杯布局——针对前端小白篇
  15. ietester测试本地html,网站浏览器兼容测试软件–IETester
  16. DVE C++ 中批量注释快捷键 Ctrl + /
  17. 挂耳式蓝牙耳机性价比推荐,几款高性能的耳机分享
  18. word页码与行号怎么统一设置字体
  19. JAVA中的Xms、Xmx、MetaspaceSize、MaxMetaspaceSize都是什么意思?
  20. 题目描述:编写一个SQL查询,删除学生表中,学号重复的学生信息,重复的学生信息中只保留id最大的那个

热门文章

  1. Unite’17 开发者大会经验分享
  2. java client是什么_“java-server”和“java-client”之间的真正区别?
  3. Cointelegraph中文HUB | Roxe:全球支付网络的倡导者和领先者暨团队亚太见面会
  4. 零基础学习3D游戏建模
  5. 小米手机真的是抢手货吗?小米手机里就没有流氓软件吗?看看社区老百姓的看法
  6. 软工结对编程之二——UI设计(10061191洪虹10061162刘俊伟)
  7. MFC程序初始化过程仿真(参考了侯俊杰的《深入浅出MFC》)
  8. 安装Openfiler存储
  9. 模态分析 Modal analysis
  10. SAS学习之变量的输出格式