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 获取本机ip地址的两个方法
Feb 25 Python
总结Python编程中函数的使用要点
Mar 20 Python
python中的二维列表实例详解
Jun 19 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
Python3标准库之functools管理函数的工具详解
Feb 27 Python
python实现人机五子棋
Mar 25 Python
Python操作Jira库常用方法解析
Apr 10 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
Python实现七个基本算法的实例代码
Oct 08 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
js异或加解密效果代码
2008/06/25 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
python3将变量输入的简单实例
2020/08/19 Python
用python制作个视频下载器
2021/02/01 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
车间组长岗位职责
2013/12/20 职场文书
护理专业自我鉴定
2014/01/30 职场文书
同事打架检讨书
2014/02/04 职场文书
汽车维修求职信
2014/06/15 职场文书
2014年质量工作总结
2014/11/22 职场文书
2015年行风建设工作总结
2015/05/15 职场文书