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 相关文章推荐
Python标准库之sqlite3使用实例
Nov 25 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
Python中装饰器兼容加括号和不加括号的写法详解
Jul 05 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
Python基于property实现类的特性操作示例
Jun 15 Python
python traceback捕获并打印异常的方法
Aug 31 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python打包多类型文件的操作方法
Sep 21 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
python通过新建环境安装tfx的问题
May 20 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python实现海螺图片的方法示例
2019/05/12 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
公司新人试用期自我评价
2014/09/17 职场文书
防灾减灾标语
2014/10/07 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
2015年教师个人业务工作总结
2015/10/23 职场文书
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle