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()
程序之后,就是结果:
![](https://images2015.cnblogs.com/blog/28132/201606/28132-20160605155417789-619247.png)
相关文章推荐
- 四版人民币补号大全
- java面试笔试题整理
- Hadoop Counter
- 第七次C++作业
- test
- 杭电 1033【转向】
- 映客忙着“寻找马东”,云豹直播借势移动直播开创新高度
- HDU1166
- java中String字符串的替换函数:replace与replaceAll的区别
- JDBC的基础
- android开发笔记之高级主题—传感器的简单应用
- 系统性能优化分析—CPU消耗
- JDBC连接数据库之DBUtils简单使用(6)
- 杭电 1032【一种规律运算】
- 二维数组动态申请空间
- iOS 第三方框架-Masonry的使用
- 共有云 私有云的区别
- Mybatis查询 注意 传入参数
- 冒泡排序算法的实现
- Android AsyncTask的使用