文章来源:http://pocore.com/blog/article_529.html

系列阅读

原始数据  1 x  y  最终拟合为y=a*x+1*b
1.000000 0.067732 3.176513
...

xArr: [[1.0, 0.067732], [1.0, 0.42781], ...]

yArr: [3.176513, 3.816464, 4.550095,...]

矩阵转换
xMat:n*2
[[1.       0.067732]
 [1.       0.42781 ]
 ....]

yMat:n*1
[[3.176513]
 [3.816464]
 ...]

平方误差

普通最小二乘法讲解OLS

链接普通最小二乘法

系数求法公式:

矩阵的逆可能并不存在,因此必须要在代码中对此作出判断

xMat.T是xMat的转置  2*n

矩阵行列式 xTx=xMat.T*xMat  2*n *  n*2 =2*2

xTx:
 [[200.          97.6638    ]
 [ 97.6638      64.76838373]]

求矩阵的行列式,矩阵行列式|A|=0,则矩阵不可逆
判断 np.linalg.det(xTx)==0.0

求得为:3415.4589150723973

按照公式求出系数矩阵
 ws=xTx.I*(xMat.T*yMat)

ws=
 [[3.00774324]
 [1.69532264]]

画出散点和拟合直线

XMat:n*2
YMat:n*1

yHat=XMat*ws; 求出用拟合系数得到的y值

对照公式解释如下:
[[1.       0.067732]
 [1.       0.42781 ] 
 ....]
* [[3.00774324]
 [1.69532264]]

y=ax+b来说,

1. 是b的系数 3.00774324是b   
 0.067732是x  1.69532264是a

求得的yHat如下,对应上面公式的一系列y值
[[3.12257084]
 [3.73301922]
 ....]

作图参数:
x:XMat[:,1].flatten().A[0]
y:YMat.T[:,0].flatten().A[0]

ax.scatter(XMat[:,1].flatten().A[0],YMat.T[:,0].flatten().A[0])

ax.plot(XMat[:,1].flatten().A[0],yHat)

画出最终图如下:

出现新的点需要预测则带入yHat=XMat*ws;求出即可

评估拟合直线的好坏(相关系数)

NumPy库提供了相关系数的计算方法 corrcoef(yEstimate,
yActual)
前一个是参数预测值,后一个参数是真实值,相关系数越大则拟合效果越好
上面这个例子的相关系数corrcoef计算得到

relate=np.corrcoef(yHat.T,
YMat);

[[1.         0.98647356]
 [0.98647356 1.        ]]

即相关系数为0.98647356

普通最小二乘法讲解OLS线性回归相关推荐

  1. ols线性回归_普通最小二乘[OLS]方法使用于机器学习的简单线性回归变得容易

    ols线性回归 Hello Everyone! 大家好! I am super excited to be writing another article after a long time sinc ...

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

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

  3. 线性回归模型 —— 普通最小二乘法(OLS)推导与python实现

    一般回归模型中 回归的核心任务就是要通过样本信息来估计总体回归函数 一元线性回归模型: 一元线性回归模型假设x是一维的,即只考虑一个因素对y的影响,模型为 y=+x+μ,  E (μ|x)= 0 其中 ...

  4. 普通最小二乘法回归 - OLS (ordinary least square)

    前言 这篇博客用来记录初学 普通最小二乘回归 遇到的相关知识点和解决问题的过程. 开发环境:Pycharm 2018.1.2 版本:Python 2.7.14 :: Anaconda, Inc. 普通 ...

  5. python最小二乘法拟合_Python 普通最小二乘法(OLS)进行多项式拟合

    多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法: importnumpy as npimportpandas as pd#import statsmodel ...

  6. 普通最小二乘法(OLS)

    引言        对于一元线性回归模型,假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), -,(Xn,Yn).对于平面上的这n个点,可以使用无数条曲线拟合,要求样本回归函数尽可能好的拟合 ...

  7. 波士顿房价的三种预测方式(模型预测,最小二乘法,多元线性回归)

    首先导入库并避免显示错误FutureWorning import numpy as np import matplotlib.pyplot as plt import pandas as pd imp ...

  8. python多项式拟合_Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合。如 电...

    Python 普通最小二乘法(OLS)进行多项式拟合,最小二乘法拟合二次多项式,多元函数拟合.如 电 多元函数拟合.如 电视机和收音机价格多销售额的影响,此时自变量有两个. python 解法:imp ...

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

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

最新文章

  1. 白话spring依赖注入
  2. Android UI系列-----CheckBox和RadioButton(1)
  3. matlab常见用法汇总,包括绘制二维、三维曲线、圆、读取、保存图片/数据、数值精度、绘制圆、绘制角度等
  4. sentinel使用
  5. 十一、explain属性介绍
  6. 牛客练习赛36 F-Rabbit的蛋糕 (叉积求面积, 记录前缀)
  7. SQL Server 登录更换【Windows身份验证】为【SQL Server 身份验证】
  8. C++11 function用法 可调用对象模板类
  9. PyTorch 1.0 中文文档:torch.nn.init
  10. python函数类_python函数、类
  11. java OOP及相关基础知识汇总(转)
  12. postgre管理员 无法访问表_PostgreSQL常见问题处理方法
  13. 整数(奇偶)+分数分频器的verilog实现(大合集)
  14. 从零开始学android:环境搭建
  15. Please change your current directory to a writable directory outside of the MATLAB installation area
  16. 解决联想小新air13pro笔记本电脑插入耳机没声音的问题
  17. 51单片机入门 - 自己动手搭建实验板
  18. Cocos Creator SDK接入OPPO篇
  19. 如何将原始SNP信息转化为0,1,2的矩阵形式
  20. Typora快捷键全

热门文章

  1. nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)
  2. 实验4-1-4 求整数的位数及各位数字之和 (15分)(想象成剥洋葱)
  3. FMCW激光雷达科普(上):基本概念、技术路线、优势及争议和误解
  4. 给我写信 wyz831201王玉镇
  5. 代码执行sql出错:SQL syntax error, expected token is ‘RIGHT_PAREN‘, actual token is ‘IDENTIFIER‘
  6. 【心理咨询师考试笔记】基础理论(六)——心理咨询概论
  7. [小O地图-XOMAP] - 功能简介
  8. Android studio 导出安卓APP软件方法
  9. 笔记本电脑外接显示器出现灰屏
  10. Paypal国际版网站集成简易教程