IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 机器学习入门之线性回归与逻辑回归 -> 正文阅读

[数据结构与算法]机器学习入门之线性回归与逻辑回归

前言

本文为吴恩达机器学习课程的笔记系列第一篇,主要关于线性回归与逻辑回归的详细推导,以及介绍两者之间的区别。


线性回归 LinearRegression

单元线性回归

属于回归问题,我们先来看代价函数的定义。

代价函数 cost function

线性平方代价函数:

h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_0+\theta_1x hθ?(x)=θ0?+θ1?x

建模误差平方和:

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) 2 J(\theta_0,\theta_1)=\dfrac{1}{2m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ0?,θ1?)=2m1?i=1m?(hθ?(x(i))?y(i))2

几个概念:

  • 误差平方和(Sum of the Squared Errors,即SSE):用来表明函数拟合的好坏

  • 均方误差(MSE):,指参数估计值与参数真值之差的平方的期望值。

梯度下降 gradient descent

基于经典的下山问题,即当你在山上的某一点时,因如何在山上选择最佳的下山方向,以及每一步因走多大。梯度下降目的是用来求代价函数最小值。

算法思想:

  • 初始选择一个参数组合,计算代价函数
  • 接着寻找得使得代价函数值下降最多的参数组合,并同样计算代价函数
  • 持续上述过程,直至目标值为局部最小值

批量梯度下降(batch gradient descent)

公式(假设两个参数): θ j = θ j ? α ? ? θ j J ( θ 0 , θ j ) \theta_j = \theta_j - \alpha\dfrac{\partial}{\partial\theta_j}J(\theta_0,\theta_j) θj?=θj??α?θj???J(θ0?,θj?)

  • α \alpha α 为学习率(learing rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
  • 对于多个 θ \theta θ ,必须同步更新值,学习率也是会更新的,因为越接近极值点,我们的学习率也就是下山的步长应该越小,这样的结果才越准确。实际上就是要偏导数为0,使之收敛于局部最优解。

如何选择 α \alpha α 值?

  • 基于上式,我们可以看到若 α \alpha α 太小,每一次的步伐非常小,一点一点移动接近最低点,这样一次迭代花费时间会很久。
  • α \alpha α 太大,那么移动步伐过大,可能会越过最低点,下一次迭代移动又再越一次,一次次越过最低点,这样就会导致无法收敛。
  • 一般实际应用中,选择一组区间如 [ 0.01 , 0.1 , 1 , 10 ] [0.01,0.1,1,10] [0.01,0.1,1,10] 这样去多次尝试,再根据结果进一步更选择合适的区间。

在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采取更小的幅度,这是因为当我们接近局部最低点时,很显然在局部最低时导数等于零,所以当我们接近局部最低时,导数值会自动变得越来越小,所以梯度下降将自动采取较小的幅度,也就是 α \alpha α 没必要在此时另外减小了。

梯度下降的线性回归

梯度下降算法:

R e p e a t ?? u n t i l ?? c o n v e r g e n c e { θ j = θ j ? α ? ? θ 0 J ( θ 0 , θ 1 ) f o r ?? j = 0 ?? a n d ?? 1 } \begin{aligned} &Repeat\;until\;convergence\{ \\ & \quad\theta_j=\theta_j-\alpha\dfrac{\partial}{\partial\theta_0}J(\theta_0,\theta_1) \\ & \quad for\;j=0\;and\;1\\ &\} \end{aligned} ?Repeatuntilconvergence{θj?=θj??α?θ0???J(θ0?,θ1?)forj=0and1}?

对代价函数求导:

? ? θ j J ( θ 0 , θ 1 ) = ? ? θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) 2 \dfrac{\partial}{\partial\theta_j}J(\theta_0,\theta_1)=\dfrac{\partial}{\partial\theta_j}\frac{1}{2m}\sum\limits_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2 ?θj???J(θ0?,θ1?)=?θj???2m1?i=1m?(hθ?(x(i))?y(i))2

j = 0 , ? ? θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) , θ 0 = θ 0 ? α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) j=0,\quad\dfrac{\partial}{\partial\theta_0}J(\theta_0,\theta_1)=\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)}),\quad\theta_0=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)}) j=0,?θ0???J(θ0?,θ1?)=m1?i=1m?(hθ?(x(i))?y(i)),θ0?=θ0??αm1?i=1m?(hθ?(x(i))?y(i))

j = 1 , ? ? θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) ? x ( i ) , θ 1 = θ 1 ? α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) ? x ( i ) j=1,\quad\dfrac{\partial}{\partial\theta_1}J(\theta_0,\theta_1)=\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)},\quad\theta_1=\theta_1-\alpha\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})\cdot x^{(i)} j=1,?θ1???J(θ0?,θ1?)=m1?i=1m?(hθ?(x(i))?y(i))?x(i),θ1?=θ1??αm1?i=1m?(hθ?(x(i))?y(i))?x(i)

我们也可以利用**“最小二乘法”**来对模型求解。在线性回归中,最小二乘法就是试图找到一条直线,是所有样本到直线上的欧式距离之和最小,也就是模型中的 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0?,θ1?) 最小。

解法:分别对 θ 0 , θ 1 \theta_0,\theta_1 θ0?,θ1? 求导并令所求式子为0,从而解出 θ 0 , θ 1 \theta_0,\theta_1 θ0?,θ1? 最优解。

多元线性回归

其实就是 单特征=>多维特征,用向量表示

假设特征数量为 n n n ,特征矩阵如下:

X = x ( 1 ) : x ( 2 ) : x ( 3 ) : . . . 特征 1 特征 2 特征 3 特征 4 1 0.2 41 6 2 0.6 35 4 5 0.5 60 8 . . . . . . . . . . . . = [ x ( 1 ) T x ( 2 ) T x ( 3 ) T . . . x ( n ) T ] X=\begin{matrix}\\\\x^{(1)}:\\x^{(2)}:\\x^{(3)}:\\...\end{matrix}\begin{matrix}\\\text{特征}1&\text{特征}2&\text{特征}3&\text{特征}4\\1&0.2&41&6\\2&0.6&35&4\\5&0.5&60&8\\...&...&...&...\end{matrix}=\begin{bmatrix}x^{(1)^T}\\x^{(2)^T}\\x^{(3)^T}\\...\\x^{(n)^T}\\\end{bmatrix} X=x(1):x(2):x(3):...?特征1125...?特征20.20.60.5...?特征3413560...?特征4648...?=????????x(1)Tx(2)Tx(3)T...x(n)T?????????

x ( i ) x^{(i)} x(i)代表第 i i i 个特征实例,也就是特征矩阵的第 i i i 行,是一个向量,如 x ( 2 ) = [ 2 0.6 35 4 ] x^{(2)}=\begin{bmatrix}2\newline0.6\newline35\newline4\end{bmatrix} x(2)=[20.6354?]

多变量的 h h h 表示为:

h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 + . . . + θ n x n h_{\theta}(x)=\theta_0+\theta_1x+\theta_2x_2+...+\theta_nx_n hθ?(x)=θ0?+θ1?x+θ2?x2?+...+θn?xn?

可以看出,参数为一个 n + 1 n+1 n+1 维的向量,特征矩阵的维度为 m ? ( n + 1 ) m*(n+1) m?(n+1),为了计算方便,我们引入 x 0 = 1 x_0=1 x0?=1,即公式变为:

h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta}(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ?(x)=θ0?x0?+θ1?x1?+θ2?x2?+...+θn?xn?

θ = [ θ 0 θ 1 . . . θ n ] \theta = \begin{bmatrix}\theta_0\newline\theta_1\newline...\newline\theta_n\end{bmatrix} θ=[θ0?θ1?...θn??]

故进一步简化: h θ ( x ) = θ T x h_{\theta}(x)=\theta^Tx hθ?(x)=θTx

梯度下降

在单元线性回归的梯度下降基础上拓展,

? ? θ j J ( θ j ) = ? ? θ j 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) 2 \dfrac{\partial}{\partial\theta_j}J(\theta_j)=\dfrac{\partial}{\partial\theta_j}\frac{1}{2m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2 ?θj???J(θj?)=?θj???2m1?i=1m?(hθ?(x(i))?y(i))2

特征缩放:放缩每个特征,大约至 [ ? 1 , 1 ] [-1,1] [?1,1]

均值归一化(Mean normalization):就是标准化

  • x i = x i ? μ i m a x ? m i n x_i = \dfrac{x_i-\mu_i}{max-min} xi?=max?minxi??μi??
  • i > 1 , 因为 x 0 = 1 i>1,\text{因为}x_0=1 i>1,因为x0?=1

正规方程

假设训练集结果为向量 y y y ,引入 x 0 x_0 x0? 后,特征矩阵也可写为:

X = 特征 1 特征 2 特征 3 特征 4 1 0.2 41 6 2 0.6 35 4 5 0.5 60 8 . . . . . . . . . . . . = 1 x ( 1 ) T 1 x ( 2 ) T 1 x ( 3 ) T 1 . . . X=\begin{matrix}\\\text{特征}1&\text{特征}2&\text{特征}3&\text{特征}4\\1&0.2&41&6\\2&0.6&35&4\\5&0.5&60&8\\...&...&...&...\end{matrix}=\begin{matrix}\\\\1&x^{(1)^T}\\1&x^{(2)^T}\\1&x^{(3)^T}\\1&...\end{matrix} X=特征1125...?特征20.20.60.5...?特征3413560...?特征4648...?=1111?x(1)Tx(2)Tx(3)T...?

将上述的代价函数写作矩阵形式:

J ( θ ) = 1 2 m ( X θ ? y ) T ( X θ ? y ) J(\theta)=\frac{1}{2m}(X\theta-y)^T(X\theta-y) J(θ)=2m1?(Xθ?y)T(Xθ?y)

实际上就是求解使得 J ( θ ) J(\theta) J(θ) 最小的 参数 θ \theta θ 值,即如下表示:

θ = a r g m i n ( X θ ? y ) T ( X θ ? y ) \theta = argmin(X\theta-y)^T(X\theta-y) θ=argmin(Xθ?y)T(Xθ?y)

E θ = ( X θ ? y ) T ( X θ ? y ) E_{\theta}=(X\theta-y)^T(X\theta-y) Eθ?=(Xθ?y)T(Xθ?y) ,对 θ \theta θ 求导可解得:

θ = ( X T X ) ? 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)?1XTy

梯度下降与正规方程的比较

梯度下降正规方程
需要选择学习率 α \alpha α不需要学习率 α \alpha α
需要进行多步迭代不需要进行迭代,矩阵运算仅需一行代码就可完成
多特征下,适应性较好矩阵逆的计算复杂度为 O( n 3 n^3 n3),所以如果特征维度太高(特别是超过 10000 维),运算代价大,不宜再考虑该方法
能应用到一些更加复杂的算法中,适用于各种类型的模型矩阵需要可逆,并且,对于一些更复杂的算法,该方法无法工作。只适用于线性回归模型,不适合逻辑回归模型等其他模型

逻辑回归 Logistic Regression

属于分类问题。对于分类问题,数据一般是离散的,应用线性回归的方法处理分类问题并不是一个很好的方法,所以下面介绍一种处理分类问题的经典算法——逻辑回归。

逻辑回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计,使得输出的变量范围始终在0和1之间。下面以二分类问题为例介绍该算法。

逻辑回归的分布函数采用的是 S i g m o i d Sigmoid Sigmoid 函数: g ( z ) = 1 1 + e ? z g(z)=\dfrac{1}{1+e^{-z}} g(z)=1+e?z1? ,该函数图像如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cb4IBXex-1628157342810)(/imgs/Sigmoid函数图像.jpg)]

可以看出该函数将输入数值转换至概率值,所以我们借此可构造逻辑回归模型的假设函数是:

h θ ( x ) = g ( θ T x ) = 1 1 + e ? θ T x h_{\theta}(x)=g(\theta^{T}x)=\dfrac{1}{1+e^{-\theta^{T}x}} hθ?(x)=g(θTx)=1+e?θTx1?

其中: x x x 代表特征向量, θ \theta θ 为我们要求取的参数。

P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1|x;\theta)=h_{\theta}(x) P(y=1x;θ)=hθ?(x)

即表示给定 x x x θ \theta θ 的条件下,预测 y = 1 y=1 y=1 的概率

可以得到决策函数:

y ( i ) = 1 , if? P ( y = 1 ∣ x ) > 0.5 y(i)=1, \text{if }P(y=1|x)>0.5 y(i)=1,if?P(y=1x)>0.5

0.5 0.5 0.5 就是我们选择的阈值,当然可以根据实际情况选择其它数值,比如对正例的预测性高一点,就可以大于0.5

决策边界

这个概念的介绍引用吴恩达教授的课程ppt

线性决策边界

线性决策边界
非线性边界
请添加图片描述

代价函数

定义逻辑回归的代价函数为:

J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) ? y ( i ) ) J(\theta)=\frac{1}{m}\sum\limits_{i=1}^m Cost(h_{\theta}(x^{(i)})-y^{(i)}) J(θ)=m1?i=1m?Cost(hθ?(x(i))?y(i))

其中:

C o s t ( h θ ( x ) , y ) = { ? l o g ( h θ ( x ) ) y = 1 时 ? l o g ( 1 ? h θ ( x ) ) y = 0 时 Cost(h_{\theta}(x),y)=\begin{cases}-log(h_{\theta}(x))&y=1\text{时} \\-log(1-h_{\theta}(x))&y=0\text{时}\end{cases} Cost(hθ?(x),y)={?log(hθ?(x))?log(1?hθ?(x))?y=1y=0?

C o s t ( h θ ( x ) , y ) Cost(h_{\theta}(x),y) Cost(hθ?(x),y) 函数的特点是:

  • 当实际的 y = 1 y=1 y=1 时, h θ ( x ) = 1 h_{\theta}(x)=1 hθ?(x)=1 时代价为 0,当 h θ ( x ) h_{\theta}(x) hθ?(x) 不为 1 1 1 时,代价随着 h θ ( x ) h_{\theta}(x) hθ?(x) 变小而变大;
  • 当实际的 y = 0 y=0 y=0 时, h θ ( x ) = 0 h_{\theta}(x)=0 hθ?(x)=0 时代价为 0,当 h θ ( x ) h_{\theta}(x) hθ?(x) 不为 0 0 0 时,代价随着 h θ ( x ) h_{\theta}(x) hθ?(x) 变大而变大;

图像如下:
在这里插入图片描述可进一步化简:

J ( θ ) = ? 1 m ∑ i = 1 m [ y ( i ) l o g ( h θ ( x ) ) + ( 1 ? y ( i ) ) l o g ( 1 ? h θ ( x ) ) ] J(\theta)=-\frac{1}{m}\sum\limits_{i=1}^m [y^{(i)}log(h_{\theta}(x))+(1-y^{(i)})log(1-h_{\theta}(x))] J(θ)=?m1?i=1m?[y(i)log(hθ?(x))+(1?y(i))log(1?hθ?(x))]

使用梯度下降

对代价函数 J ( θ ) J(\theta) J(θ) 求导,可得

? ? θ J ( θ ) = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) x ( i ) \dfrac{\partial}{\partial\theta}J(\theta)=\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})x^{(i)} ?θ??J(θ)=m1?i=1m?(hθ?(x(i))?y(i))x(i)

同样对 θ j = θ j ? α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) ? y ( i ) ) \theta_j=\theta_j-\alpha\frac{1}{m}\sum\limits_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)}) θj?=θj??αm1?i=1m?(hθ?(x(i))?y(i)) 不停更新每个参数值,直至求出使函数值最小化,也就是导数值趋于 0 0 0 θ \theta θ 即可。

多分类问题

通常采用 One-vs-All,亦称 One-vs-the Rest 方法来实现多分类,其将多分类问题转化为了多次二分类问题。其实就是轮流把某一特征视为正样本,其余统统视为负样本,然后同二分类一样进行模型训练。若样本特征数为 n n n ,总共会获得 n ? 1 n-1 n?1 个决策边界。

例:给定输入 x x x,分别计算 h θ ( i ) ( x ) , i = 1 , 2 , . . . , n h_{\theta}^{(i)}(x),i=1,2,...,n hθ(i)?(x),i=1,2,...,n ,然后进行比较,若 h θ ( k ) ( x ) h_{\theta}^{(k)}(x) hθ(k)?(x) 最接近 1 1 1 ,则预测 x x x 属于 k k k 类。

过拟合与欠拟合

什么是过拟合?

欠拟合(underfitting):拟合程度不高,数据距离拟合曲线较远

过拟合(overfitting):过度拟合,貌似拟合几乎每一个数据,但是丢失了信息规律。在机器学习中,经常出现训练集拟合程度过高,过于精确,这样的模型并无实际预测意义。

正则化

上述提到了存在的过拟合问题,那么解决过拟合的方法一般有:

  • 减少特征数。这样显然会破坏特征的完整性。
  • 保留特征,但是弱化一些高阶项的系数 θ i \theta_i θi? 。我们把这种弱化称之为对参数 θ i \theta_i θi? 的惩罚。

所谓正则化,就是弱化高阶特征的过程。

线性回归中的正则化

在线性回归的基础上,我们引入参数 λ \lambda λ 来实现正则化惩罚。将代价函数改为:

J ( θ ) = 1 2 m ∑ i = 1 m [ ( h θ ( x ( i ) ) ? y ( i ) ) 2 + λ ∑ i = 1 n θ j 2 ] = 1 2 m [ ( X θ ? y ) T ( X θ ? y ) + λ ∑ j = 1 n θ j 2 ] J(\theta)=\frac{1}{2m}\sum\limits_{i=1}^m [(h_{\theta}(x^{(i)})-y^{(i)})^2+\lambda\sum\limits_{i=1}^{n}\theta_j^2 ]\\ =\frac{1}{2m}[(X\theta-y)^T(X\theta-y)+\lambda\sum\limits_{j=1}^{n}\theta_j^2] J(θ)=2m1?i=1m?[(hθ?(x(i))?y(i))2+λi=1n?θj2?]=2m1?[(Xθ?y)T(Xθ?y)+λj=1n?θj2?]

λ \lambda λ 越大,正则化惩罚力度越大,就越能避免过拟合。当然也不能太大,不然参数的趋于0,最后的图像可能是一条直线。

同时,梯度下降中也发生相应变化:

R e p e a t ?? u n t i l ?? c o n v e r g e n c e { θ 0 = θ 0 ? α 1 m ∑ i = 1 m [ ( h θ ( x ( i ) ) ? y ( i ) ) x 0 ( i ) ] θ j = θ j ? α 1 m ∑ i = 1 m [ ( h θ ( x ( i ) ) ? y ( i ) ) x ( i ) + λ m θ j ] f o r ? j = 1 , 2 , . . , n } \begin{aligned}&Repeat\;until\;convergence\{ \\ & \quad \theta_0=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^m [(h_{\theta}(x^{(i)})-y^{(i)})x_0^{(i)}] \\ & \quad \theta_j=\theta_j-\alpha\frac{1}{m}\sum\limits_{i=1}^m [(h_{\theta}(x^{(i)})-y^{(i)})x^{(i)} + \frac{\lambda}{m}\theta_j]\\ & \quad for \ j=1,2,..,n\\ &\}\end{aligned} ?Repeatuntilconvergence{θ0?=θ0??αm1?i=1m?[(hθ?(x(i))?y(i))x0(i)?]θj?=θj??αm1?i=1m?[(hθ?(x(i))?y(i))x(i)+mλ?θj?]for?j=1,2,..,n}?

可进一步简化为:

θ j = θ j ( 1 ? α λ m ) ? α 1 m ∑ i = 1 m [ h θ ( x ( i ) ) ? y ( i ) ] x j ( i ) \theta_j=\theta_j(1?\alpha\dfrac{\lambda}{m})?\alpha\dfrac{1}{m}\sum\limits_{i=1}^{m}[h_{\theta}(x^{(i)})?y^{(i)}]x^{(i)}_j θj?=θj?(1?αmλ?)?αm1?i=1m?[hθ?(x(i))?y(i)]xj(i)?

可以看出,正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令 θ \theta θ 值减少了一个额外的值,也就是梯度下降中每次更新 θ \theta θ 的同时也会减小 θ \theta θ 值。

若用正规方程,则同样可以求解,方法如下:

θ = ( X T X + λ [ 0 . . . . . . 0 0 1 . . . 0 . . . . . . . . . . . . 0 0 . . . 1 ] ) ? 1 X T y \theta= (X^TX+\lambda \begin{bmatrix}0&...&...&0\\0&1&...&0\\...&...&...&...\\0&0&...&1\end{bmatrix})^{-1}X^Ty θ=(XTX+λ?????00...0?...1...0?............?00...1??????)?1XTy

逻辑回归中的正则化

同样对于逻辑回归,我们也给代价函数增加一个正则化的表达式,得到代价函数:

J ( θ ) = 1 m ∑ i = 1 m [ ? y ( i ) l o g ( h θ ( x ) ) ? ( 1 ? y ( i ) ) l o g ( 1 ? h θ ( x ) ) ] + λ 2 m ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{m}\sum\limits_{i=1}^m [-y^{(i)}log(h_{\theta}(x))-(1-y^{(i)})log(1-h_{\theta}(x))]+\frac{\lambda}{2m}\sum\limits_{j=1}^{n}\theta_j^2 J(θ)=m1?i=1m?[?y(i)log(hθ?(x))?(1?y(i))log(1?hθ?(x))]+2mλ?j=1n?θj2?

同样得出梯度下降算法为:

R e p e a t ?? u n t i l ?? c o n v e r g e n c e { θ 0 = θ 0 ? α 1 m ∑ i = 1 m [ ( h θ ( x ( i ) ) ? y ( i ) ) x 0 ( i ) ] θ j = θ j ? α 1 m ∑ i = 1 m [ ( h θ ( x ( i ) ) ? y ( i ) ) x ( i ) + λ m θ j ] f o r ? j = 1 , 2 , . . , n } \begin{aligned}&Repeat\;until\;convergence\{ \\ & \quad \theta_0=\theta_0-\alpha\frac{1}{m}\sum\limits_{i=1}^m [(h_{\theta}(x^{(i)})-y^{(i)})x_0^{(i)}] \\ & \quad \theta_j=\theta_j-\alpha\frac{1}{m}\sum\limits_{i=1}^m [(h_{\theta}(x^{(i)})-y^{(i)})x^{(i)} + \frac{\lambda}{m}\theta_j]\\ & \quad for \ j=1,2,..,n\\ &\}\end{aligned} ?Repeatuntilconvergence{θ0?=θ0??αm1?i=1m?[(hθ?(x(i))?y(i))x0(i)?]θj?=θj??αm1?i=1m?[(hθ?(x(i))?y(i))x(i)+mλ?θj?]for?j=1,2,..,n}?

注意, θ 0 \theta_0 θ0? 是不参与其中的任何一个正则化的。

小结

线性回归与逻辑回归的区别

线性回归与逻辑回归都是一种广义线性模型(generalized linear model)。线性回归假设因变量 y 服从高斯分布,而逻辑回归假设因变量 y 服从伯努利分布。 线性回归是回归任务,逻辑回归是分类任务。

逻辑回归与线性回归虽然代价函数求导后看起来形式一样,但是二者的假设函数 h θ ( x ) h_{\theta}(x) hθ?(x) 是不同的。

  • 线性回归: h θ ( x ) = θ T x h_{\theta}(x)=\theta^{T}x hθ?(x)=θTx
  • 逻辑回归: h θ ( x ) = g ( θ T x ) h_{\theta}(x)=g(\theta^{T}x) hθ?(x)=g(θTx) ,其中 g ( z ) g(z) g(z) S i g m o i d Sigmoid Sigmoid 函数

附上课后作业的代码实现(github):

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 21:13:51  更:2021-08-06 21:14:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 2:18:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计