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 random模块常用方法
Nov 03 Python
Python对数据库操作
Mar 28 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
对python判断ip是否可达的实例详解
Jan 31 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
利用Python复制文件的9种方法总结
Sep 02 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
python3中sys.argv的实例用法
Apr 24 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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
中国的第一台收音机
2021/03/01 无线电
文件上传程序的全部源码
2006/10/09 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
简单的js分页脚本
2009/05/21 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python开发之list操作实例分析
2016/02/22 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Python的Lambda函数用法详解
2019/09/03 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
学生周末长期请假条
2014/02/15 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
投标承诺书怎么写
2014/05/24 职场文书
销售代理协议书
2014/09/30 职场文书
十八大观后感
2015/06/12 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS