python最小二乘法拟合直线
来源:互联网 发布:王珊数据库视频 编辑:程序博客网 时间:2024/05/21 11:14
最小二乘法的推导可参考下面这个博客,推导非常详细.
https://my.oschina.net/keyven/blog/526010
首先画一个加入了噪声的散点图,函数是y=0.2x,加入噪声后如下图所示:
代码如下:
# -*- coding: utf-8 -*import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 30, num=50)y = 0.2*x+[np.random.random() for _ in range(50)]if __name__ == '__main__': plt.figure(figsize=(10, 5), facecolor='w') plt.plot(x, y, 'ro', lw=2, markersize=6) plt.grid(b=True, ls=':') plt.xlabel(u'X', fontsize=16) plt.ylabel(u'Y', fontsize=16) plt.show()
我将上面这个代码保存为paint_scatter_plot.py这个名字,方便其他地方调用.
接下来画出拟合直线:
代码如下:
from paint_scatter_plot import x,yimport numpy as np import matplotlib.pyplot as pltdef Least_squares(x,y): x_ = x.mean() y_ = y.mean() m = np.zeros(1) n = np.zeros(1) k = np.zeros(1) p = np.zeros(1) for i in np.arange(50): k = (x[i]-x_)* (y[i]-y_) m += k p = np.square( x[i]-x_ ) n = n + p a = m/n b = y_ - a* x_ return a,bif __name__ == '__main__': a,b = Least_squares(x,y) print a,b y1 = a * x + b plt.figure(figsize=(10, 5), facecolor='w') plt.plot(x, y, 'ro', lw=2, markersize=6) plt.plot(x, y1, 'r-', lw=2, markersize=6) plt.grid(b=True, ls=':') plt.xlabel(u'X', fontsize=16) plt.ylabel(u'Y', fontsize=16) plt.show()
代码运算结果: a = 0.19784577, b = 0.48503344 ,还是非常接近正确结果的.
阅读全文
0 0
- python最小二乘法拟合直线
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法 直线拟合
- 最小二乘法拟合直线
- 最小二乘法直线拟合
- 最小二乘法直线拟合
- 最小二乘法拟合直线
- 最小二乘法直线拟合
- 最小二乘法直线拟合(C++)
- 最小二乘法实现直线拟合
- 最小二乘法直线拟合
- 最小二乘法拟合直线
- 最小二乘法直线拟合简介
- 最小二乘法拟合直线
- 算法杂记
- 推荐系统总结MF->PMF->CTR->CDL->CNN
- Oracle内连接、左外连接、右外连接、全外连接
- FZU Problem 2271 X(Floyd)
- Arp
- python最小二乘法拟合直线
- js正则表达test、exec和match的区别
- scikit-learn的学习笔记
- java学习笔记之内部类
- PHP 即点即改
- Unity_Transform组件_006
- 程序员面试金典:平分的直线、穿点最多的直线
- jquery源码解析(第2章之插入)
- 关于java配置文件的使用