栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习——算法进阶(二)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习——算法进阶(二)

一、回归分析的基本概念

文章目录
  • 一、回归分析的基本概念
    • 1.回归的概念
    • 2.极大似然估计和最小二乘法
    • 4.正则化稀疏问题
    • 3.线性回归的惩罚项
  • 二、SGD梯度下降算法
    • 计算梯度的方向
  • 三、线性回归的进一步分析

1.回归的概念

回归是一种用于金融、投资和其他学科的统计方法,它试图确定一个因变量****(通常用 Y 表示)与一系列其他变量**(称为自变量)之间关系的强度和特征。

2.极大似然估计和最小二乘法

y ( i ) = θ T x ( i ) + ε ( i ) (1) y^{(i)}=theta^Tx^{(i)}+varepsilon^{(i)}tag1 y(i)=θTx(i)+ε(i)(1)

其中 ε ( i ) varepsilon^{(i)} ε(i)表示的误差项,是独立同分布的,且服从均值为0,方差为 σ 2 sigma^2 σ2的高斯分布。

原因:中心极限定理

根据 ε ( i ) ∼ N ( 0 , σ 2 ) varepsilon^{(i)}sim N(0,sigma^2) ε(i)∼N(0,σ2),我们给出误差的似然函数如下:

对似然函数取对数,求满足对数似然函数最大的参数 θ theta θ的解。

下面给出 θ theta θ解析式的求解过程:
首先,将 M M M个 N N N维样本组成矩阵 X X X:

  1. X X X的每一行表示一个样本所有的信息,共有 M M M行,即认为总共有 M M M个样本。
  2. X X X的每一列表示其中一个样本的所有特征值。
    X = ( X 1 , 1 X 1 , 2 . . . X 1 , n X 2 , 1 X 2 , 2 . . . X 2 , n . . . . . . . . . . . . X m , 1 X m , 2 . . . X m , n ) (2) X=begin{pmatrix} X_{1,1}&X_{1,2} &...& X_{1,n}\ X_{2,1}&X_{2,2} &...&X_{2,n} \ ... &...&...&... \ X_{m,1}&X_{m,2} &...&X_{m,n} \ end{pmatrix} tag2 X=⎝ ⎛​X1,1​X2,1​...Xm,1​​X1,2​X2,2​...Xm,2​​............​X1,n​X2,n​...Xm,n​​⎠ ⎞​(2)

    接下来,我们讨论参数的解析式。
    θ = ( X T X ) − 1 X T y (3) theta=(X^TX)^{-1}X^Tytag3 θ=(XTX)−1XTy(3)
    得出式(3)的前提必须要满足 X T X X^TX XTX是可逆的。
    如果 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1不存在,则需要想办法将 X T X X^TX XTX加点约束转换成可逆矩阵,最简单的就是在该矩阵的斜对角线添加一点点非零的量。
    θ = ( X T X + λ I ) − 1 X T y (4) theta=(X^TX+lambda I)^{-1}X^Tytag4 θ=(XTX+λI)−1XTy(4)
    X T X X^TX XTX是半正定的,添加了一项 λ I lambda I λI之后, X T X + λ I X^TX+lambda I XTX+λI肯定是正定矩阵, λ lambda λ取任意大于零的实数。
4.正则化稀疏问题


这个很直观,当参数 θ theta θ是二维的时候可以画出 J ( θ ) J(theta) J(θ)求解过程中的决策图,左边是LASSO约束,可以直接舍去 w 1 w^1 w1,只保留 w 2 w^2 w2对应的特征就好;右边是L2正则约束, w 1 w^1 w1和 w 2 w^2 w2两个特征都要保留,这也就是为什么说LASSO可以达到稀疏的目的。

3.线性回归的惩罚项

我们前面已经给出了线性回归的目标函数为:
J ( θ ⃗ ) = 1 2 ∑ i = 1 m [ ( h θ ⃗ ( x ( i ) ) − y ( i ) ] 2 (5) J(vec{theta}) =frac12sum_{i=1}^{m}[(h_{vec{theta}}(x^{(i)})-y^{(i)}]^2tag5 J(θ )=21​i=1∑m​[(hθ ​(x(i))−y(i)]2(5)
将目标函数添加平方和损失之后:
J ( θ ⃗ ) = 1 2 ∑ i = 1 m [ ( h θ ⃗ ( x ( i ) ) − y ( i ) ] 2 + λ ∑ i = 1 n θ j 2 (6) J(vec{theta}) =frac12sum_{i=1}^{m}[(h_{vec{theta}}(x^{(i)})-y^{(i)}]^2+lambdasum_{i=1}^{n}theta_j^2tag6 J(θ )=21​i=1∑m​[(hθ ​(x(i))−y(i)]2+λi=1∑n​θj2​(6)
其实,这个加平方和的约束我们是认为 θ theta θ是符合高斯分布的,也就是说我们在估计参数 θ theta θ之前,给该参数指定了一个高斯先验分布,也称为L2正则化,简称为 L 2 − n o r m L2-norm L2−norm。

当然还有LASSO回归(Least Absolute Shrinkage and selection Operator),对应的是Laplace先验,即将 θ j 2 theta^2_j θj2​改为 ∣ θ j ∣ |theta_j| ∣θj​∣, L 1 − n o r m L1-norm L1−norm。

J ( θ ⃗ ) = 1 2 ∑ i = 1 m [ ( h θ ⃗ ( x ( i ) ) − y ( i ) ] 2 + λ ∑ i = 1 n ∣ θ j ∣ (7) J(vec{theta}) =frac12sum_{i=1}^{m}[(h_{vec{theta}}(x^{(i)})-y^{(i)}]^2+lambdasum_{i=1}^{n}|theta_j|tag7 J(θ )=21​i=1∑m​[(hθ ​(x(i))−y(i)]2+λi=1∑n​∣θj​∣(7)
还有个Elastic Net的概念,就是将L1正则和L2正则结合起来考虑,一般很少用。
J ( θ ⃗ ) = 1 2 ∑ i = 1 m [ ( h θ ⃗ ( x ( i ) ) − y ( i ) ] 2 + λ ( ρ ∑ i = 1 n ∣ θ j ∣ + ( 1 − ρ ) ∑ i = 1 n θ j 2 ) (8) J(vec{theta}) =frac12sum_{i=1}^{m}[(h_{vec{theta}}(x^{(i)})-y^{(i)}]^2+lambda(rhosum_{i=1}^{n}|theta_j|+(1-rho)sum_{i=1}^{n}theta_j^2)tag8 J(θ )=21​i=1∑m​[(hθ ​(x(i))−y(i)]2+λ(ρi=1∑n​∣θj​∣+(1−ρ)i=1∑n​θj2​)(8)
如果不好理解正则项给定的原因,可以联想到我们的目的是为了防止过拟合,也就是说不需要太精确了,我们限制住某些特征方向上的系数,不让它太大,就比如 θ theta θ有两个分量为899.99-899.88或者1.99-1.88,肯定是后者要更好一点,因为波动要小一点,前者带来的波动太大也就是很可能发生过拟合现象,后者的波动较小,鲁棒性要好一些。

二、SGD梯度下降算法

第一步:随机初始化 θ theta θ;
第二步:沿着负梯度方向迭代,更新后的 θ theta θ使得 J ( θ ) J(theta) J(θ)更小。
θ = θ − α ∂ J ( θ ) ∂ θ (9) theta=theta-alphafrac{partial J(theta)}{partial theta}tag9 θ=θ−α∂θ∂J(θ)​(9)
α alpha α表示的是学习率、步长。

计算梯度的方向

三、线性回归的进一步分析

y = θ 0 + θ 1 x + θ 2 x 2 (10) y =theta_0+theta_1x+theta_2x^2tag{10} y=θ0​+θ1​x+θ2​x2(10)
其实这个问题很好解决,因为这个 x x x表示的是数据某一维度的特征,我们可以对数据特征多加一列就好了,相当于数据有一列特征为 x i x_i xi​,我们人为地添加一项 x i 2 x_i^2 xi2​到原始的数据集中去,看看最后对应的这一项 θ i theta_i θi​的系数大不大,如果很显著就保留,不显著就舍去。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025597.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号