https://www.toutiao.com/a6665460843691377160/

今天我们来看一个最常见的机器学习模型——线性回归(linear regression)模型。先举个例子让你明白什么是线性回归。

现在我们有房屋面积和价格的一些数据,如下图:

现在我们想知道的是,如果给一个新的房屋面积130m²,能否根据已知的数据来预测新的面积对应的价格是多少呢?这时,线性回归模型就派上用场了。

我们先画出已知数据的散点图:

那线性回归要做什么呢?它是模拟出一条直线,让已知的数据点尽量落在直线上或直线周围。效果如下图红线所示:

用公式表示的话,这个线性模型就是一条直线:

f(x) = wx + b (1)

其中,w为系数,b为截距。

当我们的模型确定后,如果给定一个新数据x‘,只需把x‘带入(1)式,求得的y就是预测的价格了。

在谈如何确定w和b之前,我们先来思考一个问题:假如房屋价格不仅仅受面积因素影响呢?比如还有厕所数量、房屋高度、房屋楼层数等等因素,这时我们又该如何构建我们的线性模型呢?

其实跟(1)式一样,我们添加系数和输入即可:

假设我们有n个影响房屋价格的因素,对应的就是n个系数w。(2)式就是我们新的线性模型。那模型既然出来了,该怎么求w和b呢?在求解之前,我们应该了解到,模型预测的结果f(x)是和实际的结果y有一定出入的。也就是说,模型在对原始数据进行训练时,数据点并不一定都落在该模型上。这样就会产生误差,不同的w和b对应不同的线性模型,我们要找的就是误差最小的那个模型所对应的w、b的值。

首先第一步,我们要找一个代价函数(cost function),用它来衡量我们预测的误差,一般用平方和函数来表示:

其中,J就是我们的代价函数,f(x)是我们的预测值,y是训练集数据的实际值,m代表数据的个数。代价函数描述的其实是预测值和实际值差的平方和的均值,那我们在前面为什么要加个1/2呢?这纯粹是为了以后求导方便,而且并不影响我们对代价函数的优化。

然后,我们将预测函数f(x)做一个变形,写成向量乘积的形式。

则(2)式可改写为:

不难看出,f(x)可以写作wx两个向量的乘积:

进一步缩写为:

其中,wx均为n+1维列向量。再将(4)式代入(3)式,可得:

由f(x)可知,乘积项的求和可以写为两个向量乘积的形式。要想写成向量形式,我们需要将J(w)做一个变形:

展开,得到:

其中,为m*(n+1)维矩阵,m是数据的样本个数,n是每一个数据的特征。w为参数向量,y为实际值向量。

OK,现在我们已经把代价函数化简完成了,但别忘了我们的目标是求当J(w)取最小值时,所对应w的值。可以证明J(w)为凸函数(证明过程暂略),所以当我们对J(w)求导时,令导数为0,J(w)即可取最小值,相应可求得w。(注意w为向量)

在求导之前,我们先记住几个结论,一会就直接用了:

随后,我们令k=Xw-y,则J(w)可写为

对其求导,应用结论1,得

我们先求k',运用结论3,可得

运用结论5,将其改写为

运用结论2,继续求导可得

运用结论4、5,并化简

k=Xw-y代入并展开,可得

到此为止,我们的求导过程就完成了。接下来,令导数为0,求得w的值即可。令J'(w)=0,可得

一般情况下,矩阵

为可逆矩阵(不可逆的情况我们以后会讨论),即可求得w的解为

Bingo!(5)式就是我们在代价函数取最小值时,求得的参数向量w。在实际应用中,计算机会帮我们对(5)式求解,得到w的值。但当我们的数据量非常大时,可能会拖慢运行速度。这时,另一种对J(w)优化的算法——“梯度下降法”就该上场了,我们下篇再对它进行介绍。

线性回归模型原理及推导相关推荐

  1. logistic模型原理与推导过程分析(1)

    从线性分类器谈起 给定一些数据集合,他们分别属于两个不同的类别.例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本.现在我们要找到一个线性分类器,将这些数 ...

  2. logistic模型原理与推导过程分析(3)

    附录:迭代公式向量化 θ相关的迭代公式为: ​ 如果按照此公式操作的话,每计算一个θ需要循环m次.为此,我们需要将迭代公式进行向量化. 首先我们将样本矩阵表示如下: 将要求的θ也表示成矩阵的形式: 将 ...

  3. logistic模型原理与推导过程分析(2)

    二项逻辑回归模型 既然logistic回归把结果压缩到连续的区间(0,1),而不是离散的0或者1,然后我们可以取定一个阈值,通常以0.5为阈值,如果计算出来的概率大于0.5,则将结果归为一类(1),如 ...

  4. NVDIMM编程模型原理大概推导梳理

    NVDIMM编程模型原理大概推导梳理2021 1 NVDIMM 简介 NVDIMM(Non-Volatile DIMM) 非易失性DIMM(Dual In-line Memory Module,双列直 ...

  5. 机器学习——线性回归的原理,推导过程,源码,评价

    https://www.toutiao.com/a6684490237105668620/ 2019-04-27 16:36:11 0.线性回归 做为机器学习入门的经典模型,线性回归是绝对值得大家深入 ...

  6. 【超详细】多元线性回归模型statsmodels_ols

    多元线性模型的主要作用:(主要进行预测) 通过建模来拟合我们所提供的或是收集到的这些因变量和自变量的数据,收集到的数据拟合之后来进行参数估计.参数估计的目的主要是来估计出模型的偏回归系数的值.估计出来 ...

  7. 小福利,带你快速了解数据分析之一元线性回归模型和多元线性回归模型

    大家好,我是天空之城,今天给大家带来小福利,带你快速了解一元线性回归方程模拟和多元线性回归方程模拟 主要用来进行数据的相关性分析 之前在研究生阶段用过一个叫origin的数据处理软件,只要是科研数据都 ...

  8. 机器学习10—多元线性回归模型

    多元线性回归模型statsmodelsols 前言 什么是多元线性回归分析预测法 一.多元线性回归 二.多元线性回归模型求解 2.1最小二乘法实现参数估计-估计自变量X的系数 2.2决定系数:R² 与 ...

  9. python怎么掉包_Python实战教程:拒绝调包,如何用python推导线性回归模型

    原标题:Python实战教程:拒绝调包,如何用python推导线性回归模型 最近有人问我一个问题,我数学不好,代码基础薄弱,英语一般般,如何入门当今最为前沿的机器学习领域?均方差损失,MSE,平方损失 ...

最新文章

  1. linux脚本命令顺序执行命令,linux – nohup多个顺序命令
  2. [原理篇] Soft Regression
  3. 重载-运算符(感觉怪怪的)
  4. android判断usb已连接,android 判断是否有网络连接(usb连接电脑问题)
  5. 安装JDK后,未设置Path,也能执行java.exe的原因
  6. MySQL懒查询_mysql 联查的基本命令
  7. MIG IP学习笔记
  8. 汇编debug与masm命令
  9. python之读取文本操作
  10. AudioSession property 详解及使用方法,包括检测是否有声音正在运行,音量更改等。...
  11. 解决TextView上方空白
  12. RHCSA认证培训+考试七天实录(六)
  13. 熊猫烧香病毒的分析报告
  14. c语言dda算法完整实现,计算机图形学DDA算法.doc
  15. 计算机联锁进路控制程序框图,计算机联锁系统技术第四章
  16. SQL - 多表关联
  17. 内网安全检测技术yyds!你还不会吗?
  18. hdu 1869 六度分离(bfs)
  19. 简图记录-GAMMA技术基础
  20. Flask框架快速搭建疫情打卡系统

热门文章

  1. 短书评 | 这本Python新书风评很好
  2. iOS通关书单,Android可入
  3. 程序员成长路上的团队修炼之道
  4. 人脸识别经典算法一:特征脸方法(Eigenface)
  5. 使用HDFS API实现hadoop HDFS文件系统的基本操作
  6. 机器学习 | 数据从哪里找?手把手教你构建数据集
  7. ​ImageNet的top-1终于上了90%,网友质疑:用额外数据集还不公开,让人怎么信服?...
  8. 原创 | 一文了解边缘计算和边缘AI
  9. 知识图谱前沿跟进,看这篇就够了,Philip S. Yu 团队发布权威综述,六大开放问题函待解决!...
  10. 收藏 | 最新知识图谱论文清单(附解读、下载)