标准方程法推导

对于标准方程法,我们得到其损失函数如下(因为损失函数为二次函数,所以图像上只有一个坑,不可能出现多个极小值):

将其展开为矩阵形式(这里矩阵中的www就是损失函数中的θθθ,表示模型的参数,每一个xxx表示一个特征(x0表示偏置)x_0 表示偏置)x0​表示偏置)),yyy表示训练集的真实值):

对矩阵进行求导:

梯度下降法和标准方程法的比较:

用python实现标准方程法

部分data.csv数据:

import numpy as np
from numpy import genfromtxt
import matplotlib.pyplot as plt# 载入数据
data = np.genfromtxt("data.csv", delimiter=",")
# 去第0列为x_data,但是把x_data变成二维的
x_data = data[:,0,np.newaxis]
y_data = data[:,1,np.newaxis]# 给样本添加偏置项,将x_data添加一列1
X_data = np.concatenate((np.ones((100,1)),x_data),axis=1)# 重点:标准方程法求解回归参数
def weights(xArr, yArr):xMat = np.mat(xArr)yMat = np.mat(yArr)xTx = xMat.T*xMat # 矩阵乘法# 计算矩阵的值,如果值为0,说明该矩阵没有逆矩阵if np.linalg.det(xTx) == 0.0:print("This matrix cannot do inverse")return# xTx.I为xTx的逆矩阵ws = xTx.I*xMat.T*yMatreturn ws# 调用标准方程法函数
ws = weights(X_data,y_data)# 画图,取值从20取到80
x_test = np.array([[20],[80]])
y_test = ws[0] + x_test*ws[1]
plt.plot(x_data, y_data, 'b.')
plt.plot(x_test, y_test, 'r')
plt.show()


说明:sklearn中的线性回归就是标准方程法实现的

用sklearn实现一元线性回归

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as pltdata=np.genfromtxt("D:\gzu_ml\资料\程序\回归\data.csv",delimiter=",")x_data=data[:,0,np.newaxis]
y_data=data[:,1,np.newaxis]
# 创建模型
model=LinearRegression()
# 训练模型
model.fit(x_data,y_data)plt.plot(x_data,y_data,'b.')
plt.plot(x_data,model.predict(x_data),'r')
plt.show()

用sklearn实现二元线性回归

from sklearn import linear_model
import numpy as np
import matplotlib.pyplot as plt
from numpy import genfromtxt
import mpl_toolkits.mplot3d as Axes3Ddata=np.genfromtxt("D:\gzu_ml\资料\程序\回归\Delivery.csv",delimiter=",")
# 切分数据
# 将前面两列作为x_data
x_data=data[:,:-1]
# 最后一列作为y_data
y_data=data[:,-1]# 创建模型
model=linear_model.LinearRegression()
# 训练模型
model.fit(x_data,y_data)ax = plt.figure().add_subplot(111, projection = '3d')ax.scatter(x_data[:,0], x_data[:,1], y_data, c = 'r', marker = 'o', s = 100) #绘制真实值  x0 = x_data[:,0]
x1 = x_data[:,1]
# 生成网格矩阵
x0, x1 = np.meshgrid(x0, x1)
# intercept表示训练得到的截距,coef_表示训练得到的系数
z = model.intercept_+x0*model.coef_[0]+x1*model.coef_[1]
# 绘制二维平面
ax.plot_surface(x0, x1, z)
#设置坐标轴
ax.set_xlabel('Miles')
ax.set_ylabel('Num of Deliveries')
ax.set_zlabel('Time')  #显示图像
plt.show()

线性回归-----标准方程法实现线性回归方程相关推荐

  1. 线性回归_线性回归方程

    你的线性回归是指被估参数是线性的回归吗?被估参数是线性是指:把参数视为变量,参数相对于x是线性的.比如:y=kx+b这是典型的线性回归还有:y=ax^2+bx+c,把x^2及x看成a,b的系数的话,a ...

  2. matlab怎么建立一元线性回归方程,MATLAB实现一元线性回归的多种方式

    1.引言回归分析,是对现有数据进行处理.从中发现有用信息的一种重要手段.而线性回归,特别是一元线性回归分析更是人们优先考虑采用的方式.基于此,本文就一元线性回归的MATLAB实现作了一番探讨,给出了多 ...

  3. 最小二乘法构建线性回归方程

    目录 一. 相关数学知识的定义 1.1 一元线性回归的定义 1.2 相关系数R²的定义 二.使用jupyter来做一元线性回归分析 2.1 根据最小二乘法公式手动构建一元线性回归模型 2.2 调用包实 ...

  4. R语言与多元线性回归方程及各种检验

    R语言与多元线性回归方程及各种检验 文章目录 R语言与多元线性回归方程及各种检验 一.模型建立 二.多重共线性 (1)产生的背景: (2)多重共线性的检验 1.简单相关系数法: 2.方差膨胀因子(vi ...

  5. matlab 最小二乘法拟合_高中数学:最小二乘法与线性回归方程

    1.怎样的拟合直线最好?--与所有点都近,即与所有点的距离之和最小. 最小二乘法可以帮助我们在进行线性拟合时,如何选择"最好"的直线.要注意的是,利用实验数据进行拟合时,所用数据的 ...

  6. 基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比

    基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比目录 一.梯度下降算法的基本原理 1.梯度下降算法的基本原理 二.题 ...

  7. 标准方程法(normal equation)公式推导

    最近在看吴恩达的机器学习网课,讲到标准方程法的时候没有给出推导,在参考了两篇博客后推导出来了,记录一下. 机器学习之正规方程法推导 机器学习--线性回归中正规方程组的推导 两篇文章都给出了推导需要的基 ...

  8. 用Excel求线性回归方程

    文章目录 一.何为线性回归 二.如何制作线性回归 最小二乘法 三.利用Excel求线性回归方程 操作方法 1.选择需要拟合的数据 2.点击工具栏的插入,选择插入散点图 3.在生成的表格右上角勾选上生成 ...

  9. 多元线性回归方程原理及其推导

    多元线性方程原理及推导 概念 1.在统计学中,线性回归方程是利用最小二乘函数对一个或多个自变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合.只有一个自变量的情况 ...

最新文章

  1. 漫画:到底什么是微服务?
  2. ReentrantLock和Condition理解及应用
  3. linux传输文件无密码,Linux下scp无密码上传 下载 文件 目录
  4. 数据库升级后,准备使用原有数据文件启动数据库
  5. linux c 调用python_C程序调用Python脚本
  6. IDEA 2020.3 连接mysql数据库报错解决
  7. 如何查看 Linux 中所有正在运行的服务
  8. 程序员除了转行做管理,还可以做什么?
  9. 斯坦福-随机图模型-week1.4_
  10. 洛谷P2057 [SHOI2007]善意的投票 题解
  11. flask使用pymysql连接MySQL,生成xls文件并下载到本地
  12. Mppt光伏最大功率点跟踪控制matlab仿真
  13. myeclipse10破解找不到common文件夹的问题
  14. Docker 配置国内镜像加速器,加速下载速度
  15. mysql 64 免安装_MYSQL 免安装版(windows 7/64)
  16. 用OpenCV计算图像的亚像素值
  17. SpringCloud OpenFeign 整合 logbook 实现链路日志
  18. Android 移植iperf3.13 测试网络
  19. python 智禅_禅道是什么意思:非禅不智,非智不禅
  20. Python人脸图像特征提取方法

热门文章

  1. 记一次Process finished with exit code 1 项目异常
  2. 数字门店要怎么运营,才能助力线下门店降本增效?
  3. 云服务下半场,企业增长的超级入口在哪?
  4. 当代女性修身养性的箴言书——《读史做女人》
  5. 饿了么组件el-image使用本地图片
  6. 视频流媒体服务器ONVIF探测和云台控制是如何设置的?
  7. 高匿代理,混淆代理,匿名代理,透明代理略解
  8. 计算机学院杨洋,计算机学院
  9. 第2章 第2节-Dijkstra Astar
  10. 微软再推 Rust 语言免费中文教程,更香了!