一.原理分析

1.如何计算一元线性回归方程最优参数

首先,假设我们有一条拟合上图这些散乱的点的直线f(x) = a*x + b ,那么我们如何判断这条线是否很好的拟合了这些点? 那么我们不妨用下面的方法 : 我们输入一个x , 得出对应的y值 , 然后在根据 真实的 y值 , 计算二者的误差, 误差越小说明直线拟合的越小

所以 我们可以得出一个损失函数 -> y - f(x) 真实的值减去 使用拟合函数计算得出的 值 就是二者的误差. 所以 我们可以计算出所有误差的和 , 这个值越小,说明总体拟合是比较好的, 为了防止出现 误差的值正负抵消的情况 (我是这么理解的), 所以我们求误差的值的平方 再求和
所以最后 误差公式是

如上图 : 这里 a 和 b 是 未知数 ,那么这个问题就转化成了一个数学问题 , 求 当 J 最小的时候 对应的
a , b 的值 ,这里涉及到了多元函数的极值问题 , 由误差函数我们可以知道 当偏导数的值是0的时候,可以求的极小值 ,所以我们可以对这个函数求偏导数 , 当偏导数的值等于0的时候 对应 a b 值
下面是推导过程




这里可以对公式进行行简单的变换

二.代码实现

1.导入依赖

import matplotlib.pyplot as plt

2.画出线性图

x = [2.8 ,2.9, 3.2 ,3.2, 3.4, 3.2, 3.3, 3.7, 3.9, 4.2]
y = [25.3,  27.6,  29.4,   32.3,  34.1,  36.2,  35.3,  39.1,  42,   45]plt.scatter(x,y)
plt.show()

3.使用最小二乘法计算参数

# 计算xy的均值
def avg(x):m = len(x)sum = 0for num in x:sum += numreturn sum / m# 构建拟合函数def fit(x, y):# 计算平均值x_avg = avg(x)y_avg = avg(y)m = len(x)# 计算参数的临时变量tmp_1 = 0;tmp_2 = 0;# 使用最小二乘法计算参数 afor i in range(m):tmp_1 += (x[i] - x_avg) * (y[i] - y_avg)tmp_2 += (x[i] - x_avg) ** 2a = tmp_1 / tmp_2# 计算b的值b = y_avg - a * x_avgreturn a,ba, b = fit(x, y)print(a)
print(b)
13.733100233100233
-11.787878787878775

4.验证

# 使用线性,模型计算值
pre_y = []for i in range(len(y)):pre_y.append(a * x[i] + b)# 使用计算出的值画图
# 散点图加直线
plt.scatter(x, y) # 画散点图
plt.plot(x, pre_y , c='r')
plt.show()

【线性回归】-最小二乘法求一元线性回归公式推导及代码实现相关推荐

  1. 最小二乘法求解一元线性回归

    最小二乘法求解一元线性回归 介绍线性回归模型以及简单一元线性回归模型的解法. 通过代码实现最小二乘法求解一元线性回归实例,并对结果进行预测. 一.线性回归 二.回归问题的解决 三.最小二乘法介绍 四. ...

  2. 梯度下降的线性回归用python_一元线性回归和梯度下降的python代码实现

    一元线性回归和梯度下降的python代码实现 2020-08-05 23:49 阅读数 9 import numpy as np import matplotlib.pyplot as plt imp ...

  3. python一元线性回归_Python实现——一元线性回归(梯度下降法)

    2019/3/25 一元线性回归--梯度下降/最小二乘法又名:一两位小数点的悲剧 感觉这个才是真正的重头戏,毕竟前两者都是更倾向于直接使用公式,而不是让计算机一步步去接近真相,而这个梯度下降就不一样了 ...

  4. 【一元线性回归】理论一镜到底!线性回归大总结——一元线性回归(1)

    考完研了,感觉考不上了,不想把总结资料浪费了,更一下线性回归.方差分析和时间序列的文章,也算是让笔记发了最后一份光和热,再接下来就是更新项目代码了,不会再写理论方面的文章了. 至少在我的目标院校来说, ...

  5. 第二章.线性回归以及非线性回归—一元线性回归,代价函数,相关系数,决定系数

    第二章.线性回归以及非线性回归 2.1 一元线性回归 1.概念: 1).自变量: 被用来进行预测的变量,相当于输入 2).因变量: 被预测的变量,相当于输出 3).回归分析: 用来建立方程模拟两个或者 ...

  6. 机器学习之最小二乘法完成一元线性回归【内附Python实现】

    最小二乘法代码实现 import numpy as np import matplotlib.pyplot as plt# 利用最小二乘法定义损失函数,w与b是预测函数的未知参数,ponits是坐标信 ...

  7. 【机器学习】线性回归——最小二乘法(理论+图解+公式推导)

  8. java 线性回归_Java实现一元线性回归

    最近在写一个荧光图像分析软件,需要自己拟合方程.一元回归线公式的算法参考了<Java数值方法>,拟合度R^2(绝对系数)是自己写的,欢迎讨论.计算结果和Excel完全一致. 总共三个文件: ...

  9. python一元线性回归算法_6一元线性回归_清华编程高手尹成带你基于算法实践python量化交易_其他视频-51CTO学院...

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  10. 一元线性回归python代码

    目录 1.最小二乘法: 2.梯度下降法: 3.理论加实践: 4.python代码: 4.1梯度下降法: 4.2最小二乘法 学习引入:机器学习中的参数模型(线性回归,逻辑回归)等.在这里我们只进行一元线 ...

最新文章

  1. 给力2011-东莞市南洋计算机软件有限公司 携手10大厂商提供企业安全有效节省成本解决方案...
  2. 选择之后触_如果有朋友在做选择时左右为难,我应该该给出什么样的建议
  3. 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告...
  4. ASP.NET页面的CheckBoxList组件
  5. iReport序号自增列
  6. 点击劫持:X-Frame-Options未配置
  7. 清浊音判别 matlab,matlab语音信号处理如何判别清浊音?
  8. 目标检测、分割、识别、分类综述
  9. 对python的功能和扩展功能的认知_Python基础-基础认知和库了解
  10. nginx负载php导致时间不一致,nginx – 为什么php-fpm会产生并在没有服务器负载的情况下每秒摧毁数百个孩子?...
  11. 5G协议标准化及进展
  12. python入门汇总
  13. Linux评分脚本,linux必看脚本大全
  14. layabox2.0 开发微信小游戏经验分享
  15. SWA(随机权重平均)
  16. C++ + win32 + STL 写的QQ连连看外挂
  17. 做事的态度与工作态度
  18. 对话 DenseNet 一作黄高:做有韧劲、能抗压、不断探索未知的科研
  19. 【论文笔记】在CommonsenseQA 上追平人类: 通过External Attention 增强 Self-Attention
  20. $.ajax()方法详解

热门文章

  1. win10开机登录不需要密码默认账号
  2. c语音10的n次方_在C语言中,10的n次方怎么表示?
  3. 2023计算机毕业设计SSM最新选题之java企业财务报销审核系统n8191
  4. 使用HTML制作静态网站(圣诞节案例)
  5. 小白功能测试项目实战篇01-dtsshop开源商城项目之【会员管理】模块测试点分析
  6. pyqt5优秀项目python_【项目】PYQT5--Python/C++实现网络聊天室
  7. 数据库 --- 约束
  8. matlab画函数微分图,【matlab】ode45求解二阶微分方程,绘制曲线图 | 使用函数句柄的方法...
  9. 在c语言中以下程序的动能,c语言超星尔雅期末测试答案
  10. 2021PMP最全大纲内容整理