老杨说话的地方
  • 首页
  • 关于老杨
  • 博客时间
  • 文章分类
    • 人工智能
    • 人生感悟
      • 共产主义
      • 能量哲学
      • 自然辩证法
    • 信息技术
      • C#笔记
      • LaTex
      • Linux
      • RIME
      • Ubuntu&Debian
      • WordPress
      • 基于Java的B/S系统构建
      • 开源开发
      • 病毒相关
      • 编程的坏习惯
      • 网上办公系统
    • 往事随风
      • 我在大学那几年
      • 童年趣事
      • 精彩生活
    • 情感随笔
    • 文学创作
      • 小说
    • 生活记录
      • 博士进行中
      • 美国一年
      • 老杨学游泳
    • 评论杂谈
  • 留言本
我是老杨
张驰有度 宠辱不惊
  1. 首页
  2. 人工智能
  3. 正文

线性回归

2020年10月11日 3599点热度 1人点赞 2条评论
本文目录5
  • 1基本概念
  • 2问题描述
  • 3解决方法
  • 4多变量的线性回归
  • 5数据规范化

1基本概念

线性回归,其实说白了,就是期待用线性函数,来描述输入变量和输出之间的关系。输入变量,是可以通过采集、搜集得到的数据,而输出的变量,则是将要预测或者得出结论的那个参数。

2问题描述

比如说,一个单变量的线性回归问题:预测房价与房间大小的关系。现在我们遇到的问题是:我们想知道,当给我们一套房子时,我们能否较为准确的预测出它的价格。

在实际生活中,我们知道,房价并不单纯与房间大小呈线性关系,可是,如果我们不知道其他的参数(这些参数,在人工智能中有一个更准确的概念,叫做特征),这些参数或者无法搜集,或者搜集的不准确,我们只能拿到房间大小这一个数据作为输入,那么如果我们用线性回归,来分析房价与房间大小之间的关系,那么我们就默认为一个前提:房价和房间大小呈线性关系。

如果房价和房间大小确实呈完美的线性关系,那么我们无需使用人工智能来进行房价预测,因为我们可以很容易得出房价与房间大小之间的关系,p=s*10000(1万元一平方米),当新的房间参数到来时,只需要将新的房间大小s代入这个公式,就可以了。

3解决方法

然而实际上我们也知道,这几乎时不可能的,因为影响房间的因素太多了,我们无法将所有影响房价的因素都找出来,比如所处的地段、学区房、户型等。所以我们用到的一定时一个简化的模型,就是我们认为房间一定主要由几个参数来确定。假如我们现在认为房价只和房间大小有关,那么因为它和现实相违背,它一定不是完美的线性关系,基本上来说,会是这样的。

因为只有一个参数,所以,我们用线性函数

p=as+b

​

来表示房价p和房间大小s之间的关系,那么我们的目标,变成了,通过上述数据,来确定a和b。这样我们就能够得到一个完整的公式。但是,实际上,因为房价和房子大小之间不是完美的线性关系,我们肯定无法用一个线性函数来完美描述他们之间的关系,不同的a和b确定的直线,在图上是这样的。

也就是说,我们可以有无数个a和b的取值,每个取值,都代表了一个直线,那么到底哪个直线更能够代表房价和房间大小之间的关系呢?此处,我们需要引入另外一个概念:损失函数。损失函数,描述的就是用直线模拟出来的结果,和真实的结果之间的误差。那么很明显,它是衡量哪条直线更能符合真实关系的一个重要指标:损失函数越小,应该说明这条直线越能够描述输入与输出之间的关系。

于是我们的问题就变成了:如何找到一组参数a和b,让损失函数最小。如何解决这个问题呢?人工智能采取的基本上都是最笨的方法:挨个试。就是a和b随便取。

但是也不能太随便,否则岂不是像没头苍蝇一样到处乱撞?肯定有方法,有规律的去挨个试。

一个很重要的方法,叫做梯度下降。

梯度下降,说白了,其实就是按照一定的步长来减少或者增加参数a和b的值,以期望得到最小的损失函数。例如,初始值,设定a和b都是1,代入公式中,然后把所有的数据都代入公式,用真实的值减去公式算出的值,将他们的绝对值相加,就是损失函数。然后,根据梯度下降的步长,假如设定为0.1,那么下一组参数就是0.9和0.9,继续代入,算出损失函数,看是否能够得到更小的损失。以此不停的计算,直到两个条件:要么得到了认可(可被接受的)的最小损失函数,此时的a和b的参数,就是我们要的参数,问题解决;要么,算的次数(迭代次数)已经超过了我们的接受范围(比如,就算100次),还没有得到可以接受的损失(损失函数仍然很大),但是你不能永远算下去,时间都浪费了,这种情况就是不收敛,也就是在规定的步数内,没有找到可被接受的最小的损失函数。不收敛的处理方法,要么重新调整参数,重新计算,要么就从这些不收敛的数据中,找到损失函数最小的参数,先用着。所以,在求取最小损失的过程中,步长(每次的变化量)和迭代次数,是很重要的参数。

4多变量的线性回归

多变量的线性回归,和单变量类似。单变量的线性回归,是用一个参数来模拟输入与输出之间的关系,多变量,就是用多个参数。那么也就不是用直线来模拟,而是用曲线。表达式的一般规律是:

y=a_0+a_1x_1+a_2x_2+……a_nx_n

其中x_n就是n个参数(特征),a_0-a_n是我们需要通过已有的数据,通过计算最小损失函数来确定的参数。

这些数据,被称为训练数据,通过这些训练数据,确定的a_0-a_n的参数,被称为一个模型。

我们常说的,训练一个模型,其实就是要通过大量的数据学习,得到一个最能够准确描述这些数据的公式的所有参数,这些参数,就可以被认为是一个机器学习模型。而准确与否,则是用损失函数来进行衡量。

5数据规范化

事实上,数据规范化问题,是一个共性问题。指的是将不同特征的数据,尽可能规范化到一个统一的度量里面。比如说,房子的价格,除了和房间的大小有关系,还和房子里面的房间个数有关系,比如说同样的80平米的房子,有5个房间的,要比只有4个房间的贵,那么这个模型里面,就有两个特征(变量),这两个特征,数据的维度差了一个数量级,房间的大小都是70、80这样的量级,可是房间的个数,基本都是5、6这样的。这种量级差别的特征数据给模型的训练带来了问题,所以,最好的方法是将他们的量级统一起来。

其中一种常见的规范化方法是:

  1. 求每个特征量X的平均值mean
  2. 求每个特征量X的标准差sigma
  3. 规范化:X = (X-mean) / sigma

将所有的特征都按照这样的方法处理一遍,那么大家的量级就拉平了,这样便于模型的训练,同时也能够提升机器学习和预测的准确性。

标签: 回归 机器学习 模型
最后更新:2023年02月17日
老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

点赞

评论(2)

写下你的评论
  1. xqiushi
    xqiushi2020年10月26日 11:02

    有点像我听说过的线性代数。

    1. 老杨
      老杨作者2020年10月26日 14:39

      @xqiushi 还不太一样。

发表评论

选择代码语言
选好后在光标处插入代码块,把示例文字换成你的代码即可。

老杨

老杨

博士,非博学之士;讲师,讲所学所知。糊涂半生,虚度半世,唯愿平淡快乐,度过此生。

搜索
最新 热点 随机
关于机器人的发展 遥遥领先 开源密码生成工具SimplePassword 痛苦根源 同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端) 别成为AI的奴隶 给阿嬷的情书 信息焦虑综合症 PUA 人的悲喜并不相通
为多用户安装Anaconda及其使用方法WordPress主题发布:kratos_YangLaTex中上划线\overline和\bar的使用说明LaTex中设置字体的正确方法那一年,2009使用Windows7自带Windows Media Center播放RMVB影片幼儿园:回味童年童年趣事之气门芯这几天的事儿无插件实现WordPress留言本
Debian 11下安装Nvidia显卡驱动与Cuda 昨日的疯狂血拼 使用JavaBean连接数据库(续) Gitlab更新后gitlab-ctl reconfigure报错rails_migration[gitlab-rails] (gitlab::database_migrations line 51) had an error 遥遥领先 我为什么坚持独立博客 用好WordPress的Database Backup插件 微软故意让盗版盛行? 麦霸之名 何为伟大
最近评论
  • 感谢支持。可以买个鸿蒙设备玩玩
    老杨·2 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 没有鸿蒙设备,吆喝一声支持老杨的产品
    乱云/Akay·2 周前·同步日历-我的第一款鸿蒙应用(鸿蒙CalDav客户端)
  • 先从减少手机使用时间开始。
    shanshan·1 月前·信息焦虑综合症
  • 所以必须得自己下定决心痛改前非,而不是跟自己讲条件。
    shanshan·1 月前·第二青春计划失败
  • 这种平台挺多的,但是应该没啥用,能有啥情绪价值比躺着刷手机更好呢?
    老杨·1 月前·第二青春计划失败
  • 已经遇到了,额外支付了170,托运登机行李,还不是托运行李。
    老杨·1 月前·春秋航空让人长见识
  • 那很好,恭喜你
    老杨·1 月前·PUA
  • 可以尝试改变。
    老杨·1 月前·信息焦虑综合症
  • 现在很多人离开AI已经不知道怎么工作了。
    老杨·1 月前·别成为AI的奴隶
  • 建议开发一个适合P人的工作生活计划平台,完不成没什么惩罚、但是完成了有大大的情绪…
    shanshan·1 月前·第二青春计划失败
  • 还有部分机型里20寸箱子应该上不了机,且没有免费行李托运额度。托运费超贵!
    shanshan·1 月前·春秋航空让人长见识
  • 这个世界精致利己主义者太多啦!
    shanshan·1 月前·人的悲喜并不相通
文章分类
选择分类
  • 人工智能13
  • 人生感悟121
    • 共产主义1
    • 能量哲学12
    • 自然辩证法12
  • 信息技术234
    • C#笔记6
    • LaTex12
    • Linux18
    • RIME4
    • Ubuntu&Debian21
    • WordPress1
    • 基于Java的B/S系统构建10
    • 开源开发2
    • 病毒相关3
    • 编程的坏习惯4
    • 网上办公系统9
  • 往事随风41
    • 我在大学那几年18
    • 童年趣事12
    • 精彩生活5
  • 情感随笔113
  • 文学创作69
    • 小说68
  • 生活记录220
    • 博士进行中6
    • 美国一年22
    • 老杨学游泳4
  • 评论杂谈169
关注公众号

COPYRIGHT © 2026 老杨说话的地方. ALL RIGHTS RESERVED.

THEME KRATOS YANG Modified BY 老杨

鲁ICP备17014997号-4

鲁公网安备 37021302000754号

本文目录5
  • 1基本概念
  • 2问题描述
  • 3解决方法
  • 4多变量的线性回归
  • 5数据规范化