利用梯度下降法代替最小二乘法,求线性回归方程。
首先引用库

import numpy as np
import matplotlib.pyplot as plt

定义相应的x和y

np.random.seed(666)
x = np.random.random(size=100)
y = x * 3. + 4. + np.random.normal(size=100)

绘制散点图

封装算法·

def J(x_b,y,theta):return np.sum((y - x_b.dot(theta))**2)/len(theta)def dJ(x_b,y,theta):res = np.empty(len(theta))res[0] = np.sum(x_b.dot(theta) - y)for i in range(1,len(theta)):res[i] = (x_b.dot(theta) - y).dot(x_b[:,i])return 2/len(x_b)*resdef gradient_descent(x_b,y,eta,esplison,inital_theta,n_iter=1e4):theta = inital_thetacrue_iter = 0while crue_iter < n_iter:gradient = dJ(x_b,y,theta)last_theta = thetatheta = theta - eta*gradientif (abs(J(x_b,y,theta)-J(x_b,y,last_theta)) < esplison):breakcrue_iter += 1    return theta

调用函数

x_b = np.hstack([np.ones((len(x),1)),x.reshape(-1,1)])eta = 0.1
esplison = 1e-8
inital_theta = np.zeros(x_b.shape[1])
gradient_descent(x_b,y,eta,esplison,inital_theta)

结果为:
array([4.0238372 , 3.01008419])
调用sklearn.linear_model

from sklearn.linear_model import LinearRegressionlin_reg = LinearRegression()
lin_reg.fit(x.reshape((-1,1)),y)
lin_reg.intercept_

结果为4.0236966721039

lin_reg.coef_

结果为array([3.01034894])

利用梯度下降法实现线性回归--python实现相关推荐

  1. 基于matlab的梯度下降法实现线性回归

    基于matlab的梯度下降法实现线性回归 1 绪论 1.1线性回归的定义 1.2单变量线性回归 1.3多变量线性回归 2 梯度下降 2.1 cost function 2.2 梯度下降:解决线性回归的 ...

  2. 梯度下降法求解线性回归

    梯度下降法求解线性回归 通过梯度下降法求解简单的一元线性回归 分别通过梯度下降算法和sklearn的线性回归模型(即基于最小二乘法)解决简单的一元线性回归实际案例,通过结果对比两个算法的优缺. 通过最 ...

  3. python梯度下降法实现线性回归_梯度下降法的python代码实现(多元线性回归)

    梯度下降法的python代码实现(多元线性回归最小化损失函数) 1.梯度下降法主要用来最小化损失函数,是一种比较常用的最优化方法,其具体包含了以下两种不同的方式:批量梯度下降法(沿着梯度变化最快的方向 ...

  4. 利用梯度下降法求解一元线性回归和多元线性回归

    文章目录 原理以及公式 [1]一元线性回归问题 [2]多元线性回归问题 [3]学习率 [4]流程分析(一元线性回归) [5]流程分析(多元线性回归) 归一化原理以及每种归一化适用的场合 一元线性回归代 ...

  5. 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现

    回归:在这类任务中,计算机程序需要对给定输入预测数值.为了解决这个任务,学习算法需要输出函数f:Rn→R.除了返回结果的形式不一样外,这类问题和分类问题是很像的.这类任务的一个示例是预测投保人的索赔金 ...

  6. 基于梯度下降法的——线性回归拟合

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自数据分析挖掘与算法,禁二次转载 阅读本文需要的知识储备: 高等数学 运筹学 P ...

  7. 机器学习:用梯度下降法实现线性回归

    之前在 机器学习算法数学基础之 -- 线性代数篇 中,总结过求解线性回归的两种方法: 最小二乘法 梯度下降法 这篇文章重点总结一下梯度下降法中的一些细节和需要注意的地方. 梯度下降法是什么 假设有一个 ...

  8. 【机器学习】机器学习之梯度下降法简单应用(Python)

    本文主要是用Python简单程序应用梯度下降法解决一个实际问题,帮助理解机器学习在预测方面的功能作用. 一.通过一个人的身高体重性别预测他的腰围 数据训练集(可以通过调查获得,这里只列4个,还可以更多 ...

  9. 梯度下降法原理及python实现

    文章目录 引言 梯度 单变量梯度下降法 单变量梯度下降原理 python实现单变量梯度下降 批量梯度下降法 批量梯度下降法原理 python实现多变量梯度下降 梯度下降算法数据归一化 随机梯度下降法 ...

最新文章

  1. Redis初学:7(Set类型)
  2. jmeter 监听的介绍
  3. 如何在vue里面正确的引用 jquery 和 第三方插件
  4. python false 0_python float(0) is 0.0 为什么是 False?
  5. python selenium p_python selenium 常见问题列表
  6. pyecharts第九节、旭日图(现代饼图)
  7. 一个逼格很低的appium自动化测试框架
  8. 阿里云 MaxCompute 2018-09 新功能发布
  9. win10 linux uefi启动不了系统安装教程,win10更新失败,提示硬盘布局不受UEFI固件支持如图,怎么解决?...
  10. Python爬取百度文库doc文档
  11. SPSS-描述统计与图示分析
  12. 使用Fiddler抓取HTTPS的包(Edge、Google)
  13. php博客模板源码下载,Z-BlogPHP博客学习SEM网站模板 v1.3
  14. (转)大数据量分页存储过程效率测试附代码
  15. 苹果手机图片如何同步鸿蒙,教你将照片批量导入iOS设备
  16. 10个降低PCB成本的技巧!PCB采购必须掌握!
  17. 打破界限,获得新生——观电影《云图》有感
  18. word2010 标尺游标的微调
  19. 韩国PAYWAVE认证之技术篇
  20. ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not foun Python GDAL

热门文章

  1. 快速解决idea快捷键被占用
  2. 魅族 系统更新服务器,Flyme系统再次更新,魅族16系列基本在内,你尝鲜了吗?...
  3. Android的anki时间间隔因子,Anki常见使用问题
  4. Matlab中的特殊函数使用(合流超几何函数、Kummer函数、贝塞尔函数等)
  5. Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码
  6. 英特尔530和535哪个好_2020联想小新Air 14英特尔版和锐龙版怎么选,有什么区别...
  7. 中国石油大学(北京)-《钻井液工艺原理》第二阶段在线作业
  8. 词Ci - 辅助填词、宋词欣赏
  9. QQ群文件高速下载的方法
  10. Redis Set操作报NullPointerException