模型:一元线性回归模型

回归分析:建立方程模拟两个或者多个变量之间是如何相互关联,被预测的变量称为因变量(结果),用来进行预测的变量称为

自变量(输入参数),当输入参数只有一个(输出1个)时,称为一元回归,反之当输入有多个(输出1个),称为多元回归;

一元线性回归模型如下所示:(我们只需确定此方程的两个参数即可)

第一个参数为截距,第二个参数为斜率(我们只需根据大量的数据集通过训练求解即可^_^)

为了求解上述参数(或许求解的参数更多)我们在这里引入代价函数(cost function),在这里以一元线性回归模型为例

上述式子不难理解,为真实值与预测值之间的差值的平方(当然也可以取绝对值,但为便于后续数值操作取其平方),最后

取所有训练集个数的平均值。而我们就是在取某个(些)参数时,使得上述函数取得最小值(误差最小!)结合下图直观理解。

上述由一些参数构成的函数称为代价函数,我们的目标就是求解对应的参数使得代价函数达到最小值,最后确定模型;

梯度下降法(确定所要求解的参数,在神经网络模型中也会有所应用): 其具体步骤如下图所示

使用此方法最重要的就是确定代价函数,且此函数可以收敛到最小值(凸函数),对于初始化操作,一般情况下赋值为0即可

所谓的梯度优化,就是不断的更改参数值,使之最后到达一个全局(局部)最小值,参数更新过程如下;

一般情况下的参数求解,对每个参数求偏导数;

这一个参数更新要求是同步更新,即最后在对参数进行更新,这里的α为学习率,通常取值为0.01,0.001,0.03,0.003等

学习率不易过高也不能过低,当过高是会导致永远到达不了收敛点(发散),当过低时会导致收敛过慢,影响收敛速度;

在这里的一元线性回归模型我们确定的参数只有两个,其参数求解方式如下图所示:

实战 (fight)

在这里我们以一个生产成本对月产量的影响为例,确定两者之间的线性关系(当然未必一定是线性)

下图红色部分是通过梯度下降求解出的拟合直线,蓝色为通过python自带的库sklearn拟合出的直线(两者大体相同)

import numpy as np  #导入numpy
import matplotlib.pyplot as plt #导入图像绘制库
from sklearn.linear_model import LinearRegression  #线性回归库

上述为我们常用的三个库文件的导入方式,numpy(矩阵运算),pyplot(图像绘制),sklearn

#训练集,以及相关参数
dataX=[]# X数据集
dataY=[]# Y数据集
with open('DataSet') as f:for line in f:line=line.strip('\n').split(' ')dataX.append(float(line[0]))dataY.append(float(line[1]))k=0 # 斜率
b=0 # 截距  初始化参数
learnrate= 0.03 # 学习率
step = 50 # 学习次数
#梯度下降法求解参数
for i in range(step):temp1=0temp0=0for j in range(len(dataX)):temp0=temp0+(k*dataX[j]+b-dataY[j])/len(dataX)temp1=temp1+(k*dataX[j]+b-dataY[j])*dataX[j]/len(dataX)k=k-learnrate*temp1b=b-learnrate*temp0 #求解参数
#通过sklearn库训练数据
model=LinearRegression()
model.fit(np.array(dataX).reshape(-1,1),np.array(dataY).reshape(-1,1))
plt.plot(dataX,model.predict(np.array(dataX).reshape(-1,1)),'b')
#绘制散点以及拟合直线图像
plt.xlabel('X')
plt.ylabel('Y')# 设置横纵坐标
plt.scatter(dataX,dataY)# 绘制散列表
plt.plot(dataX,k*np.array(dataX)+b,'r')# 绘制拟合直线
plt.show()

这里的scatter传入的参数为X和Y坐标列表,要求X和Y列表内元素个数相同,plot用于绘制曲线第一个参数为X坐标,第二

个参数为函数方程(Y坐标),第三个参数为曲线的颜色。

拟合出的一元线性回归方程为:y=1.274974x+0.879003;

机器学习(一元线性回归模型)相关推荐

  1. 吴恩达-机器学习-一元线性回归模型实现

    吴恩达<机器学习>2022版 第一周 一元线性回归 房价预测简单实现 import numpy as np import math, copy#输入数据 x_train = np.arra ...

  2. 传统机器学习模型解说01:一元线性回归模型

    引入 年薪和工作年限有关吗? 可见两个变量之间存在明显的线性关系,而根据常识,工作年限是因,年薪是果. 那么,是否存在某个模型,如图中的一次函数直线,来描述两个变量之间的关系呢? 原理简述与背景介绍 ...

  3. 一元线性回归模型及其Python案例

    回归的概念:(其实就是用曲线拟合的方式探索数据规律) 回归问题的分类: 一元线性回归: 线性回归模型是利用线性拟合的方式探寻数据背后的规律.如下图所示,先通过搭建线性回归模型寻找这些散点(也称样本点) ...

  4. 【统计学笔记】如何判断变量间相关关系,并建立一元线性回归模型?

    本章内容: 判断两个变量间是否有相关关系,且关系强度如何? 如何建立一元线性回归模型,且模型效果如何? 如何利用回归方程进行预测? 为什么要进行残差分析,及如何进行分析? 索引

  5. 计量经济学-简单的一元线性回归模型之一

    一元回归模型 回归分析和相关分析之间的差别 相关分析研究的是变量之间的线性相关性,而回归分析要研究的是解释变量和被解释变量之间的平均关系.相关分析中,变量都是随机变量:而回归分析中,解释变量是确定的, ...

  6. 计量经济学——一元线性回归模型(例题)

    题目:对一元线性回归模型 Y i = β 0 + β 1 X i + μ i Y_{i}=\beta_{0}+\beta_{1}X_{i}+\mu_{i} Yi​=β0​+β1​Xi​+μi​,试证明 ...

  7. 《计量经济学》学习笔记之一元线性回归模型

    注意:本笔记以文字概括为主,公式为辅,问为啥,因为贴图片和打公式对于我来说,太烦啦~所以,就只把每个章节里觉得重要的一些概念记下来. 书籍:<计量经济学(第三版)>–李子奈 导航 下一章: ...

  8. 32 回归分析——一元线性回归模型

    1.一元线性回归模型 线性模型 2.最小二乘法 3.假设检验 4.预测 5.评估 6.误差 7.决定系数 8.一元线性回归方程

  9. 一元线性回归模型预测双十一销售额

    又是一年一度"剁手节"有人说感到今年的双十一冷清了许多,很多人都很好奇今年双十一会产生多少交易额?SPSAU这里打算科学预测一下今年的天猫"双十一"的销售额. ...

最新文章

  1. cache三种映射方式
  2. 加载 Firefox 配置
  3. GDCM:解析XPATH文件的测试程序
  4. OpenGL 绘制grass草的实例
  5. linux下tomcat无法启动
  6. 企业应用超级App来啦!
  7. rust笔记13 闭包
  8. Android扩大点击事件接收区域范围
  9. VC制作 Windows服务 安装包
  10. R+markdown+LaTeX 中文编译解决方案
  11. Android Tween动画之RotateAnimation实现图片不停旋转
  12. Linux内核CPU负载均衡机制
  13. windows及iis网站配置https证书
  14. SwitchHost常见问题解决
  15. 读《从零开始学理财》
  16. linux 关闭屏幕键盘 软键盘
  17. mysql安装依赖perl(Data::Dumper)
  18. 今日头条网页数据采集接口
  19. ESN(Electronic Serial Number,电子序列号)简介
  20. 手机屏幕常见故障_手机屏幕失灵怎么回事 手机屏幕失灵解决办法

热门文章

  1. 正交最小二乘法求解NARMAX
  2. 推荐系统实践读书笔记
  3. Java中的方法重载定义详解
  4. 2019最新某图灵系列丛书(交互设计、编程、大数据、人工智能等)
  5. 台灯哪个牌子的比较好保护视力的?推荐几款眼科专家认证的护眼台灯
  6. Python调用多个jar包by jpype
  7. 【Python】如何写一个锅炉温控系统
  8. 情感驿站 | 大学生应该明白的事情
  9. MSN登陆不了,显示主要端口有问题
  10. Kali linux下使用john破解zip密码