机器学习算法基础——梯度下降法求一元线性回归

python机器学习 一元线性回归 梯度下降法的实现 【Python机器学习系列(四)】_一元线性回归python梯度下降法 使用均方误差 MSE (Mean Square Error)来作为性能度量标准假设共有m个样本数据,则均方误差:MSE1m∑i1mkxib−yi22将该公式定义为代价函数,此外为例后续求导方便,则使结果在原mse的基础上,再乘以1/2。# 为方便求导:乘以1/2。 阅读详情
import numpy as np
import matplotlib.pyplot as plt

# 载入数据
data = np.genfromtxt("C:\\ML\\chapter-1\\data.csv",delimiter=",")
x_data = data[:,0]
y_data = data[:,1]
plt.scatter(x_data,y_data)
plt.show()

# 学习率 learning rate
lr = 0.0001
# 截距
b = 0
# 斜率
k = 0
# 最大迭代次数
epochs = 50

# 最小二乘法
def compute_error(b,k,x_data,y_data):
    totalError = 0
    for i in range(0,len(x_data)):
        totalError += (y_data[i] - (k*x_data[i]) + b) ** 2 #计算总的误差
    return totalError / float(len(x_data)) / 2.0

def gradient_descent_runner(x_data,y_data,b,k,lr,epochs):
    # 计算总数据量
    m = float(len(x_data))
    # 循环epochs次
    for i in range(epochs):
        b_grad = 0  # grad 梯度 求导
        k_grad = 0
        # 计算梯度的总和再求平均
        for j in range(0,len(x_data)):
            b_grad += -(1/m) * (y_data[j] - (k*x_data[j]) + b)
            k_grad += -(1/m) * x_data[j] * (y_data[j] - ((k*x_data[j]) + b))
        # 更新b和k
        b = b - (lr * b_grad)
        k = k - (lr * k_grad)
        # 每迭代五次,输出一次图像
        if i % 5 == 0:
            print("esochs:",i)
            plt.plot(x_data,y_data,'b.')
            plt.plot(x_data,k*x_data + b,"r")
            plt.show()
    return b,k    

print('Staring b = {0},k = {1},error = {2}'.format(b,k,compute_error(b,k,x_data,y_data)))
print('Running...')
b,k = gradient_descent_runner(x_data,y_data,b,k,lr,epochs) # 开始建模
print('After {0} iterations b = {1},k= {2},error = {3}'.format(epochs,b,k,compute_error(b,k,x_data,y_data)))

# 画图
# plt.plot(x_data,y_data,'b.') # b代表blue .表示用.画出来
# plt.plot(x_data,k*x_data + b, 'r') # 画线,r代表red
# plt.show()

数据的散点图
在这里插入图片描述
根据梯度下降法求得线性回归的过程
在这里插入图片描述

机器学习——梯度下降法一元线性回归实现(JavaScript实现) 原理 利用梯度下降法,使得代价函数取最小值,求得此时的参数值 代码 阅读详情

相关推荐

MATLAB 梯度下降法(完整版),支持任意维度,手动输入

MATLAB 梯度下降法(完整版),支持任意维度,手动输入

一元线性回归梯度下降法(通俗易懂,初学专属)

先来理解一些基础概念。Y= w*X+b,w代表权重,b代表偏置值。我们的目的就是要求出合适的w和b,用Y= w*X+b这条曲线来拟合我们的数据集。2.1 那么如何求w和b呢用梯度下降法梯度下降的通俗理解就是:我们可以先给未知量w和b一个初始值。然后通过让它们自己学习一直变,变到合适的值为止。以我们的例子为例,最终结果应当是Y =3*X+7这条曲线拟合数据集的。我们假设w=1,b=1.进行一次梯度下降后,可能w就变成2,b就变成3(此处夸大了,一般变化不会那么大,一般变化很小,所以需要梯度下降很多次。

m0_63867120的博客 2162

WSL中使用VMD图形化界面

【代码】WSL中使用VMD图形化界面。

handsome213的博客 841

机器学习--梯度下降与一元线性回归

目录 梯度下降 基本概念 梯度下降步骤 批量梯度下降(BGD) 随机梯度下降(SGD) 一元线性回归 线性回归概念 原理引入 代价函数 公式推导 代码 一元函数 多元函数 梯度下降 基本概念 梯度下降法,又名最速下降法是求解无约束最优化问题最常用问题的方法,它是一种迭代方法,每一步都是主要的操作目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向。 梯度下降步骤 1、随机初始化函数 2、确定学习率 3、求出损失函数对参数梯度 4、按照公式更新参数 5、重复3

m0_56223659的博客 994

从零构建:如何在VSCode中为HBuilderX迁移的UniApp项目搭建TypeScript支持环境

本文详细指导如何将HBuilderX中的UniApp项目迁移至VSCode并搭建TypeScript支持环境。通过pnpm包管理器初始化项目、配置tsconfig.json和vite.config.ts文件,实现工程化迁移与TypeScript深度集成,提升开发效率和代码质量。

book8的博客 1051

Microduck机器鸭开源AI项目:本地部署与模型微调实战指南

开源AI模型的本地化部署与定制化训练正成为开发者关注的技术趋势。与依赖云端API的在线服务不同,本地部署允许用户将模型权重下载至自有GPU环境,通过命令行或WebUI完成推理、批量任务处理及API集成,在数据隐私、离线使用和接口稳定性方面具备天然优势。模型微调则基于预训练权重,利用领域数据训练特定任务,从而提升生成质量与业务适配度。这一技术路径广泛应用于内容生成、智能对话、自动标注等场景,尤其适合消费级显卡开发者、数据敏感型团队及二次开发研究者。Microduck(机器鸭)作为近期预售火爆的开源项目,围绕“

weixin_29082143的博客 415

梯度下降法实现一元线性回归

梯度下降法实现一元线性回归        给定一个数据集,该数据集是n行2列的数据。当用记事本打开数据时,每行的2列数据是用逗号隔开的。首先要提取文件里面的数据,之后根据提取的数据进行画图。        数据集见链接:https://pan.baidu.com/s/1Bhn47ynrNaPO_eG191VuUw &...

weixin_44831924的博客 1430

通过声音识别鸟类

根据野生鸟类的外表来识别它是一回事。仅仅根据声音来识别同一只鸟是另一回事。除非你是一个熟练的观鸟者,通过声音识别鸟类可能相当具有挑战性德国马尔堡大学的一组数学、计算机科学和生物学研究人员设计了一种快速识别鸟类和监测当地生物多样性的方法。他们使用连接到 NVIDIA 的便携式设备拍摄的录音根据研究人员的说法是一个边缘人工智能系统,“基于分布式系统中运行的嵌入式边缘设备,能够对森林中记录的声景进行高效、连续的评估。”要了解更多信息,请参阅。

分享AI前沿科技 1680

线性回归模型(一元线性回归)---梯度下降算法实现

线性回归模型、梯度下降算法

Fairy_vikey的博客 686

抖音 webmssdk 签名算法解析:X-Dynosaur / X-Gnarly / X-Bogus 生成原理

它只依赖设备指纹/环境编码与随机数,与 query 内容无关,因此可以独立于 Dynosaur/Gnarly 生成。

猫敷雪 203

R语言缺失值填补|插值法、均值法、邻近法

本文主要介绍如何利用R语言进行数值型缺失值的填补。主要使用zoo包中的na.aggregate() 、na.approx()、na.locf() 函数进行缺失值的均值填补、线性插值填补以及邻近值填补。

Mrrunsen的博客 3843

一元线性回归与梯度下降法

文章目录1.问题引入2.代价函数3.梯度下降法 1.问题引入 根据不同房屋尺寸,预测出房子可以卖多少钱。所做任务就是通过给的数据集构建一个模型。 显然这是一个回归问题,根据之前的数据预测出一个准确的输出值。 为了描述这个回归问题,标记如下: 给出的数据集被称为训练集 用m表示训练集中实列的数量 用x表示输入变量/特征 用y表示输出变量/目标变量 (x,y)表示训练集中的实列 (x(i),y(i))代表第i个观察实列 h代表学习算法的解决方案或函数也称为假设(hypothesis) 在本例中,h表示一个函数

m0_51456926的博客 935

【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。

FPGA/MATLAB学习教程/源码/项目合作开发 1990

机器学习(1):线性回归概念

那么,这个回归究竟是什么意思呢?其实回归算法是相对分类算法而言的,与我们想要预测的目标变量y的值类型有关。如果目标变量y是分类型变量,如预测用户的性别(男、女),预测月季花的颜色(红、白、黄……),预测是否患有肺癌(是、否),那我们就需要用分类算法去拟合训练数据并做出预测;如果y是连续型变量,如预测用户的收入(4千,2万,10万……),预测员工的通勤距离(500m,1km,2万里……),预测患肺癌的概率(1%,50%,99%……),我们则需要用回归模型。有时分类问题也可以转化为回归问题。

游王子og的博客 1417

【100%通过率】华为od机试C卷【出差 / 员工派遣】C++ 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2195

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

手写算法—Python代码实现一元线性回归

Python实现线性回归简述假设函数、损失函数和梯度下降法Python实现线性回归对比sklearn实现的一元线性回归 简述 线性回归模型是机器学习里面最基础的一种模型,是为了解决回归问题,学习机器学习从线性回归开始最好,网上关于机器学习的概述有很多,这里不再详细说明,本博文主要关注初学者常见的一些问题以及本人的一些思考和心得,会以实例的方式展现出来。 假设函数、损失函数和梯度下降法 首先,我们利用sklearn包来生成一组回归数据 import numpy as np import pandas as p

weixin_44700798的博客 7132

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【机器学习基础】一元线性回归(适合初学者的保姆级文章)

一元线性回归是一种统计分析方法,用于建立一个自变量和一个因变量之间的线性关系模型。在一元线性回归中,只有一个自变量(即解释变量)与一个因变量(即被解释变量)相关。

z135733的博客 3287

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python机器学习 一元线性回归 梯度下降法的实现 【Python机器学习系列(四)】

python机器学习 一元线性回归 梯度下降法的实现 【Python机器学习系列(四)】

侯小啾技术博客 2915

【机器学习笔记1】一元线性回归模型及预测

一元线性回归、代价函数、梯度下降算法、样例(含数据)及代码

issey的博客 9992

机器学习(一) 一元线性回归算法

机器学习(一) 线性回归算法 前言: 身处于大数据时代,又置身于科研的征途上,如果没有合理的数据处理和分析方法,那么你置身于无穷无尽的大数据之中只有迷茫的份了。关于机器学习这个类别的博文,我将跟随着吴恩达老师的机器学习视频为基础,然后以我对视频的理解来记录机器学习相关的算法。 吴恩达老师的机器学习视频B站链接 一、机器学习一般步骤 二、公式中符号解释 m:训练样本的数量 X:输入变量 Y:输出...

Mekeater的博客 1787

一元线性回归——梯度下降法

梯度下降法实现一元线性回归(代码实现) 这篇博客只是针对用代码实现的部分 导入需要用到的包 import numpy as np import matplotlib.pyplot as plt 载入数据 data = np.genfromtxt("data.csv", delimiter=",") x_data = data[:, 0]#所有行第0列 y_data = data[:, 1]#所有...

江南小帅瓜的博客 2016

【机器学习】一元线性回归

1.一元线性回归是学习机器学习的基础部分。通常的问题模型是:问题的结果一般只有一个因素影响(怎么可能在现实的生活中找到这么简单的问题???)并且和这个因子成近似线性的关系。我们可以通过线性回归来找到这条回归直线,进而可以预测到下一步的结果。由于我们需要把数据可视化掉,所以我们还是先看看基本的可视化数据的一些东西。 (1)首先这是我们的数据:可以自己造数据 ...

YG爱木木 2400

一元线性回归(梯度下降法)

实战:梯度下降法实现一元线性回归用代码实现一元线性回归问题 用代码实现一元线性回归问题 代码片. // An highlighted block import numpy as np import matplotlib.pyplot as plt # 载入数据 data = np.genfromtxt("../data.csv", delimiter=",")

Turbo码先生 2222

机器学习——一元线性回归和多元线性回归

一元线性回归:梯度下降法 一元线性回归是线性回归的最简单的一种,即只有一个特征变量。首先是梯度下降法,这是比较经典的求法。一元线性回归通俗易懂地说,就是一元一次方程。只不过这里的斜率和截距要通过最小二乘和梯度下降法不断迭代找到最优解。我们先来看看运用到的代价函数:最小二乘法。 这其实和高中学的最小二乘法一模一样,不过值得注意的是,这里的2其实是可以消去的,这对结果的影响不大,之所以保留是因为,方便与之后求导所得的2消掉。 梯度下降法: 开始就说过,斜率和截距是要通过迭代计算求得的。因为初始化的斜率和截距所

iownlucky的博客 5895

机器学习笔记(一)——一元线性回归(梯度下降法)

文章来自自己的博客:机器学习笔记(一)——一元线性回归(梯度下降法) 因为是个人学习笔记向(主要是懒,啥也不想写),所以就不仔细介绍一元线性回归以及梯度下降法的具体概念了,相关知识可参见高中数学课本(一元线性回归部分)和其他博客(梯度下降法),本文只注重梯度下降法的Python实现。 学习知识、资源与数据来源:机器学习算法基础-覃秉丰_哔哩哔哩_bilibili 使用的数据在最下方,可自己保存成csv文件。 Python代码如下: import numpy as np import matplotlib.p

lunnyliu的博客 239

2.一元线性回归(代价函数和梯度下降法)

概念:回归分析(Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。其中,被用来预测的变量叫做自变量,被预测的变量叫做因变量。如果包含两个以上的自变量,则称为多元回归分析。 比方说有一个公司,每月的广告费用和销售额,如下表所示: ...

QiuGuoJing的博客 1508
上一篇: python + opencv图像处理(十七)——图像金字塔
下一篇: python + opencv图像处理(十八)——图像梯度
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值