用python写一个小程序,输入坐标求线性回归

Python017

用python写一个小程序,输入坐标求线性回归,第1张

你好:

上面的程序,请看如下代码:

# -*- coding: cp936 -*-

end=input("是否结束(y/n):")

while end=="n":

    print "Number of coordinates:2"

    xx=input("x's:")

    yy=input("y's:")

    a=float(list(xx)[0])

    b=float(list(xx)[1])

    c=float(list(yy)[0])

    d=float(list(yy)[1])

    print "第一个点是:("+str(a)+","+str(c)+")"

    print "第一个点是:("+str(b)+","+str(d)+")"

    x0=c-a

    y0=float(d-b)

    print "直线方程为:",

    if x0==0:

        print "x=",a

    else:

        print "y=%r(x-%r)+%r"%(y0/x0,a,c)

    print

线性回归:

设x,y分别为一组数据,代码如下

import matplotlib.pyplot as plt

import numpy as np

ro=np.polyfit(x,y,deg=1) #deg为拟合的多项式的次数(线性回归就选1)

ry=np.polyval(ro,x)#忘记x和ro哪个在前哪个在后了。。。

print ro #输出的第一个数是斜率k,第二个数是纵截距b

plt.scatter(x,y)

plt.plot(x,ry)