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中常用的各种数据库操作模块和连接实例
May 29 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
python实现数独算法实例
Jun 09 Python
学习python类方法与对象方法
Mar 15 Python
Python操作Excel之xlsx文件
Mar 24 Python
python找出完数的方法
Nov 12 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
Sep 20 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
python 解决微分方程的操作(数值解法)
May 26 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的十大要点(上)
2009/02/04 PHP
php array的学习笔记
2012/05/16 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
工业学校毕业生自荐信范文
2014/01/03 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
校长师德表现自我评价
2015/03/05 职场文书
中学教师读书笔记
2015/07/01 职场文书
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python