利用梯度下降法实现线性回归--python实现
利用梯度下降法代替最小二乘法,求线性回归方程。
首先引用库
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实现相关推荐
- 基于matlab的梯度下降法实现线性回归
基于matlab的梯度下降法实现线性回归 1 绪论 1.1线性回归的定义 1.2单变量线性回归 1.3多变量线性回归 2 梯度下降 2.1 cost function 2.2 梯度下降:解决线性回归的 ...
- 梯度下降法求解线性回归
梯度下降法求解线性回归 通过梯度下降法求解简单的一元线性回归 分别通过梯度下降算法和sklearn的线性回归模型(即基于最小二乘法)解决简单的一元线性回归实际案例,通过结果对比两个算法的优缺. 通过最 ...
- python梯度下降法实现线性回归_梯度下降法的python代码实现(多元线性回归)
梯度下降法的python代码实现(多元线性回归最小化损失函数) 1.梯度下降法主要用来最小化损失函数,是一种比较常用的最优化方法,其具体包含了以下两种不同的方式:批量梯度下降法(沿着梯度变化最快的方向 ...
- 利用梯度下降法求解一元线性回归和多元线性回归
文章目录 原理以及公式 [1]一元线性回归问题 [2]多元线性回归问题 [3]学习率 [4]流程分析(一元线性回归) [5]流程分析(多元线性回归) 归一化原理以及每种归一化适用的场合 一元线性回归代 ...
- 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现
回归:在这类任务中,计算机程序需要对给定输入预测数值.为了解决这个任务,学习算法需要输出函数f:Rn→R.除了返回结果的形式不一样外,这类问题和分类问题是很像的.这类任务的一个示例是预测投保人的索赔金 ...
- 基于梯度下降法的——线性回归拟合
点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自数据分析挖掘与算法,禁二次转载 阅读本文需要的知识储备: 高等数学 运筹学 P ...
- 机器学习:用梯度下降法实现线性回归
之前在 机器学习算法数学基础之 -- 线性代数篇 中,总结过求解线性回归的两种方法: 最小二乘法 梯度下降法 这篇文章重点总结一下梯度下降法中的一些细节和需要注意的地方. 梯度下降法是什么 假设有一个 ...
- 【机器学习】机器学习之梯度下降法简单应用(Python)
本文主要是用Python简单程序应用梯度下降法解决一个实际问题,帮助理解机器学习在预测方面的功能作用. 一.通过一个人的身高体重性别预测他的腰围 数据训练集(可以通过调查获得,这里只列4个,还可以更多 ...
- 梯度下降法原理及python实现
文章目录 引言 梯度 单变量梯度下降法 单变量梯度下降原理 python实现单变量梯度下降 批量梯度下降法 批量梯度下降法原理 python实现多变量梯度下降 梯度下降算法数据归一化 随机梯度下降法 ...
最新文章
- 第十五届全国大学生华南赛区线上比赛日期安排
- sqlite3.OperationalError: database is locked
- 端口镜像 流量过滤_技术盛宴 | 流量可视化之ERSPAN的前世今生
- [云炬python3玩转机器学习笔记] 3-4创建Numpy数组和矩阵
- 【机房重构】一步一步往上爬——验收给了我什么
- linux eclipse报错日志,centos6.8命令行启动eclipse报org.eclipse.swt.SWTError错误
- 7 useLayoutEffect、useDebugValue
- 解释spring,struts,hibernate优缺点
- 对List集合中的元素进行排序
- C++学习:两个vector对象拼接
- 添加控制器 提示找到不到上下文_JS局部上下文和全局上下文
- HDOJ--1874--畅通工程续
- java double 移位_【原创】Java移位运算
- usb redirector linux,USB Redirector Client详细使用教程
- 华为 IPD 集成产品开发流程的缺点和适用局限性
- 分布式理论,架构设计
- 用ClickHouse在GitHub上数星星
- VGA显示器字符显示
- java基础篇(11) 枚举类型
- 【2022年对话机器人chatbot】SaleSmartly如何解决客服难题