Simple Linear Regression (简单的线性回归)

相关变量

example:

在过去的一个月里,猪肉的价格从8元一斤一路涨到了20元一斤。市面上的肉夹馍也逐渐从10元一个涨到了15元一个。在第二个月的第一天,我们发现猪肉的价格涨到了22元。那么肉夹馍的价格会涨到多少呢

variable(变量):

1、preddict target(预测对象) :y (what we want to predict)
2、feature(特征): x 已知的参数

所以训练数据集为:
{(xi,yi)}i=1n\{(x_i,y_i)\}^n_{i=1}{(xi​,yi​)}i=1n​
假设我们对过去的30天进行了统计则 n=30,则 xi ,yi 分别为第 i 天的猪肉价格和肉夹馍价格。

parameters(参数):

3、slope(斜率): β1
4、intercept(截距): β0

在上面的例子中,我们的预测对象y,就是肉夹馍的价格。而我们的已知特征x就是猪肉的价格。
那么关于y和x之间的关系,我们可以选择最简单的线性方程
y=ax+by=ax+by=ax+b
其中我们使β0=b,β1=aβ{_0}=b, β{_1}=aβ0​=b,β1​=a
便得到了关于肉夹馍价格x和猪肉价格y的线性预测模型:
yˆ=β0+β1x\^y=β{_0}+β{_1}xyˆ​=β0​+β1​x
在这个模型中,β0和β1这两个参数选的越好,模型的预测结果就越准确。

Least-Squares Fit:

在这里,我们使用least-squares(LS) fit去得到这两个参数。
首先计算 Residual sum of squares(RSS):
RSS(β0,β1)=∑i=1n(yi−yˆi)2RSS(β{_0},β{_1})=\sum_{\ i=1}^n{(y_i- \^y_i)^2}RSS(β0​,β1​)= i=1∑n​(yi​−yˆ​i​)2
为了进行下一步的计算,先声明一些需要计算的参数:

名称 公式
样本均值(Sample mean) xˉ=1n∑i=1nxiyˉ=1n∑i=1nyi\bar x=\frac1n\sum_{\ i=1}^n{x_i}\\ \bar y=\frac1n\sum_{\ i=1}^n{y_i}xˉ=n1​ i=1∑n​xi​yˉ​=n1​ i=1∑n​yi​
样本方差(Sample variance) Sx2=1n∑i=1n(xi−xˉ)2Sy2=1n∑i=1n(yi−yˉ)2S^2_x =\frac1n\sum_{\ i=1}^n{(x_i- \bar x)^2}\\S^2_y =\frac1n\sum_{\ i=1}^n{(y_i- \bar y)^2}Sx2​=n1​ i=1∑n​(xi​−xˉ)2Sy2​=n1​ i=1∑n​(yi​−yˉ​)2
样本标准差(Standard deviation) Sx=1n∑i=1n(xi−xˉ)2Sy=1n∑i=1n(yi−yˉ)2S_x = \sqrt {\frac1n\sum_{\ i=1}^n{(x_i- \bar x)^2}}\\S_y = \sqrt {\frac1n\sum_{\ i=1}^n{(y_i- \bar y)^2}}Sx​=n1​ i=1∑n​(xi​−xˉ)2​Sy​=n1​ i=1∑n​(yi​−yˉ​)2​
样本协方差(Sample covariance) Sxy=1n∑i=1n(xi−xˉ)(yi−yˉ)S_{xy} = \frac1n\sum_{\ i=1}^n{(x_i- \bar x)(y_i- \bar y)}Sxy​=n1​ i=1∑n​(xi​−xˉ)(yi​−yˉ​)
样本相关系数(Sample correlation coefficient) ρxy=SxySxSy=1n∑i=1n(xi−xˉ)(yi−yˉ)1n∑i=1n(xi−xˉ)⋅1n∑i=1n(yi−yˉ)\rho_{xy}=\frac{S_{xy}}{S_xS_y} = \frac{\frac1n\sum_{\ i=1}^n{(x_i- \bar x)(y_i- \bar y)}}{\frac1n\sum_{\ i=1}^n{(x_i- \bar x)}·\frac1n\sum_{\ i=1}^n{(y_i- \bar y)}}ρxy​=Sx​Sy​Sxy​​=n1​∑ i=1n​(xi​−xˉ)⋅n1​∑ i=1n​(yi​−yˉ​)n1​∑ i=1n​(xi​−xˉ)(yi​−yˉ​)​

现在我们开始计算β0和β1,因为RSS计算的是真实值和预测值之间的差的平方,所以理论上,RSS越小则模型越准。而RSS是一个关于β0和β1的二元二次方程,并且二次参数的系数为正数,所以理论上,偏导为0的点就是最小值点,那么开始暴力求导吧!
0=∂RSS(β0,β1)∂β0=ddβ0∑i=1n(yi−β0−β1xi)2=−2∑i=1n(yi−β0−β1xi)(1)0=\frac{\partial RSS(β{_0},β{_1})}{\partial β{_0}} =\frac{d}{d β{_0}}\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)^2}\\=-2\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)} \tag{1}0=∂β0​∂RSS(β0​,β1​)​=dβ0​d​ i=1∑n​(yi​−β0​−β1​xi​)2=−2 i=1∑n​(yi​−β0​−β1​xi​)(1)
0=∂RSS(β0,β1)∂β1=ddβ1∑i=1n(yi−β0−β1xi)2=−2∑i=1n(yi−β0−β1xi)xi(2)0=\frac{\partial RSS(β{_0},β{_1})}{\partial β{_1}} =\frac{d}{d β{_1}}\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)^2}\\=-2\sum_{\ i=1}^n{(y_i-β{_0}-β{_1}x_i)x_i}\tag {2}0=∂β1​∂RSS(β0​,β1​)​=dβ1​d​ i=1∑n​(yi​−β0​−β1​xi​)2=−2 i=1∑n​(yi​−β0​−β1​xi​)xi​(2)
结合上表公式可从(1)⟹0=yˉ−β0−β1xˉ⟹β0=yˉ−β1xˉ(3)\Longrightarrow0=\bar y-β{_0}-β{_1}\bar x\\ \Longrightarrowβ{_0}=\bar y-β{_1}\bar x \tag{3}⟹0=yˉ​−β0​−β1​xˉ⟹β0​=yˉ​−β1​xˉ(3)
推导(2)可得0=1n∑i=1nxiyi−xˉβ0−yi−β11n∑i=1nxi2(4)0=\frac1n\sum_{\ i=1}^n{x_iy_i- \bar xβ{_0}-y_i-β{_1} \frac1n\sum_{\ i=1}^nx^2_i}\tag{4} 0=n1​ i=1∑n​xi​yi​−xˉβ0​−yi​−β1​n1​ i=1∑n​xi2​(4)
将(3)代入(4)中
0=1n∑i=1nxiyi−xˉyˉ−β1(1n∑i=1nxi2−xˉ2)⟹β1=SxySx2(5)0=\frac1n\sum_{\ i=1}^nx_iy_i- \bar x \bar y-β{_1}( \frac1n\sum_{\ i=1}^nx^2_i-\bar x^2)\\ \Longrightarrow β{_1} =\frac{S_{xy}}{S_x^2}\tag{5}0=n1​ i=1∑n​xi​yi​−xˉyˉ​−β1​(n1​ i=1∑n​xi2​−xˉ2)⟹β1​=Sx2​Sxy​​(5)
通过(3),(5)我们就可以得到β0,β1的最佳值。
其中
Sxy=1n∑i=1nxiyi−xˉyˉSx2=1n∑i=1nxi2−xˉ2S_{xy}= \frac1n\sum_{\ i=1}^n{x_iy_i- \bar x \bar y}\\ S_x^2=\frac1n\sum_{\ i=1}^nx^2_i-\bar x^2Sxy​=n1​ i=1∑n​xi​yi​−xˉyˉ​Sx2​=n1​ i=1∑n​xi2​−xˉ2

模型评估(Model evaluation)

将得到的β0,β1代入RSS方程可得
RSS(β0,β1)=n(1−ρxy2)Sy2RSS(β{_0},β{_1})=n(1-\rho_{xy}^2)S_y^2 RSS(β0​,β1​)=n(1−ρxy2​)Sy2​
通常我们计算R2来评估模型的好坏
R2=1−RSS/nSy2=ρxy2R^2=1-\frac{RSS/n}{S_y^2} =\rho_{xy}^2R2=1−Sy2​RSS/n​=ρxy2​
如果
R2=1,则这个模型很好
R2=0,则表示这个模型的准确率和随机模型差不多
R2<0,则该模型还不如扔色子来的准

至此一个简单的线性回归模型,从训练的评估的全过程就结束啦!

机器学习复习:线性回归1相关推荐

  1. 哈工大机器学习复习笔记(一)

    本篇文章是在参考西瓜书.PPT课件.网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助.这篇笔记只是复习的一个参考,大家一定要结合书本.PPT来进行复习,有些公式 ...

  2. matlab 多元多项式回归_Python机器学习之?线性回归入门(二)

    线性回归原理介绍 文章目录 机器学习分类 线性回归原理 线性回归定义 线性回归背后矩阵运算 机器学习分类 机器学习的主要任务便是聚焦于两个问题:分类和回归 分类相信大家都不会陌生,生活中会见到很多的应 ...

  3. ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)

    ML之回归预测:利用十类机器学习算法(线性回归.kNN.SVM.决策树.随机森林.极端随机树.SGD.提升树.LightGBM.XGBoost)对波士顿数据集[13+1,506]回归预测(模型评估.推 ...

  4. TF之LiR:基于tensorflow实现机器学习之线性回归算法

    TF之LiR:基于tensorflow实现机器学习之线性回归算法 目录 输出结果 代码设计 输出结果 代码设计 # -*- coding: utf-8 -*-#TF之LiR:基于tensorflow实 ...

  5. python 预测算法_通过机器学习的线性回归算法预测股票走势(用Python实现)

    本文转自博客园,作者为hsm_computer 原文链接:https://www.cnblogs.com/JavaArchitect/p/11717998.html在笔者的新书里,将通过股票案例讲述P ...

  6. Scikit-Learn 机器学习笔记 -- 线性回归、逻辑回归、softmax回归

    Scikit-Learn 机器学习笔记 – 线性回归.逻辑回归.softmax回归 参考文档: handson-ml import numpy as np from matplotlib import ...

  7. 机器学习多元线性回归_过度简化的机器学习(1):多元回归

    机器学习多元线性回归 The term machine learning may sound provocative. Machines do not learn like humans do. Ho ...

  8. opencv机器学习线性回归_Python机器学习之?线性回归入门(二)

    线性回归原理介绍 文章目录 机器学习分类 线性回归原理 线性回归定义 线性回归背后矩阵运算 机器学习分类 机器学习的主要任务便是聚焦于两个问题:分类和回归 分类相信大家都不会陌生,生活中会见到很多的应 ...

  9. 机器学习之线性回归_通过线性回归开始机器学习之旅

    机器学习之线性回归 线性回归 (Linear Regression) Linear regression is a part of Statistics that defines the relati ...

  10. 机器学习(三)线性回归、广义线性回归、非线性回归

    机器学习(三)线性回归模型.广义线性回归模型.非线性回归模型 线性回归(数据集要满足正态分布) 一元线性回归模型: 在这里会想到,如何确定方程中的系数呢?我们先来了解最小二乘法,简单来说就是这个点作y ...

最新文章

  1. CAS操作与无锁队列
  2. CentOS5.8下varnish-2.1.5的安装配置
  3. Java Machine Learning Tools Libraries--转载
  4. (Java)注解和反射
  5. 韩拓-七牛产品演进之路
  6. SAP 电商云 Spartacus UI 的单元测试和端到端测试,以及 CI/CD 相关话题
  7. SAP UI5 Opportunity popup
  8. 【渝粤题库】陕西师范大学200711 面向对象方法与C++ 作业
  9. Java学习之面板与布局管理器
  10. 11-Container With Most Water
  11. Caffe傻瓜系列(5):Blob,Layer and Net以及对应配置文件的编写
  12. MongoDB实战系列之三:MongoDB的主从部署
  13. Java-重复性代码统计第一篇
  14. 常见路由器初始密码合集
  15. Linux 下sha1加密
  16. 使命召唤手游显示服务器停服,使命召唤手游停服了吗 是手游还是端游
  17. 回收测试JInternalFrame
  18. Protected Process Light(PPL)微软系统进程保护机制
  19. python的手机官方下载地址,手机python下载安装教程
  20. 年轻人猝死频发,AI应用到心血管疾患筛查还有多远?

热门文章

  1. teracopy php,Unraid 升级到 UnRaid 6.0的详细操作步骤(三)
  2. python的自省与反射
  3. 5万字长文!SpringBoot 操作 ElasticSearch 详解
  4. 4K秒开,稀缺宝藏影视APP!
  5. C# 汉字转拼音 拼音转汉字 简体繁体互转
  6. 比python更高级的语言 j_算法X Python实现
  7. epub格式电子书剖析之二:OP…
  8. 血泪总结:如何从微信小程序的坑跳进支付宝小程序的大坑
  9. Word的扩展名是什么
  10. 硬件设计之一——电源设计01:电源防护