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找出list中最常出现元素的方法
Jun 14 Python
Django开发中的日志输出的方法
Jul 02 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
python开发游戏的前期准备
May 05 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
python中比较两个列表的实例方法
Jul 04 Python
Python绘图之柱形图绘制详解
Jul 28 Python
详解python datetime模块
Aug 17 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
Python Selenium库的基本使用教程
Jan 04 Python
详细总结Python常见的安全问题
May 21 Python
手残删除python之后的补救方法
Jun 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函数解决SQL injection
2006/12/09 PHP
php中explode与split的区别介绍
2012/10/03 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
让焦点自动跳转
2006/07/01 Javascript
使用prototype.js进行异步操作
2007/02/07 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
Express.JS使用详解
2014/07/17 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
python argparser的具体使用
2019/11/10 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
电大毕业自我鉴定
2014/02/03 职场文书
质量保证书范本
2014/04/29 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
道德与公民自我评价
2015/03/09 职场文书
敬老院活动感想
2015/08/07 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技