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 相关文章推荐
django 按时间范围查询数据库实例代码
Feb 11 Python
Tensorflow卷积神经网络实例
May 24 Python
解决python3 pika之连接断开的问题
Dec 18 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
django基础学习之send_mail功能
Aug 07 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
Python类反射机制使用实例解析
Dec 30 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
浅谈Python中的字符串
Jun 10 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 Python
matplotlib更改窗口图标的方法示例
Feb 03 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
虫族 Zerg 历史背景
2020/03/14 星际争霸
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
js利用div背景,做一个竖线的效果。
2008/11/22 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
Python箱型图处理离群点的例子
2019/12/09 Python
Django实现简单的分页功能
2021/02/22 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
工作的心得体会
2013/12/31 职场文书
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL