利用梯度下降法实现线性回归--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实现多变量梯度下降 梯度下降算法数据归一化 随机梯度下降法 ...
最新文章
- Redis初学:7(Set类型)
- jmeter 监听的介绍
- 如何在vue里面正确的引用 jquery 和 第三方插件
- python false 0_python float(0) is 0.0 为什么是 False?
- python selenium p_python selenium 常见问题列表
- pyecharts第九节、旭日图(现代饼图)
- 一个逼格很低的appium自动化测试框架
- 阿里云 MaxCompute 2018-09 新功能发布
- win10 linux uefi启动不了系统安装教程,win10更新失败,提示硬盘布局不受UEFI固件支持如图,怎么解决?...
- Python爬取百度文库doc文档
- SPSS-描述统计与图示分析
- 使用Fiddler抓取HTTPS的包(Edge、Google)
- php博客模板源码下载,Z-BlogPHP博客学习SEM网站模板 v1.3
- (转)大数据量分页存储过程效率测试附代码
- 苹果手机图片如何同步鸿蒙,教你将照片批量导入iOS设备
- 10个降低PCB成本的技巧!PCB采购必须掌握!
- 打破界限,获得新生——观电影《云图》有感
- word2010 标尺游标的微调
- 韩国PAYWAVE认证之技术篇
- ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26‘ not foun Python GDAL
热门文章
- 快速解决idea快捷键被占用
- 魅族 系统更新服务器,Flyme系统再次更新,魅族16系列基本在内,你尝鲜了吗?...
- Android的anki时间间隔因子,Anki常见使用问题
- Matlab中的特殊函数使用(合流超几何函数、Kummer函数、贝塞尔函数等)
- Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码
- 英特尔530和535哪个好_2020联想小新Air 14英特尔版和锐龙版怎么选,有什么区别...
- 中国石油大学(北京)-《钻井液工艺原理》第二阶段在线作业
- 词Ci - 辅助填词、宋词欣赏
- QQ群文件高速下载的方法
- Redis Set操作报NullPointerException