使用python和numpy实现函数的拟合
给出一个数组x,然后基于一个二次函数,加上一些噪音数据得到另一组数据y。
将得到的数组x,y,构建一个机器学习模型,采用梯度下降法,通过多次迭代,学习到函数的系数。使用python和numpy进行编程,具体实现的代码如下:
import numpy as np
%matplotlib inline
from matplotlib import pyplot as plt
np.random.seed(100)
x=np.linspace(-1,1,100).reshape(100,1)
y=3np.power(x,2)+2+0.2np.random.rand(x.size).reshape(100,1)
plt.scatter(x,y)
plt.show()
w1=np.random.rand(1,1)
b1=np.random.rand(1,1)
lr=0.001
for i in range(800):
y_pred=np.power(x,2)w1+b1
loss=0.5(y_pred-y)**2
loss=loss.sum()
grad_w=np.sum((y_pred-y)np.power(x,2))
grad_b=np.sum((y_pred-y))
w1-=lrgrad_w
b1-=lr*grad_b
plt.plot(x,y_pred,'r-',label='predict')
plt.scatter(x,y,color='blue',marker='o',label='true')
plt.xlim(-1,1)
plt.ylim(2,6)
plt.legend()
plt.show()
print(w1,b1)
原始数据如图所示:
原始数据.png
得到的结果如图所示:
最新文章
- SQLite数据库使用
- mvc.net 的四种传值方式
- C++设计模式-Singleton
- 如何进行服务器的批量管理以及python 的paramiko的模块
- javascript学习第二课
- JS-010-覆盖率测试工具 JSCoverage 初识
- StringUtils 帮助类所涉及的方法
- AJAX初步
- js中ajax如何解决跨域请求
- 使用Chrome测试页面响应性
- WebService-通俗讲解
- dfs学习总结
- flexbox基本原理
- java8 学习记录
- 【python】ftp连接,主被动,调试等级
- 【SQL】SQL整表复制
- SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
- 第4章:YARN
- jQuery-对标签的样式操作
- Appium之启用手机桌面APP的多种方法