python实现机器学习之元线性回归


Posted in Python onSeptember 06, 2018

一、理论知识准备

1.确定假设函数

如:y=2x+7
其中,(x,y)是一组数据,设共有m个

2.误差cost

用平方误差代价函数

python实现机器学习之元线性回归

3.减小误差(用梯度下降)

python实现机器学习之元线性回归
python实现机器学习之元线性回归

二、程序实现步骤

1.初始化数据

x、y:样本
learning rate:学习率
循环次数loopNum:梯度下降次数

2.梯度下降

循环(循环loopNum次):
(1)算偏导(需要一个for循环遍历所有数据)
(2)利用梯度下降数学式子

三、程序代码

import numpy as np

def linearRegression(data_x,data_y,learningRate,loopNum):
  w,b=0,0

  #梯度下降
  for i in range(loopNum):
    w_derivative, b_derivative, cost = 0, 0, 0
    for j in range(len(data_x)):
      wxPlusb=w*data_x[j]+b
      w_derivative+=(wxPlusb-data_y[j])*data_x[j]
      b_derivative+=wxPlusb-data_y[j]
      cost+=(wxPlusb-data_y[j])*(wxPlusb-data_y[j])
    w_derivative=w_derivative/len(data_x)
    b_derivative=b_derivative/len(data_x)

    w = w - learningRate*w_derivative
    b = b - learningRate*b_derivative

    cost = cost/(2*len(data_x))
    if i%100==0:
      print(cost)
  print(w)
  print(b)

if __name__== "__main__": #_x:protected __x:private
  x=np.random.normal(0,10,100)
  noise=np.random.normal(0,0.05,100)
  y=2*x+7+noise
  linearRegression(x,y,0.01,5000)

四、输出

1.输出cost

python实现机器学习之元线性回归 

可以看到,一开始的误差是很大的,然后减小了

python实现机器学习之元线性回归 

最后几次输出的cost没有变化,可以将训练的次数减小一点

2.训练完的w和b

python实现机器学习之元线性回归 

和目标w=2,b=7很接近

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
tensorflow实现KNN识别MNIST
Mar 12 Python
Python 一句话生成字母表的方法
Jan 02 Python
Python实现操纵控制windows注册表的方法分析
May 24 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
Python变量作用域LEGB用法解析
Feb 04 Python
python实现ip地址的包含关系判断
Feb 07 Python
python实现FTP循环上传文件
Mar 20 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
python中for in的用法详解
Apr 17 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
Python import与from import使用及区别介绍
Sep 06 #Python
用python实现k近邻算法的示例代码
Sep 06 #Python
python K近邻算法的kd树实现
Sep 06 #Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 #Python
Python多线程编程之多线程加锁操作示例
Sep 06 #Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 #Python
Python json模块dumps、loads操作示例
Sep 06 #Python
You might like
php && 逻辑与运算符使用说明
2010/03/04 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
javascript读取xml
2006/11/04 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
js变量提升深入理解
2016/09/16 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
基于python时间处理方法(详解)
2017/08/14 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
python类共享变量操作
2020/09/03 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
《我要的是葫芦》教学反思
2014/02/23 职场文书
后勤主管岗位职责
2014/03/01 职场文书
公司晚会主持词
2014/03/22 职场文书
工程材料采购方案
2014/05/18 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
2016新年晚会开场白
2015/12/03 职场文书
用Python实现Newton插值法
2021/04/17 Python
Redis Stream类型的使用详解
2021/11/11 Redis
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL