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

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


# -*- coding: utf-8 -*-
"""
Created on Thu Sep 18 10:43:37 2014

@author: aminic
"""
import numpy as np
import 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*testx
pl.plot(testx,testy,'g--')    

pl.show()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值