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获取网页状态码示例
Mar 30 Python
Python迭代用法实例教程
Sep 08 Python
python通过ftplib登录到ftp服务器的方法
May 08 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Python箱型图绘制与特征值获取过程解析
Oct 22 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
python实现人机五子棋
Mar 25 Python
使用Python+Appuim 清理微信的方法
Jan 26 Python
python 离散点图画法的实现
Apr 01 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP面向对象法则
2012/02/23 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
js如何判断输入字符串长度
2015/12/16 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
学生自我鉴定
2013/12/18 职场文书
自荐信需注意事项
2014/01/25 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
《忆江南》教学反思
2014/04/07 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
化验员岗位职责
2015/02/14 职场文书
被告答辩状范文
2015/05/22 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
Python IO文件管理的具体使用
2022/03/20 Python