机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE
前文再续书接上一回,机器学习的主要目的,是根据特征进行预测。预测到的信息,叫标签。
从特征映射出标签的诸多算法中,有一个简单的算法,叫简单线性回归。本文介绍简单线性回归的概念。
(1)什么是简单线性回归
“回归(regression)”是什么?如之前所讲,预测模型可区分为“分类器”跟“回归器”,回归器,就是用来预测趋势变化的,比如预测明天哪支股会涨停,预测某天的降雨量是多少,预测未来一年房价的变化,等等。所以回归就是预测的意思,没有什么高深的。线性是什么意思?就是一条直线,够简单了吧,自然也有“非线性回归”。那“简单”是什么意思,就是只有一个变量的,也叫一元回归,如果是多个变量(拟合面),那就叫多元回归(自然不再是简单线性)。
所以,简单线性回归,就是只有一个输入变量(自变量)的预测,就是这一种:y=ax+b,根据x的值,预测出y。你可以说,简单线性回归,就是一个函数。
简单线性回归是一个预测模型(回归模型),是模型就要被训练,只有不断的训练才能得到最佳的预测状态--虽然这是废话,但的确是这样。同样,简单线性回归的目的,是尽可能拟合所有训练样本以达到最佳的预测状态。什么是拟合?比如画一条直线,尽可能地,让各个点(样本)的预测标签接近或重合实际标签,就是拟合。
为了更好的解释这个概念,我画了一个图,图上面解释了相关概念:

从图上可以看到,如果对于每个点的输入特征,得到的预测标签跟这个点的实际标签都能重合的话,那就是最佳的。然而,实际上很可能做不到所有点都落在直线上,那这时候,找出一点最佳的直线,获得最好的拟合效果,就是机器学习要做的事情。

简单线性回归模型,给出了特征与标签的关系:
y = mx + b
x是输入特征,y是预测标签。
为了让这条直线更好的拟合所有的点,就要调整参数m跟b。
m是直线的角度,叫斜率,在机器学习中叫权重。
b叫截距,在机器学习中叫偏差。
所以,使用简单线性回归算法,机器学习通过大量带标签的样本进行训练,最终调整出一个最佳的m跟b值,从而达到最好的拟合效果。
那么,怎么判断拟合效果呢?怎么知道是变好还是变差了?
(2)如何判断拟合效果
为了判断拟合的效果,这里引入一个概念,叫损失计算。
如果点刚好落在直线上,也就是预测标签跟实际标签一样,那损失为0。
而实际上,更多的情况下,损失并不为0,这时要考虑整体损失。
整体损失越小,拟合越好,比如下图所示,可以明显分辨出左线的拟合效果优于右线(当整体损失达到某个值时,就可以认为已经取得很好的预测效果,可以停止训练):

上图中,每个点跟预测标签的距离(也就是点到线的红箭头)称为损失。
整体损失的计算可以有很多办法,这里引入一个简单实用的办法:均方误差(MSE)。
均方误差(MSE),就是求出所有点的损失的平方和,再除以样本的个数。你可以参考这个图的解释:

以上这个图,来源于这个地址:https://developers.google.com/machine-learning/crash-course/descending-into-ml/training-and-loss
基本上,本文的内容与组织方式,都跟这个地址的教程有直接的关系。
以上介绍了简单线性回归的定义,以及损失计算的一个办法即MSE,接下来小程用实例来演示简单线性回归的实现。
(3)简单线性回归示例
这里以python来演示,主要是因为python易于使用。
首先,给定一些散列的点,你可以参考下图的实现,截图中对部分代码做了解释:

执行这一部分代码,可以看到这样的效果:

然后,对这些点进行简单线性回归,也就是画一条拟合线,并取得最好的拟合效果,参考下图:

最终执行的效果是这样的:

好了,回头看一下吧。本文介绍了简单线性回归的定义以及损失计算的一个办法即MSE,最后用python示范了怎么使用简单线性回归算法绘制一条拟合线。简单线性回归,就是一个预测模型,更直接一点,就是一个函数--你可以说预测模型其实就是函数,就是一个算法设计(比如y=ax+b就是一个最核心的东西),它接受训练后的进化(比如不断地调整参数),从而得到最佳的预测状态。

机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE的更多相关文章
- sklearn机器学习实战-简单线性回归
记录下学习使用sklearn,将使用sklearn实现机器学习大部分内容 基于scikit-learn机器学习(第2版)这本书,和scikit-learn中文社区 简单线性回归 首先,最简单的线性回归 ...
- scikit-learn机器学习(一)简单线性回归
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt ## 设置字符集,防止中文乱码 import ma ...
- 机器学习:衡量线性回归法的指标(MSE、RMSE、MAE、R Squared)
一.MSE.RMSE.MAE 思路:测试数据集中的点,距离模型的平均距离越小,该模型越精确 # 注:使用平均距离,而不是所有测试样本的距离和,因为距离和受样本数量的影响 1)公式: MSE:均方误差 ...
- 机器学习与Tensorflow(1)——机器学习基本概念、tensorflow实现简单线性回归
一.机器学习基本概念 1.训练集和测试集 训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集 测试集(test ...
- 机器学习之五 正则化的线性回归-岭回归与Lasso回归
机器学习之五 正则化的线性回归-岭回归与Lasso回归 注:正则化是用来防止过拟合的方法.在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数.但是一直也无法对其基 ...
- 机器学习:单元线性回归(python简单实现)
文章简介 使用python简单实现机器学习中单元线性回归算法. 算法目的 该算法核心目的是为了求出假设函数h中多个theta的值,使得代入数据集合中的每个x,求得的h(x)与每个数据集合中的y的差值的 ...
- 机器学习——Day 2 简单线性回归
写在开头 由于某些原因开始了机器学习,为了更好的理解和深入的思考(记录)所以开始写博客. 学习教程来源于github的Avik-Jain的100-Days-Of-MLCode 英文版:https:// ...
- Python_sklearn机器学习库学习笔记(一)_一元回归
一.引入相关库 %matplotlib inline import matplotlib.pyplot as plt from matplotlib.font_manager import FontP ...
- 一元回归1_基础(python代码实现)
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...
随机推荐
- Proximal Gradient Descent for L1 Regularization(近端梯度下降求解L1正则化问题)
假设我们要求解以下的最小化问题: $min_xf(x)$ 如果$f(x)$可导,那么一个简单的方法是使用Gradient Descent (GD)方法,也即使用以下的式子进行迭代求解: $x_{k+1 ...
- 【转】 nginx重定向规则详细介绍
rewrite命令 nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,loc ...
- 【转】 nginx rewrite 伪静态配置参数详细说明
nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分 ...
- SolidEdge 如何绘制局部视图 局部放大图
创建局部视图(局部放大图),先选择要创建局部放大图的视图,然后绘制一个小圆,然后绘制一个大圆即可. 如果要绘制不规则形状的局部放大图,则点击了局部放大图之后,点击绘制草图的按钮 随后可以用相切 ...
- 二:redis 的hash类型相关操作
=====================二种:hash类型================== 介绍:redis -> hash是一个string类型的field和value的映射表 hash ...
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...
- 【转载】一致性哈希算法(consistent hashing)
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈 ...
- HTML初体验
ios讨论群1群:135718460 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比"文本"更丰富 ...
- mysql数据库隔离级别及其原理、Spring的7种事物传播行为
一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- Codeforces Round #326 (Div. 2)
B. Duff in Love time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...