[ch05-00] 多变量线性回归问题

article/2025/7/5 21:10:32

系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI,
点击star加星不要吝啬,星越多笔者越努力。

第5章 多入单出的单层神经网络

5.0 多变量线性回归问题

5.0.1 提出问题

问题:在北京通州,距离通州区中心15公里的一套93平米的房子,大概是多少钱?

房价预测问题,成为了机器学习的一个入门话题,著名的波士顿的房价数据及相关的比赛已经很多了,但是美国的房子都是独栋的,前院后院停车库游泳池等等参数非常多,初学者可能理解起来有困难。我们不妨用简化版的北京通州的房价来举例,感受一下房价预测的过程。

影响北京通州房价的因素有很多,居住面积、地理位置、朝向、学区房、周边设施、建筑年份等等,其中,面积和地理位置是两个比较重要的因素。地理位置信息一般采用经纬度方式表示,但是经纬度是两个特征值,联合起来才有意义,因此,我们把它转换成了到通州区中心的距离。

我们有1000个样本,每个样本有两个特征值,一个标签值,示例如表5-1。

表5-1 样本数据

样本序号地理位置居住面积价格(万元)
110.0660302.86
215.4774393.04
318.6646270.67
45.2077450.59
............
  • 特征值1 - 地理位置,统计得到:
    • 最大值:21.96公里
    • 最小值:2.02公里
    • 平均值:12.13公里
  • 特征值2 - 房屋面积,统计得到:
    • 最大值:119平米
    • 最小值:40平米
    • 平均值:78.9平米
  • 标签值 - 房价,单位为百万元:
    • 最大值:674.37
    • 最小值:181.38
    • 平均值:420.64

这个数据是三维的,所以可以用两个特征值作为x和y,用标签值作为z,在xyz坐标中展示如表5-2。

表5-2 样本在三维空间的可视化

正向侧向
www.wityx.comwww.wityx.com

从正向看,很像一块草坪,似乎是一个平面。再从侧向看,和第4章中的直线拟合数据很像。所以,对于这种三维的线性拟合,我们可以把它想象成为拟合一个平面,这个平面会位于这块“草坪”的中位,把“草坪”分割成上下两块更薄的“草坪”,最终使得所有样本点到这个平面的距离的平方和最小。

5.0.2 多元线性回归模型

由于表中可能没有恰好符合15公里、93平米条件的数据,因此我们需要根据1000个样本值来建立一个模型,来解决预测问题。

通过图示,我们基本可以确定这个问题是个线性回归问题,而且是典型的多元线性回归,即包括两个或两个以上自变量的回归。多元线性回归的函数模型如下:

\[y=a_0+a_1x_1+a_2x_2+\dots+a_kx_k\]

具体化到房价预测问题,上面的公式可以简化成:

\[ z = x_1 \cdot w_1 + x_2 \cdot w_2 + b \]

抛开本例的房价问题,对于一般的应用问题,建立多元线性回归模型时,为了保证回归模型具有优良的解释能力和预测效果,应首先注意自变量的选择,其准则是:

  1. 自变量对因变量必须有显著的影响,并呈密切的线性相关;
  2. 自变量与因变量之间的线性相关必须是真实的,而不是形式上的;
  3. 自变量之间应具有一定的互斥性,即自变量之间的相关程度不应高于自变量与因变量之因的相关程度;
  4. 自变量应具有完整的统计数据,其预测值容易确定。

5.0.3 解决方案

如果用传统的数学方法解决这个问题,我们可以使用正规方程,从而可以得到数学解析解,然后再使用神经网络方式来求得近似解,从而比较两者的精度,再进一步调试神经网络的参数,达到学习的目的。

我们不妨先把两种方式在这里做一个对比,读者阅读并运行代码,得到结果后,再回到这里来仔细体会表5-3中的比较项。

表5-3 两种方法的比较

方法正规方程梯度下降
原理几次矩阵运算多次迭代
特殊要求\(X^TX\)的逆矩阵存在需要确定学习率
复杂度\(O(n^3)\)\(O(n^2)\)
适用样本数\(m \lt 10000\)\(m \ge 10000\)

http://chatgpt.dhexx.cn/article/BEJ8C1YQ.shtml

相关文章

“你在北京啊!买房了吗?”

再有五天就过年了,北京的小王正在回家的路上,上海的 Tracy 已经提前到家变成了小芳,但是面对返乡夺命三连击,买房了么?找对象了么?生娃生二胎么?小王和 Tracy 面临的窘境都是一样的。Andy 干脆去…

老砒霜买房记---程序员被北京大爷按在地上摩擦

背景 年前盘了盘手里的钱,感觉差不多了,觉得是时候买房了,毕竟租房还是每个月的房租不如拿来还房贷。然后就在年后连续看了两周的房。在我这次购房经历中,最有意思的是两个北京大爷,真是实实在在的把我按在地上摩擦。…

北京租房住起来舒服的地方(小区)有哪些?

舒服的定义:首先交通方便,生活购物方便。 其他的自行发挥,比方临近大的公园,大的图书馆,大学校园,大的商场等等。总之,生活起来很舒服的地方有哪些? 当然性价比高最好不过啦&#xf…

JS中去除手机端的alert弹框中的关闭网页功能

问题没有得到完全的解决,仅能解决刷新的第一次点击无关闭网页 去除关闭网页 具体代码如下 var wAlert window.alert;window.alert function (message) {try {var iframe document.createElement("IFRAME");iframe.style.display "none";i…

JS实现关闭网页广告弹窗特效

本文实例为大家分享了JS实现关闭小广告特效的具体代码放在body里面即可&#xff0c;供大家参考&#xff0c;具体内容如下 <script>//隐藏弹窗var toast document.getElementById(layui-layer1);toast.style.display none;//隐藏蒙层var shade document.getElementByI…

js监听浏览器关闭页面事件

window.onbeforeunload function() {//功能函数 }window.onbeforeunload function(e) {var e window.event ||e;e.returnValue("是否确定关闭页面"); }加入js文件后&#xff0c;查看网页效果&#xff1a; 点击网页对应窗口的关闭按钮&#xff0c;会弹窗如下弹窗&a…

如何关闭页面之前清空LocalStorage

文章の目录 一、 前言二、问题描述三、解决办法写在最后 一、 前言 在实际的Vue项目中我们为了做持久化&#xff0c;会使用vuex配合localstorage、cookie、等实现数据的持久化&#xff0c;不至于出现刷新页面出现数据丢失&#xff1b;localstorage的特点是生命周期是永久除非你…

html自动关闭当前页面,html如何关闭当前页面

html关闭当前页面的方法&#xff1a;1、自定义提示关闭&#xff1b;2、在即将离开当前页面时&#xff0c;用户点浏览器的最大化最小化关闭按钮中的关闭按钮onbeforeunload事件。 本教程操作环境&#xff1a;windows7系统、html5版&#xff0c;DELL G3电脑。 html关闭当前页面的…

html页面关闭前提示信息,js实现关闭网页出现是否离开提示

大家是否经常遇到在关闭网页的时候,会看到一个确定是否离开当前页面的提示框?想一些在线测试系统、信息录入系统等就经常会有这一些提示,避免用户有意或者无意中关掉了页面,导致数据丢失。这里面的实现过程很简单,利用了HTML DOM事件中的onunload和onbeforeunload方法。 u…

JS网页特效实例:动态关闭页面

网页有些时候不需要等待用户的操作而自动关闭。例如子窗口的作用已经结束&#xff0c;或者本窗口已经过期需要关闭&#xff0c;可以使用JavaScript实现这个效果。 补充下面代码&#xff0c;要求用户点击【关闭此窗口】按钮后&#xff0c;页面进行关闭。 <!DOCTYPE html>…

HTML页面中点击按钮关闭页面几种方式与取消

1、不带任何提示关闭窗口的js代码 <input type"button" name"close" value"关闭" onclick"window.close();" /> 2、自定义提示关闭 <script language"javascript"> // 这个脚本是 ie6和ie7 通用的脚本 funct…

LabVIEW编程LabVIEW开发以编程方式将前面板移动到所需位置

LabVIEW编程LabVIEW开发以编程方式将前面板移动到所需位置 如何以编程方式将前面板移动到屏幕上的所需位置&#xff1f; 首先&#xff0c;确定您每次运行程序时希望前面板所在的位置的坐标。这可以使用VI类的属性节点来完成。右击属性节点的黄色部分&#xff0c;选择选择类VI服…

你听说过LabVIEW吗?

LabVIEW是美国国家仪器公司NI的图形化的编程语言&#xff0c;LabVIEW的全称是Laboratory Virtual Instrument Engineering Workbench&#xff0c;平时我们常见的Python、C/C、Java编程语言虽然也分编译型语言和解释型语言、底层语言和高级语言等&#xff0c;但基本都是文字形式…

LabVIEW编程LabVIEW开发DAQ采集消除串扰 例程与相关资料

LabVIEW编程LabVIEW开发DAQ采集消除串扰 例程与相关资料 在DAQ采集是&#xff0c;模拟输入通道上出现串扰&#xff0c;浮动&#xff0c;随机尖峰&#xff0c;波动&#xff0c;噪声过大或其他一些不希望的电压等现象。这种现象有什么可能的原因 一些常见的原因是&#xff1a; …

LabVIEW编程LabVIEW开发使用编辑菜单或者文本下拉列表

LabVIEW编程LabVIEW开发使用编辑菜单或者文本下拉列表 ​​​我有一个LabVIEW的字符串数组&#xff0c;我想把它们填充到文本或者下拉列表中&#xff0c;我知道下拉列表跟字符串不是同一个数据类型&#xff0c;我能够通过编程的方式实现吗&#xff1f; 在您的程序框图上&…

LabVIEW编程基础:顺序结构编程

目录 一、示例说明 二、程序框图实现 三、总结 LabVIEW又称为G语言&#xff0c;简单易学、形象直观&#xff0c;采用图形化的编程方式&#xff0c;是专为测试、测量和控制应用而设计的系统工程软件。 同C语言编程一样&#xff0c;LabVIEW中也有对应的三大程序执行框架结构&a…

LabVIEW编程LabVIEW开发高级数据采集技术 计数器定时器的操作 例程与相关资料

LabVIEW编程LabVIEW开发高级数据采集技术 计数器定时器的操作 例程与相关资料 典型的多功能DAQ设备只有2个板载计数器&#xff0c;而智能DAQ则能在各条数字线上运行计数器功能。 数字I/O节点能够在NI LabVIEW FPGA中利用名为单周期定时循环的专业结构&#xff0c;帮助用户在2.5…

LabVIEW编程运动控制PID入门

LabVIEW编程运动控制PID入门 电机运动控制系统包含了五种主要元件-被移动的机械装置&#xff0c;具回授和电机运动控制I/O的电机&#xff0c;电机驱动器&#xff0c;智慧型控制器&#xff0c;及程式/操作员界面软件。National Instruments除了提供精确、高效能的多轴电机运动控…

labview编程笔记之顺序结构

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 学习之路&#xff0c;长路漫漫&#xff0c;写学习笔记的过程就是把知识讲给自己听的过程。这个过程中&#xff0c;我们去记录思考的过程&#xff0c;便于日后复习&#xff0c;梳理自己的思路。学习之乐&#xff0c;独乐乐&am…

LabVIEW编程实例:如何通过TCP协议进行数据通信

目录 实例说明 编程思路 服务器端程序 客户端程序 总结 怎么获取服务器上的ip地址和端口号 对于网络通信来说&#xff0c;LabVIEW平台本身提供了多种方法加以实现&#xff0c;如可以通过TCP协议、UDP协议、DataSocket技术、甚至远程面板通信技术等方式进行通信。 下面通过…