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中使用__slots__方法的详细教程
Apr 28 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
python实现logistic分类算法代码
Feb 28 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
Python join()函数原理及使用方法
Nov 14 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
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP如何实现跨域
2016/05/30 PHP
php新建文件的方法实例
2019/09/26 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
Javascript Throttle & Debounce应用介绍
2013/03/19 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
Python 对象中的数据类型
2017/05/13 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
神经网络python源码分享
2017/12/15 Python
python字符串判断密码强弱
2020/03/18 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
领导干部作风建设总结
2014/10/23 职场文书
博士导师推荐信
2015/03/25 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Python 如何实现文件自动去重
2021/06/02 Python