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

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. 第十五届全国大学生华南赛区线上比赛日期安排
  2. sqlite3.OperationalError: database is locked
  3. 端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生
  4. [云炬python3玩转机器学习笔记] 3-4创建Numpy数组和矩阵
  5. 【机房重构】一步一步往上爬——验收给了我什么
  6. linux eclipse报错日志,centos6.8命令行启动eclipse报org.eclipse.swt.SWTError错误
  7. 7 useLayoutEffect、useDebugValue
  8. 解释spring,struts,hibernate优缺点
  9. 对List集合中的元素进行排序
  10. C++学习:两个vector对象拼接
  11. 添加控制器 提示找到不到上下文_JS局部上下文和全局上下文
  12. HDOJ--1874--畅通工程续
  13. java double 移位_【原创】Java移位运算
  14. usb redirector linux,USB Redirector Client详细使用教程
  15. 华为 IPD 集成产品开发流程的缺点和适用局限性
  16. 分布式理论,架构设计
  17. 用ClickHouse在GitHub上数星星
  18. VGA显示器字符显示
  19. java基础篇(11) 枚举类型
  20. 【2022年对话机器人chatbot】SaleSmartly如何解决客服难题

热门文章

  1. NBA不拘一格,花大虫入选名人堂
  2. c语言面试题 百度,2017百度C/C++开发工程师面试题
  3. Redis-day01-note
  4. 盘点20款表现出众的HTML5游戏
  5. [python]如何在requests post时不做urlencode?
  6. 51job.com查询招聘的方法
  7. Motion Pro 如何使用
  8. 世界首富贝索斯上太空
  9. Unity Gizmos扩展:线框圆
  10. 睡眠即醒 蓝牙_Bose遮噪睡眠耳塞II评测:音频“黑科技”能否拯救失眠?