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程序中实现分布式进程的教程
Apr 28 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
单利模式及python实现方式详解
Mar 20 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python3.5绘制随机漫步图
Aug 27 Python
python 高效去重复 支持GB级别大文件的示例代码
Nov 08 Python
python三大神器之fabric使用教程
Jun 10 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
python爬虫selenium模块详解
Mar 30 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
php DES加密算法实例分析
2019/09/18 PHP
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
用原生js做单页应用
2017/01/17 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
Node.js使用Angular简单示例
2018/05/11 Javascript
js数据类型检测总结
2018/08/05 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
回顾Javascript React基础
2019/06/15 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
Python基于sftp及rsa密匙实现远程拷贝文件的方法
2016/09/21 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
python 等差数列末项计算方式
2020/05/03 Python
通过代码实例了解Python sys模块
2020/09/14 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
学习保证书范文
2014/04/30 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
货款欠条范本
2015/07/03 职场文书