2019/3/30
二元线性回归——矩阵公式法_又名:对于python科学库的糟心尝试_
二元线性回归严格意义上其实不过是换汤不换药,我对公式进行推导,其实也就是跟以前一样的求偏导并使之为零,并且最终公式的严格推导我大概也只能说是将将理解,毕竟最初的矩阵一开始都不太清楚应该是什么样子的,其中,Coursera的课程起到了非常显著的帮助。
其实这个部分我并不想写太多,因为理解并不是十分透彻,总体来讲,感觉就是一个公式的事情,其中对于python数据类型以及python库函数的使用反而耗费的时间更多,回头来更新。
python库函数的运用非常重要,也是卡住我好久的主要原因,其次,对于python几种数据结构类型也让我十分苦恼,毕竟我不太清楚大部分函数会返回给我什么样的结果。
其中最终的公式应该说是非常普及了,随便的搜索便可查找到,虽然花了这么大的功夫,最终带给我的印象却是远远不及梯度下降的那种循序渐进看着计算机一步步探索来的深刻。
然而,这不正是前人的努力所要想做到的一步到位的方式吗?
虽然是真真正正的计算公式,但是若是面对特殊的矩阵情况或者过大的矩阵,这个方法也是力不从心的,详情我不多赘述,毕竟我还是个没有系统学习线代概率的赤脚蒟蒻。
先这样,或许会再来更新吧。
以下是利用Coursera提供的部分数据进行的实现图像:

这里给出完整代码:

import xlrd
import sympy as sp
import xlwt
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
workbook=xlrd.open_workbook(r'dataset.xlsx')sheet=workbook.sheet_by_index(0)
Y1=sheet.col_values(0)
X1=sheet.col_values(1)
X2=sheet.col_values(2)
#Axes3D
fig = plt.figure()
ax = Axes3D (fig)
ax.scatter(X1, X2, Y1)
#H为100*3矩阵,读入现有数据,第0列为1
H=[]
for i in range(100):values=[]values.append(1)values.append(X1[i])values.append(X2[i])H.append(values)
#将H0数组化
H0 = np.array(H)
#H1为H的转置矩阵
H1=np.array(H0).T
H2=H1@H0
#求逆矩阵
H3=np.linalg.inv(H2)
#最终结果计算
temp=H3@H1@Y1
temp=np.mat(temp)
w0=temp[0,0]
w1=temp[0,1]
w2=temp[0,2]
#生成两坐标轴取点
x1=np.linspace(0,5000,100)
x2=np.linspace(0,5,100)
#将两坐标轴点合成
x1, x2 = np.meshgrid(x1, x2)
#结果方程,并输出最终结果图
#z=w0+w1*x1+w2*x2
ax.plot_surface(x1,x2,w0+w1*x1+w2*x2)
plt.show()

转载于:https://www.cnblogs.com/LOSKI/p/10639733.html

Python实现——二元线性回归(最小二乘法)相关推荐

  1. python做二元线性回归_python上的二元线性回归

    除了前面的优秀答案外,这里还有一个图形装配器,它有一个3d散点图.3d曲面图和一个等高线图. import numpy, scipy, scipy.optimize import matplotlib ...

  2. 多元线性回归最小二乘法及其应用

    Cholesky分解求系数参考: [1]冯天祥. 多元线性回归最小二乘法及其经济分析[J]. 经济师,2003,11:129. 还可以采用最小二乘法来估计参数: 算法设计也可以参考两种系数最终公式设计 ...

  3. Python实现多元线性回归

    Python实现多元线性回归 线性回归介绍 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛.其表达形式为y = w'x+e,e为误差服从 ...

  4. 一文带你用Python玩转线性回归模型《加利福尼亚房价预测》回归模型评估指标介绍

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 前言 这 ...

  5. 用python实现一元线性回归方法与区间估计

    一元线性回归方法 本文参考浙大<概率论与数理统计>第四版使用python进行实现一元线性回归分析方法,在文末会介绍一个应用实例,有关详细理论可参见书藉,或者参考百度文库下该章对应课件: 浙 ...

  6. Python解二元一次方程

    使用Python解二元一次方程组 用到的库:sympy 下面举一个例子: 解方程组:y = x + 1,y = -x + 1 #导入sympy from sympy import *#定义变量 x = ...

  7. 【python机器学习】线性回归--梯度下降实现(基于波士顿房价数据集)

    波士顿房价数据集字段说明 crim 房屋所在镇的犯罪率 zn 面积大于25000平凡英尺住宅所占比例 indus 房屋所在镇非零售区域所占比例 chas 房屋是否位于河边 如果在河边,值1 nox 一 ...

  8. Python手写线性回归算法

    作者 | 苏南下 来源 | 机器会学习ML(ID:AI_Learning007) 摘要:通俗易懂介绍线性回归算法,并 Python 手写实现. 之前我们介绍了:kNN 算法,主要用于解决分类问题,也可 ...

  9. python定义类方法用来计算整数的减法运算_详解python的二元算术运算,为什么说减法只是语法糖?...

    原标题:详解python的二元算术运算,为什么说减法只是语法糖? 原题 | Unravelling binary arithmetic operations in Python 作者 | Brett ...

最新文章

  1. 解决iscroll.js上拉下拉刷新手指划出屏幕页面无法回弹问题
  2. UrlPager免费分页控件2.0版发布!
  3. [唐诗]182宫中行乐词(其一)-李白
  4. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Clien
  5. js判断wifi_使用JS在浏览器中判断当前网络连接状态的几种方法
  6. 验证redis的主从复制
  7. mysql安装sql文件怎么打开_sql文件用什么打开?如何打开sql文件?
  8. 线性共轭梯度法python_基于Python共轭梯度法与最速下降法之间的对比
  9. 2022年Web前端开发流程和学习路线(详尽版)
  10. php 电梯程序设计,西门子300PLC编写三层电梯程序的设计与模拟
  11. 苹果台式机忘记开机密码怎么办
  12. 中国网络游戏行业研究报告-2010
  13. [Vue warn]: You may have an infinite update loop in watcher with express
  14. Windows Sever 2008 磁盘管理--磁盘分区
  15. CodeForces - 366C Dima and Salad (01背包)
  16. 半导体放电管TSS详解
  17. 10g数据库入门与实践 oracle_oracle10g数据库入门与实践
  18. video analysis -- 弱监督的动作检测-UntrimmedNets
  19. h61支持服务器内存吗,h61支持什么内存条
  20. 零基础创作专业wordpress网站06-制作主页(elementor)

热门文章

  1. iOS 升级https的方案选择
  2. net与树莓派的情缘-安装与卸载MySql(五)
  3. 在64位系统上注册并使用32位的COM组件
  4. [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
  5. 使用SQL Server 2008提供的表分区向导
  6. 【linux】 -设备名称与文件目录
  7. css --- 伸缩布局,让图片居中
  8. 算法 --- 有效的括号
  9. Java 类的特性2
  10. AppDelegate瘦身之服务化