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面向对象编程基础解析(一)
Oct 26 Python
python实现电脑自动关机
Jun 20 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
Python中关于浮点数的冷知识
Sep 22 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Pandas把dataframe或series转换成list的方法
Jun 14 Python
python线性插值解析
Jul 05 Python
python实现学生通讯录管理系统
Feb 25 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基础学习之流程控制的实现分析
2013/04/28 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Python中is与==判断的区别
2017/03/28 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
简单的Python调度器Schedule详解
2019/08/30 Python
原生python实现knn分类算法
2019/10/24 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
安全生产知识竞赛活动总结
2014/07/07 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库