最小二乘君根据样本数据推算直线方程系数

来源:互联网 发布:知乎账号存在异常流量 编辑:程序博客网 时间:2024/06/05 20:16

 传说数界高大人公牍之余发现反算直线程系数的最小二乘君一枚(发现实用型人才)但是坊间传言是皮大人先举荐最小二乘君的啊(此君于野是专职算星星的。。。


# -*- coding: utf-8 -*-"""Created on Thu Sep 18 10:43:37 2014@author: aminic"""import numpy as npimport pylab as pl#样本点d=[[1,2],[2,3],[3,4],[2.5,3],[4,3],[8,4]]d=np.array(d)#算最小二乘公式计算因子avg_x=average(d[:,0])avg_y=average(d[:,1])avg_xy=average(d[:,0]*d[:,1])avg_x2=average(d[:,0]**2)#算直线方程系数,形式为y=w0+w1*x#算斜率w1=(avg_xy-avg_x*avg_y)/(avg_x2-avg_x**2)#算截距w0=avg_y-w1*avg_x#show方程symbol=('+' if w1>=0 else '-')equation_show='y = {0} {1} {2}x'.format(w0,symbol,w1)print equation_show#绘出样本点for dot in d:    pl.plot(dot[0],dot[1],'ro')    #绘出方程直线testx=np.array(range(0,10))    testy=w0+w1*testxpl.plot(testx,testy,'g--')    pl.show()


0 0