最小二乘法 之 线性函数模型

原理可见https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95

链接需要科学上网(2015.10),

实现阶段有多种方法,本文采用维基百科最后介绍的广义逆矩阵的方法计算。

即输入矩阵的广义逆矩阵{点乘}输出矩阵 ,运算结果既为求解的 参数矩阵。

需要用到的函数为 pinv ,matlab中pinv(X) , python中numpy库中有此函数,即 : np.linalg.pinv

code:

#Global Vars
global params#train function
def train(train_x , train_y):global paramspinv = np.linalg.pinv(train_x)  # cacul the pseudo-inverse matrixparams = np.dot( pinv , train_y ) # figure out the paramsprint('The params:')print(params)

np.linalg.pinv求得train_x的广义逆矩阵 pinv , pinv 点乘 train_y 即得参数矩阵 params

以上即为训练过程。

随后可以进行回归:  即将测试数据的x矩阵点乘参数矩阵 ,可得模型得到的输出。

code

#test function
def test(test_x , test_y , result_path):global paramsrs = open(result_path , 'w')regressValue = np.dot(test_x,params)print('The regress value of test data:')print(regressValue)print('-------------------------------------------------------')print('The errors:')err = regressValue - test_yprint(err)print('The RMSE(root mean squared error) is:')MRSE  =  math.sqrt(np.sum(np.square(err)) / regressValue.size)print(MRSE)print('-------------------------------------------------------')

回归完成以后,可以通过MRSE(root mean squared error)观察回归效果。

源代码传送门(python):http://download.csdn.net/detail/zzukun/9210049

machine learning : 最小二乘法之线性函数 --- python实现相关推荐

  1. 机器学习(MACHINE LEARNING)MATLAB和Python混合编程

    文章目录 1 配置方法 2 使用方法 2.1 脚本 2.2 函数 1 配置方法 找到Matlab安装根目录,比如D:\matlab,然后进入D:\matlab\extern\engines\pytho ...

  2. Python手册(Machine Learning)--statsmodels(Regression)

    本站已停止更新,查看最新内容请移至本人博客 Wilen's Blog Regression Linear Regression(线性回归) Generalized Linear(广义线性回归) Gen ...

  3. Python Tools for Machine Learning

    2019独角兽企业重金招聘Python工程师标准>>> 原文:https://www.cbinsights.com/blog/python-tools-machine-learnin ...

  4. A Complete Machine Learning Walk-Through in Python

    A Complete Machine Learning Project Walk-Through in Python: Part One A Complete Machine Learning Pro ...

  5. Python手册(Machine Learning)--statsmodels(列联表和多重插补)

    列联表和多重插补 Contingency tables(列联表) Independence(独立性) Symmetry and homogeneity(对称性和同质性) A single 2x2 ta ...

  6. Auto Machine Learning笔记 - Bayesian Optimization

    原文链接:Auto Machine Learning笔记 - Bayesian Optimization 优化器是机器学习中很重要的一个环节.当确定损失函数时,你需要一个优化器使损失函数的参数能够快速 ...

  7. 【Sketchnotes】Machine Learning for Beginners 初学者机器学习

    本文的Sketchnotes来自微软的一位web和前端工程师小姐姐@girlie_mac,很喜欢这种风格的Sketchnotes,在这里进行汇总. 文章目录 History of machine le ...

  8. Machine Learning with Python Cookbook 学习笔记 第9章

    Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...

  9. [Python Machine Learning] 学习笔记之scikit-learn机器学习库

    1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...

最新文章

  1. 2020 Java 面试高薪攻略.pdf
  2. python余弦相似度
  3. 跳跃游戏Python解法
  4. jzoj100042-保留道路【最小生成树,图论】
  5. linux生成文件清单,Linux 获取文件名称生成列表 txt - create_filelist
  6. Linux下memcache的安装和启动(很好)
  7. 编程语言性能实测,Go 比 Python 更胜一筹?
  8. 青岛高新职业学校计算机专业,“把灯光调亮 让我最后再好好看看你们” 青岛高新职业学校举行2021届毕业典礼...
  9. echarts 南丁格尔玫瑰图属性设置
  10. php FPDF类库应用实现代码
  11. 订单需求BOM合并 自动计算
  12. unity小地图制作和方向导航
  13. MAC下 生成安卓签名证书.keystore文件【详细】
  14. 实验:使用SSMS创建并管理数据库及其基本表(代码版)
  15. 11-Vue前端项目开发基本准备
  16. python换零钱_Python之100个项目:零钱转换程序
  17. 无线互联网时代的中国移动(转)
  18. TIPTOP之分割split函数方法、getIndexOf、subString、replace、临时表创建;
  19. 计算机无法播放视频,电脑播放器无法播放视频怎么处理
  20. 注册中文域名好不好?有什么优势?

热门文章

  1. javascript框架库_2019年使用的最佳JavaScript框架,库和工具
  2. vue axios在开发中遇到的问题
  3. golang 实战企业网盘
  4. 微电子以后什么方向前途好?FPGA吗?
  5. AngularJs with Webpackv1 升級到 Webpack4
  6. Arduino - 28BYJ-48步进电机+ULN2003驱动模块
  7. 解决方案:java.lang.IllegalArgumentException: 为此cookie指定的域[localhost:xxxx]无效
  8. 谱半径一定大于0_[转载]关于谱半径(spectrum radius)
  9. 细胞系鉴定和表征测试-市场现状及未来发展趋势
  10. 微信服务号开发----创建个性化菜单