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 14 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
python如何在word中存储本地图片
Apr 07 Python
python cv2图像质量压缩的算法示例
Jun 04 Python
Python标准库pathlib操作目录和文件
Nov 20 Python
python数字类型和占位符详情
Mar 13 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过滤危险html代码的函数
2008/07/22 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
图片按比例缩放函数
2006/06/26 Javascript
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
js+canvas绘制图形验证码
2020/09/21 Javascript
解决uWSGI的编码问题详解
2017/03/24 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
python 多个参数不为空校验方法
2019/02/14 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
售房协议书范本2014
2014/10/23 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
重温入党誓词主持词
2015/06/29 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Apache POI的基本使用详解
2021/11/07 Servers
如何解决php-fpm启动不了问题
2021/11/17 PHP
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android