机器学习西瓜书之线性回归

这篇具有很好参考价值的文章主要介绍了机器学习西瓜书之线性回归。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、一元线性回归

1.1 算法原理

目的:仅仅通过一个变量预测因变量
举个例子:仅仅通过发量判断程序员水平
此时表示函数:

y = ω \omega ωx + b

1.2 线性回归中的估计

1.2.1 最小二乘估计

目的:基于军方误差最小化来进行模型求解的方法:
对于函数 y = ω \omega ωx + b ,我们定义如下公式求解误差:

E ( w , b ) = ∑ i = 1 m ( y i − f ( x i ) ) 2 = ∑ i = 1 m ( y i − ( w x i + b ) ) 2 = ∑ i = 1 m ( y i − w x i − b ) 2 \begin{aligned} E_{(w,b)}& =\sum_{i=1}^{m}\left(y_i-f(x_i)\right)^2 \\ &=\sum_{i=1}^m\left(y_i-(wx_i+b)\right)^2 \\ &=\sum_{i=1}^m\left(y_i-wx_i-b\right)^2 \end{aligned} E(w,b)=i=1m(yif(xi))2=i=1m(yi(wxi+b))2=i=1m(yiwxib)2

从几何角度理解就是当前数据点的y坐标值跟用于拟合的函数上同横坐标对应的纵坐标的差值的平方。

1.2.2 极大似然估计

目的:用于估计概率分布的参数值,个人感觉有点像生物学中的抽样调查。
举个例子:要调查学校中的雌性生物雄性生物的比例,并不是将所有生物都捉起来,而是抽取其中的一部分进行统计。
公式如下:

L ( θ ) = ∏ i = 1 n P ( x i ; θ ) L(\theta)=\prod_{i=1}^nP(x_i;\theta) L(θ)=i=1nP(xi;θ)

其中 θ \theta θ是未知数,这个概率是关于 θ \theta θ的函数,称L( θ \theta θ)为样本的似然函数。使得函数取到最大值 θ ∗ \theta^* θ就是 θ \theta θ的估计值。

1.3 求解 ω \omega ω 和 b

大家都知道机器学习问题主要解决的就是优化问题,由此衍生出来的数学理论目的也是求解优化问题。

先验知识

凸集:集合 D ⊂ R n D\subset\mathbb{R}^n DRn,如果对任意的 x , y ∈ D x,\boldsymbol{y}\in D x,yD与任意的 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1], 有 α x + ( 1 − α ) y ∈ D \alpha\boldsymbol{x}+(1-\alpha)\boldsymbol{y}\in D αx+(1α)yD
梯度:梯度 (多元函数的一阶导数) : 设n元函数 f ( x ) f(\boldsymbol{x}) f(x)对自变量 x = ( x 1 , x 2 , . . . , x n ) T \boldsymbol{x}=(x_1,x_2,...,x_n)^{\mathrm{T}} x=(x1,x2,...,xn)T的各分量 x i x_i xi的偏导数 ∂ f ( x ) ∂ x i ( i = 1 , . . . , n ) \frac{\partial f(x)}{\partial x_i}(i=1,...,n) xif(x)(i=1,...,n)都存在,则称函数 f ( x ) f(\boldsymbol{x}) f(x) x x x处一阶可导,并称向量 ∇ f ( x ) = [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x n ] \left.\nabla f(\boldsymbol{x})=\left[\begin{array}{c}\frac{\partial f(\boldsymbol{x})}{\partial x_1}\\\frac{\partial f(\boldsymbol{x})}{\partial x_2}\\\vdots\\\frac{\partial f(\boldsymbol{x})}{\partial x_n}\end{array}\right.\right] f(x)= x1f(x)x2f(x)xnf(x) 为函数 f ( x ) f(\boldsymbol{x}) f(x) x \boldsymbol{x} x处的一阶导数或梯度。
这里我们一般就使用列矩阵(分母型)

求解

凸充分性定理:若 f ˙ : R n → R \dot{f}:\mathbb{R}^n\to\mathbb{R} f˙:RnR是凸函数,且 f ( x ) f(\boldsymbol{x}) f(x)一阶连续可微,则 x ∗ x^* x是全局解的充分必要条件是 ∇ f ( x ∗ ) = 0 \nabla f(x^*)=\mathbf{0} f(x)=0

所以, ∇ E ( w , b ) = 0 \nabla E_{(w,b)}=\mathbf{0} E(w,b)=0的点即为最小值点,也即 ∇ E ( w , b ) = [ ∂ E ( w , b ) ∂ w ∂ E ( w , b ) ∂ b ] = [ 0 0 ] \left.\nabla E_{(w,b)}=\left[\begin{array}{c}\frac{\partial E(w,b)}{\partial w}\\\frac{\partial E(w,b)}{\partial b}\end{array}\right.\right]=\left[\begin{array}{c}0\\0\end{array}\right] E(w,b)=[wE(w,b)bE(w,b)]=[00]

先对 b b b进行求导和化简

∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) = 0 m b − ∑ i = 1 m ( y i − w x i ) = 0 b = 1 m ∑ i = 1 m ( y i − w x i ) b = 1 m ∑ i = 1 m y i − w ⋅ 1 m ∑ i = 1 m x i = y ˉ − w x ˉ \begin{gathered} \frac{\partial E_{(w,b)}}{\partial b} =2\left(mb-\sum_{i=1}^m\left(y_i-wx_i\right)\right)=0 \\ mb-\sum_{i=1}^{m}{(y_i-wx_i)}=0 \\ b=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-wx_{i})\\ b=\frac1m\sum_{i=1}^my_i-w\cdot\frac1m\sum_{i=1}^mx_i=\bar{y}-w\bar{x} \end{gathered} bE(w,b)=2(mbi=1m(yiwxi))=0mbi=1m(yiwxi)=0b=m1i=1m(yiwxi)b=m1i=1myiwm1i=1mxi=yˉwxˉ

b = y ˉ − w x ˉ b=\bar{y}-w\bar{x} b=yˉwxˉ代入上式可得:

w ∑ i = 1 m x i 2 = ∑ i = 1 m y i x i − ∑ i = 1 m ( y ˉ − w x ˉ ) x i \begin{gathered}w\sum_{i=1}^mx_i^2=\sum_{i=1}^my_ix_i-\sum_{i=1}^m(\bar{y}-w\bar{x})x_i\end{gathered} wi=1mxi2=i=1myixii=1m(yˉwxˉ)xi

进一步推导可以得到:

w = ∑ i = 1 m y i x i − x ˉ ∑ i = 1 m y i ∑ i = 1 m x i 2 − 1 m t = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m t 1 ∑ i = 1 m x i ) 2 ( ∑ i = 1 m x i ) 2 w=\frac{\sum_{i=1}^my_ix_i-\bar{x}\sum_{i=1}^my_i}{\sum_{i=1}^mx_i^2-\frac1{mt}}=\frac{\sum_{i=1}^my_i(x_i-\bar{x})}{\sum_{i=1}^mx_i^2-\frac1{mt}\frac1{\sum_{i=1}^mx_i)^2}(\sum_{i=1}^mx_i)^2} w=i=1mxi2mt1i=1myixixˉi=1myi=i=1mxi2mt1i=1mxi)21(i=1mxi)2i=1myi(xixˉ)

二、多元线性回归

2.1 算法原理

在一元线性回归的基础上加了多值离散特征
举个栗子:在前面的通过发亮判断程序员水平的基础上增加了其他变量,比如增加了颜值(好、差)、代码量项目经历(少、中、多)等。
此时原来的函数变成了:

y = ω 1 \omega_1 ω1x1 + ω 2 \omega_2 ω2x2 + ω 3 \omega_3 ω3x3 + ω 4 \omega_4 ω4x4 + ω 5 \omega_5 ω5x5 + ω 6 \omega_6 ω6x6 + b

2.2 公式推导

对于多元变量,我们为了能够用numpy库进行运算加速,采用向量表达的方式。

f ( x i ) = w T x i + b f(\boldsymbol{x}_i)=\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i+b f(xi)=wTxi+b

也就是:

f ( x i ) = w 1 x i 1 + w 2 x i 2 + . . . + w d x i d + w d + 1 ⋅ 1 f\left(\boldsymbol{x}_{i}\right)=w_{1}x_{i1}+w_{2}x_{i2}+...+w_{d}x_{id}+w_{d+1}\cdot1 f(xi)=w1xi1+w2xi2+...+wdxid+wd+11

由最小二乘法可得 E w ^ = ∑ i = 1 m ( y i + f ( x ^ i ) ) 2 = ∑ i = 1 m ( y i − w ^ T x ^ i ) 2 \begin{aligned}\text{由最小二乘法可得}\\E_{\hat{\boldsymbol{w}}}&=\sum_{i=1}^m{(y_i+f(\hat{\boldsymbol{x}}_i))^2}=\sum_{i=1}^m\left(y_i-\hat{\boldsymbol{w}}^\mathrm{T}\hat{\boldsymbol{x}}_i\right)^2\end{aligned} 由最小二乘法可得Ew^=i=1m(yi+f(x^i))2=i=1m(yiw^Tx^i)2

接下来就是求解 ω ^ ∗ {\hat\omega}^* ω^使得这个函数取最值。(证明过程略,本人太菜暂时还没懂>_<)文章来源地址https://www.toymoban.com/news/detail-811057.html

到了这里,关于机器学习西瓜书之线性回归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能基础_机器学习003_有监督机器学习_sklearn中线性方程和正规方程的计算_使用sklearn解算八元一次方程---人工智能工作笔记0042

    然后我们再来看看,如何使用sklearn,来进行正规方程的运算,当然这里 首先要安装sklearn,这里如何安装sklearn就不说了,自己查一下 首先我们还是来计算前面的八元一次方程的解,但是这次我们不用np.linalg.solve这个 解线性方程的方式,也不用 直接 解正规方程的方式: 也就是上面这种

    2024年02月08日
    浏览(55)
  • 一文详解人工智能:线性回归、逻辑回归和支持向量机(SVM)

    在人工智能领域,线性回归、逻辑回归和支持向量机是常见的机器学习算法。本文将详细介绍这三种算法的原理和应用,并提供相应的代码示例。 线性回归是一种用于建立变量之间线性关系的回归分析方法。它通过拟合一个线性模型来预测连续变量的值。线性回归的目标是找

    2024年02月03日
    浏览(49)
  • 人工智能-线性回归的从零开始实现

    在了解线性回归的关键思想之后,我们可以开始通过代码来动手实现线性回归了。 在这一节中,我们将从零开始实现整个方法, 包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。 虽然现代的深度学习框架几乎可以自动化地进行所有这些工作,但从零开始实现

    2024年02月08日
    浏览(53)
  • 【深入探究人工智能】逻辑函数|线性回归算法|SVM

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:小智带你闲聊 🎉代码仓库:小智的代码仓库 机器学习算法是一种基于数据和经验的算法,通过对大量数据的学习和分析,自动发现数据中的模式、规律和关联,并利用这些模式和规律来进行预测

    2024年02月08日
    浏览(62)
  • 【人工智能】简单线性回归模型介绍及python实现

    简单线性回归是人工智能和统计学中一个基本的预测技术,用于分析两个连续变量之间的线性关系。在简单线性回归中,我们试图找到一个线性方程来最好地描述这两个变量之间的关系。 变量 :简单线性回归涉及两个变量 - 自变量(independent variable)和因变量(dependent vari

    2024年01月17日
    浏览(56)
  • 【人工智能】多元线性回归模型举例及python实现方式

    比如你做了一个企业想要招人,但是不知道月薪应该定在多少,你做了一个月薪和收入的调研,包括年限、学历、地区和月薪 做一个月薪=w1 年限+w2 学历+w3*城市+…+b的工作年限和薪资的多元线性模型,然后找出最适合线性模型的直线-成本函数、梯度下降方式,来预估你可以

    2024年02月19日
    浏览(56)
  • 【机器学习】西瓜书习题3.3Python编程实现对数几率回归

    参考代码 结合自己的理解,添加注释。 导入相关的库 导入数据,进行数据处理和特征工程 定义若干需要使用的函数 y = 1 1 + e − x y= frac{1}{1+e^{-x}} y = 1 + e − x 1 ​ ℓ ( β ) = ∑ i = 1 m ( − y i β T x ^ i + l n ( 1 + e β T x ^ i ) ) ell(beta) = sum_{i=1}^{m}(-y_{i}beta^{T} hat{x}_{i} + ln(1+e^{

    2024年02月15日
    浏览(44)
  • 【机器学习】西瓜书学习心得及课后习题参考答案—第3章线性模型

    过了一遍第三章,大致理解了内容,认识了线性回归模型,对数几率回归模型,线性判别分析方法,以及多分类学习,其中有很多数学推理过程以参考他人现有思想为主,没有亲手去推。 线性模型 linear model 非线性模型 nonlinear model 可解释性 comprehensibility 可理解性 understanda

    2024年02月15日
    浏览(47)
  • 机器学习_数据升维_多项式回归代码_保险案例数据说明_补充_均匀分布_标准正太分布---人工智能工作笔记0038

    然后我们再来看一下官网注意上面这个旧的,现在2023-05-26 17:26:31..我去看了新的官网, scikit-learn已经添加了很多新功能,     我们说polynomial多项式回归其实是对数据,进行 升维对吧,从更多角度去看待问题,这样 提高模型的准确度. 其实y=w0x0+w1x1.. 这里就是提高了这个x的个数对吧

    2024年02月06日
    浏览(45)
  • 人工智能 框架 paddlepaddle 飞桨 使用指南& 使用例子 线性回归模型demo 1

    安装过程使用指南线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下  由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 检查环境即可 本文档为您介绍 conda 安装方式

    2024年04月15日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包