机器学习基础——梯度下降法之二元线性回归

Python梯度下降法实现二元逻辑回归 Python梯度在下降法实现二元逻辑回归 二元逻辑回归假设函数 定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1)。 二元逻辑回归的损失函数 上图为二元逻辑回归的概率公式,则代价函数可以表示为 损失函数求偏倒数为 可以发现和线性回归的结果是一样的,只不过是假设函数h发生了变化。 正则化 为了避免过拟合,通常在代价函数后加一个正则化项,针对二元逻... 阅读详情

二元线性回归

import numpy as np
import matplotlib.pyplot as plt
from numpy import genfromtxt
from mpl_toolkits.mplot3d import Axes3D # 可以用来画3D图

# 导入数据
data = genfromtxt(r"C:\\ML\\chapter-1\\Delivery.csv",delimiter=",")
print(data)

# 切分数据
x_data = data[:,:-1] # 行,列
y_data = data[:,-1] # 行,列
print(x_data)
print(y_data)

# 学习率 learning rate
lr = 0.0001

# 参数
theta0 = 0
theta1 = 0
theta2 = 0

# 最大迭代次数
epochs = 1000

# 最小二乘法
def compute_error(theta0,theta1,theta2,x_data,y_data):
    totalError = 0
    for i in range(0,len(x_data)):
        totalError += (y_data[i] - (theta1 * x_data[i,0] + theta2*x_data[i,1] + theta0)) ** 2
    return totalError / float(len(x_data))

def gradient_descent_runner(x_data,y_data,theta0,theta1,theta2,lr,epochs):
    # 计算总数据量
    m = float(len(x_data))
    # 循环epochs次
    for i in range(epochs):
        theta0_grad = 0 # 梯度0
        theta1_grad = 0 # 梯度1
        theta2_grad = 0 # 梯度2
        # 计算梯度总和再求平均
        for j in range(0,len(x_data)):
            theta0_grad += -(1/m) * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
            theta1_grad += -(1/m) * x_data[j,0] * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
            theta2_grad += -(1/m) * x_data[j,0] * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
        # 更新参数
        theta0 = theta0 - (lr*theta0_grad)
        theta1 = theta1 - (lr*theta1_grad)
        theta2 = theta2 - (lr*theta2_grad)
    return theta0,theta1,theta2

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

ax = plt.figure().add_subplot(111,projection = "3d")
ax.scatter(x_data[:,0],x_data[:,1],y_data,c = 'r',marker = 'o',s = 100) # 点为红色三角形 s代表点的大小
x0 = x_data[:,0]
x1 = x_data[:,1]
# 生成网络矩阵
x0,x1 = np.meshgrid(x0,x1)
z = theta0 + x0*theta1 + x1*theta2
# 画3D图
ax.plot_surface(x0,x1,z)
# 设置坐标轴
ax.set_xlabel('Miles')
ax.set_ylabel("Num of Deliveries")
ax.set_zlabel('Time')

# 显示图像
plt.show()

在这里插入图片描述

使用 Python 进行线性回归及梯度下降法优化的详细介绍 本文介绍了如何使用 Python 进行线性回归,包括使用 scikit-learn 的 LinearRegression 进行建模和梯度下降法的优化。我们通过批量梯度下降法实现了参数的优化,验证了其在测试集上的表现。最后,还展示了如何通过 SGDRegressor 使用随机梯度下降法进行线性回归。通过这些步骤,读者可以深入理解线性回归的原理和优化算法的应用。 阅读详情

相关推荐

机器学习(二):线性回归之梯度下降法

梯度下降法是一种常见的优化方法,常用于求解损失函数最小化的问题。在线性回归模型中,我们可以使用梯度下降法来求解使得模型损失函数最小的模型参数。

阿极的博客 3147

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

import numpy as np import matplotlib.pyplot as plt from numpy import genfromtxt from mpl_toolkits.mplot3d import Axes3D # 可以用来画3D图 # 导入数据 data = genfromtxt(r"C:\\ML\\chapter-1\\Delivery.csv",delimite...

小黄的博客 886

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

二元线性回归之梯度下降法

from numpy import genfromtxt import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 读入数据 Data = genfromtxt(r"data2.csv", delimiter=',') # 切分数据 X_data = Data[:, :-1] # 除最后一列所有列 Y_data = Data[:, -1] # 最后一列 # 学习率 LR

weixin_43087913的博客 1151

关于使用vcpkg下载osgearth遇到的问题

注意--x-manifest-root=后面跟着的E:\gitproject\osgearth-osgearth-3.5\vcpkg是你下载的源码解压缩后vcpkg.json的文件地址,然后等待编译完成。安装vcpkg后使用vcpkg install osgearth:x64-windows安装好osgearth并且导入项目使用时,发现无法运行官方文档中示例的main.cpp。这里写一种自己用过的使用vcpkg安装osgearth3.5的方法,源码,打开vcpkg所在的命令行,执行。示例main.cpp。

m0_61776040的博客 1526

从零到一:在RK3588 Android12上实战RTL8723DU WiFi蓝牙双模驱动移植

本文详细介绍了在RK3588 Android12系统上实战RTL8723DU WiFi蓝牙双模驱动移植的全过程。从驱动源码获取与修改、系统级集成与编译,到调试与性能优化,提供了完整的解决方案。特别针对USB接口适配、电源管理和蓝牙共存等关键问题给出了具体代码示例,帮助开发者快速完成驱动适配并提升设备稳定性。

weixin_28703489的博客 326

python 机器学习 一元和二元多项式回归 梯度下降算法

python 机器学习 一元多项式回归 一元多项式 一元多项式表达式为: Y=WTX=[w0+w1+⋯+wn]⋅[1+x+⋯+xn−1]T Y=W^TX=\left[ w_0+w_1+\cdots +w_n \right] \cdot \left[ 1+x+\cdots +x^{n-1} \right] ^T Y=WTX=[w0​+w1​+⋯+wn​]⋅[1+x+⋯+xn−1]T 其中高次项为一次项的高次幂,将该式写为多元表达式: Y=WTX=[w0+w1+⋯+wn]⋅[x1+x2+⋯+xn]T Y=W^T

Big_SHOe的博客 3524

Android功耗系列专题理论之一:功耗优化分析思路简介

本文系统介绍了电子系统功耗分析方法,涵盖静态与动态功耗原理、电流波形分析技术和模块化拆解策略。重点阐述了PMIC与CPU协同管理机制、DVFS动态调节技术,以及通过示波器捕获波形特征定位异常的方法。针对亮屏等典型场景,提出三阶段对比分析法,并详细说明硬件/软件拆解方案及混合验证策略。文章还总结了常见问题模块(CPU、多媒体、外设)的排查流程,强调需结合日志分析、温度控制及重复测试确保数据可靠性,为功耗优化提供系统化解决方案。

1459

机器学习2-逻辑回归

目录前言算法思想二元逻辑回归模型二元逻辑回归梯度推导多元逻辑回归模型逻辑回归&朴素贝叶斯逻辑回归优缺点优点:缺点应用面试问题收集 前言 逻辑回归是一个分类算法(二元/多分类),并不是回归算法。Y是连续的才是回归模型。这里打算把公式推一遍。 算法思想 假设数据服从伯努利分布,在训练数据集中基于对数似然函数,利用梯度下降,找出最佳拟合曲线(最佳分类线θTX\theta^TXθTX),通过sig...

qq_42012732的博客 972

【时时三省】vector cast (vcast) 集成测试使用教程

山不在高,有仙则名。水不在深,有龙则灵。----优快云 时时三省。

时时三省的博客 710

在 Linux 64 位上遭遇 Signal 7 与 ST22 SYSTEM_CORE_DUMPED:从 es/implementation=std 到 /dev/shm 的一套落地排查法

摘要: Linux 64位SAP系统出现SYSTEM_CORE_DUMPED和Signal 7(对应SIGBUS)错误时,核心问题是进程因共享内存资源异常被操作系统强制终止。主要诱因包括:1)/dev/shm的tmpfs默认容量不足(通常仅占物理内存50%);2)SAP内存管理参数es/implementation=map在64位场景下的敏感性。解决方案应双管齐下:在实例profile设置es/implementation=std以降低对tmpfs的依赖,同时按(RAM+Swap)*75%重新配置/dev/

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 164

2机器学习_多元线性回归

一元线性回归可以用一条直线来描述拟合程度 二元线性回归用一个平面来描述拟合程度 多元则无法在二维平面画出图像来描述,用一个超平面来描述。

qq_42391153的博客 357

【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】

Synopsys PCIe 5.0 EP 架构由多个功能模块组成,整体遵循分层 + 模块化设计CXPL(事务层 + 链路层 + 物理层 MAC)XADM(仲裁/生成)、XAIM(应用接口)RADM(过滤/路由/Completion)CDM(配置空间)、PMC(电源管理)、LBC/DBI(寄存器访问)MSG_GEN(消息)、CXS(多芯片一致性)

CodingCos的博客 383

如何理解梯度下降法

从感性认识入手,由浅及深理解清楚梯度下降法,并举例说明梯度下降法的应用。

Evan 的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

机器学习之逻辑回归详解

目录 线性回归 方程 损失函数 求导 令导数为0,得到 逻辑回归 逻辑回归函数 逻辑回归函数如何解决二元分类过程? 逻辑回归的损失函数 梯度下降法 ...

weixin_30952103的博客 129

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【UCAS智能计算系统】1.机器学习与线性回归

​ 神经网络的训练和使用过程,与机器学习中的线性回归的训练和使用过程是高度一致的,都需要准备带有标签的数据,调整模型的参数,使用预测输出和标签之间的误差来使得损失函数尽可能小。​ 我们在媒体,论文和小说中经常看到人工智能,机器学习,神经网络,深度学习这些热门词汇。​ 线性回归是最简单的机器学习方法,本节尝试以线性回归为例子,以理解机器学习的原理。例如,一个点集可以用一条直线来拟合,这条拟合出来的直线的参数特征就是线性回归找到的点集背后的规律。的关系,找到一条拟合直线,使所有数据点到该直线的距离之和最小。

踏上取经路,比抵达灵山更重要🐱‍👤 849

梯度下降法基本原理

求解线性回归模型–函数求极值 解析解 根据严格的推导和计算得到,是方程的精确解 能够在任意精度下满足方程 但是在很多情况下,无法直接通过严格的公式推导,得到方程或者方程组的解析解,这时候只能够采用数值分析的方法得到近似解,这样的解也成为数值解 数值解 通过某种近似计算得到的解 能够在给定的精度条件下满足方程 我们就都介绍一种常用的求数值解的方法,梯度下降法。为了便于理解,我们先从最简单的一元凸函数开始介绍梯度下降法的求解过程。 一元凸函数求极值 这是一元函数fx=x平方+2的函数曲线,

qq_37289115的博客 7704

机器学习系列——线性回归1

通过简单的拟合直线的例子从公式推导到Python实践的课程,介绍线性回归模型

MichaelRock_的博客 797

机器学习笔记目录

线性回归公式法推导 线性回归梯度下降法推导 逻辑斯蒂回归法二元分类 逻辑斯蒂回归法多元分类

蓬某某的博客 312

2022吴恩达机器学习笔记(第一课)

2022吴恩达机器学习笔记(第一课)

DIMP_的博客 417

【机器学习学习笔记】机器学习入门&监督学习

1. 机器学习入门 1.1 What is Machine Learning? ​ "Field of study that gives computers the ability to learn without being explicitly programmed. " ​ ——Arthur Samuel (1959) 亚瑟·萨缪尔:跳棋程序编写者 常用机器学习算法: Supervised learning (more imp

三分明月落的博客 505

机器学习之-梯度下降法学习笔记

1 简介 梯度下降法又被称为最速下降法(Steepest descend method),其理论基础是梯度的概念。 梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。 现在假设我们要求函数的最值,采用梯度下降法,如图所示: 以一个人下山为例。比如刚开始的初始位置是在红色的山顶位置,那么现在的问题是该如何达到蓝色的山底呢?按照梯度下降算法...

xxzzg的博客 683

机器学习算法(3)——线性回归与逻辑回归

线性回归 线性回归的数学推导主要涉及到以下几个知识点。 1. 利用矩阵的知识对线性公式进行整合 2. 误差项的分析 3. 似然函数的理解 4. 矩阵求偏导 5. 线性回归的最终求解 例子 本故事纯属虚构如有雷同那肯定是巧合。 A去银行办信用卡,柜台的漂亮妹子询问:"请问您的年龄和月收入是多少?"A:"20岁,月收入2万元"。妹子:“您可办理的额度为1万元”。此时,B同样办信用卡...

知识搬运工的博客 2297

4、机器学习中的逻辑回归

前面介绍的是线性回归,就是说有一堆的数据,找到一条线去拟合他们,找出规律,然后做预测。 现在呢,我们要解决的是分类问题,也就是说我们最终预测的结果是一个概率值,预测出的结果属于某一个类的概率是多少。(概率嘛,值肯定是在0到1之间) 对于一个二元分类问题,结果y只能等于0或者1,分别称为负向类和正向类。我们需要用到逻辑回归算法,使得假设h的输出在0到1之间,就需要找到一个满足这个性质的假设函数。 ...

qq_34579844的博客 297

DW机器学习task1

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原理里面却残留着回归模型的影子,本文对逻辑回归原理做一个总结。 从线性回归到逻辑回归     我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ。此时我们的Y是连续的,所以是回归模型。如果我们想要Y是离散的话,怎么办呢?一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为

royryan97的博客 308
上一篇: 机器学习算法基础——梯度下降法之二元线性回归
下一篇: 机器学习算法基础——sklearn求二元线性回归
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、付费专栏及课程。

余额充值