您的位置:首页 > 其它

N久没写过东西了..写个最近在研究的程序

2016-06-05 15:56 169 查看
import numpy as np
import matplotlib.pyplot as plt
#a = np.matrix([[1,1.15],[1,1.9],[1,3.06],[1,4.66],[1,6.84],[1,7.95]])
#b = np.matrix([[1.37],[2.4],[3.02],[3.06],[4.22],[5.42]])
a = np.matrix([[1,2.104],  [1,1.416],      [1,1.534],      [1,0.852]])
b = np.matrix([[0.460], [0.232], [0.315], [0.178]])
xdata = a[:,1]
ydata = b
tempp =[]
def gradient(X_norm,y,theta,alpha,m,num_it):
temp=np.matrix([[float(0)],[float(0)]])
for i in range(0,num_it):
h=np.dot(X_norm,theta)
temp[0]=theta[0]-alpha/m*(np.sum(h-y))
temp[1]=theta[1]-alpha/m*((h-y).T*X_norm[:,1])
theta=temp
if i%100 == 0:
ypredict = xdata * temp[1] + temp[0]
tempp.append(plt.plot(xdata,ypredict))
return theta
c = gradient(a,b,np.matrix([[float(0)],[float(0)]]),float(0.2),float(4),1000)
#ypredict=xdata*c[0]+c[1]
print c
plt.scatter(xdata,ydata)
plt.legend(tempp)
plt.show()


程序之后,就是结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: