给出一个数组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-=lr
grad_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

得到的结果如图所示:

最新文章

  1. SQLite数据库使用
  2. mvc.net 的四种传值方式
  3. C++设计模式-Singleton
  4. 如何进行服务器的批量管理以及python 的paramiko的模块
  5. javascript学习第二课
  6. JS-010-覆盖率测试工具 JSCoverage 初识
  7. StringUtils 帮助类所涉及的方法
  8. AJAX初步
  9. js中ajax如何解决跨域请求
  10. 使用Chrome测试页面响应性
  11. WebService-通俗讲解
  12. dfs学习总结
  13. flexbox基本原理
  14. java8 学习记录
  15. 【python】ftp连接,主被动,调试等级
  16. 【SQL】SQL整表复制
  17. SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
  18. 第4章:YARN
  19. jQuery-对标签的样式操作
  20. Appium之启用手机桌面APP的多种方法

热门文章

  1. 通过MapReduce降低服务响应时间
  2. Linux Centos7 安装Docker-CE
  3. 如何设计一个牛逼的API接口
  4. ASP.NET Core 3.1 Razor 视图预编译、动态编译
  5. linux(centos8):安装jmeter5.3
  6. java调用.net的webservice[转]
  7. django—中间件相关
  8. stm32与红外遥控器(NEC协议)
  9. javac -d的意思是?
  10. JUC---09异步回调