- 博客(154)
- 收藏
- 关注
原创 Python动态创建变量
不过,动态创建变量也需要小心使用,因为如果命名规则不严格,可能会导致变量名冲突,或者代码变得难以追踪。两个 sheet,那么执行这段代码后,程序就会自动创建两个变量,分别存储对应的数据。这就好像是给数据创建了“专属名片”,以后再想用这些数据时,就可以直接使用这些变量,而无需再去查找文件或做其他额外操作。这意味着,每次运行代码时,我们不需要手动创建变量,它们会自动根据 Excel 中的 sheet 名称生成。动态创建变量是一种灵活且高效的技术,它能让我们的代码更加智能,避免重复劳动,一键搞定!
2025-03-04 02:18:58
256
原创 R使用ggplot实现基础数据可视化
0. 在开始之前,我们需要设置工作目录并导入数据集 liver.df 作为案例示范,如果需要liver.df可以评论。1. 安装ggplot包。ggplot2 是由 Hadley Wickham 创建的 R 包。它提供了一个强大的图形工具,用于创建美观且复杂的图表。近年来,它在 R 社区中的受欢迎程度急剧上升。该包允许您以直接的方式创建图表,展示单变量和多变量的数值和分类数据。分组可以通过颜色、符号、大小和透明度来表示。
2024-10-30 05:32:58
698
原创 从零讲解线性回归(Linear Regression)
线性回归是一种简单且常用的技术,用来预测,假设预测变量(自变量, x_i )和结果变量(因变量, y_i )之间存在线性关系。线性回归公式(其实就是一次方程):那么当我们有一组数据后,如何构造线性回归模型,如何确定线性回归线呢?这个问题成为了贲节重点需要解决的问题。
2024-10-18 07:44:55
1638
1
原创 数据挖掘与分析 - Data Mining & Analytics (SU)
SQL 是进行数据挖掘的第一步,也是最关键的技能之一。因此,让我们回顾一下 SQL,使我们在这项技术上变得更加精湛,从而为我们的数据挖掘的学习打下基础。练习以图书馆为例。该数据库的目的是跟踪一个小型借阅图书馆的图书供应情况,以及谁目前借阅了这些图书。图书馆希望能联系到有过期书籍的客户,客户也希望能搜索不同主题的书籍。如果您在个人信息中提出要求,可以下载 library.dbd 数据库。我们还将考虑 fruitandveg.db 中的示例,该数据库描述了水果和蔬菜通过仓库在供应商和客户之间流动的交易情况。
2024-10-08 06:40:01
881
原创 SQL业务题: 从不订购的客户
表:+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || name | varchar |+-------------+---------+在 SQL 中,id 是该表的主键。该表的每一行都表示客户的 ID 和名称。 表:+-------------+------+| Column Name | Type |+-----
2024-08-13 13:48:16
449
1
原创 算法:魔法字典
设计一个使用单词列表进行初始化的数据结构,单词列表中的单词。如果给出一个单词,请判定能否只将这个单词中字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。实现dictionarydictionarysearchWordtruefalse// 返回 False// 将第二个 'h' 替换为 'e' 可以匹配 "hello" ,所以返回 True// 返回 False// 返回 FalsedictionarybuildDictsearch100search。
2024-08-12 16:04:25
642
原创 PyG - torch_geometric官方文档
PyG Documentation — pytorch_geometric documentation (pytorch-geometric.readthedocs.io)
2024-01-23 16:16:01
1558
原创 TypeError: add_self_loops() got an unexpected keyword argument ‘edge_weight‘
这个问题与PyTorch Geometric版本有关,因为较新的版本中。函数时出现了一个不期望的关键字参数。函数的参数已经发生了变化。
2023-12-14 12:40:06
611
原创 分割YooChoose数据集为YooChoose1/4、YooChoose1/64
使用数据集中session_id作为滤网对源数据进行过滤,过滤出2百万个不同的session_id作为训练集。源YooChoose数据集十分庞大,有上千万级别的数据,在测试验证模型性能时加载起来十分费劲。需要YooChoose数据集的可以私信或评论发。(2)使用这些session_id过滤原始数据。(1)提取2M个不同的session_id。(3)保存为新数据集。
2023-12-03 16:45:56
989
4
原创 RuntimeError: CUDA error: device-side assert triggered
使用SAGEConv卷积层的图神经网络,网络架构如下。
2023-11-25 23:01:10
621
原创 (5秒解决)ImportError: attempted relative import with no known parent package
寻找了很多方法,发现大家把事情讲的复杂了。我这里用最简单的办法来解决父包引用找不到的问题。先给大家看看我的目录结构,model.py和test目录在同一级。train.py在test目录中,model.py在train.py的上一级目录。这个时候我们如果直接import model会报错。
2023-11-23 11:35:08
19117
原创 训练模型报错RuntimeError: Input, output and indices must be on the current device
当我训练图网络模型时,源码默认使用cpu,查看后台性能运行,发现正在使用cpu训练,这大大降低了训练速率,并且增加了电脑负载。所以我决定将模型改造并训练放在GPU上运行。问题解决这个问题是源于没有将自定义的model模型也放在GPU中,所以需要在方法外先把model也设置为GPU。
2023-11-18 12:12:31
384
原创 torch - FloatTensor标签(boolean)数值转换(1/0)
在Python中,`True` 被视为整数 `1`,而 `False` 被视为整数 `0`。当你将boolean值传递给 `torch.FloatTensor()` 时,PyTorch会自动将 `True` 转换为浮点数 `1.0`,而 `False` 转换为浮点数 `0.0`。在这个例子中,`tensor_true` 和 `tensor_false` 都是浮点数张量,因`torch.FloatTensor()` 默认创建浮点数张量。返回的数据为tensor([0.])或者tensor([1.])
2023-11-17 18:04:09
706
原创 处理机器学习数据集中字符串列(pandas.get_dummies)
而pandas库中有一个非常好用的函数,独热编码pandas.get_dummies(df)使用此函数之后,会在原数据中新建各列代表Fri-Sun,值为0或1,具体演示如下。如图,在数据集中week列的数据不是数值型,会导致我们在训练过程中难以处理。
2023-11-17 17:47:11
277
原创 torch - 张量Tensor简介与创建
张量就是多维数组,0维张量叫标量,1维张量是向量,2维张量是矩阵,灰度图片大多都使用2维张量所表示的,3维张量一般用于RGB图片的表示。其中后四个是用于Tensor自动求导。前四个和Tensor本身数据相关。根据size创建全0张量,其中out代表输出张量存到哪个张量上去。可以看到创建的张量和输出的张量做相等运算返回的结果是True。创建3x3,值全为1的张量。
2023-11-17 14:19:39
240
原创 关于torch保存网络模型时报错(AttributeError: ‘collections.OrderedDict‘ object has no attribute ‘eval‘等)
使用该语句保存模型会导致评估模型时报错:用下列语句即可。
2023-11-15 17:57:43
2299
原创 Pandas - 数据转换
数据转换一班包括一列数据转换为多列数据,行列转换,DataFrame转换为字典、DataFrame转换为列表和DataFrame转换为元组等。《python数据分析》p113。
2023-11-08 17:37:38
675
原创 关于卷积神经网络的池化层(pooling)
池化层又称“下采样层”或“子采样层”,池化层可以大大降低特征的维度,减少计算量,同时可以避免过拟合问题。顾名思义,最大池化层就是从输入的矩阵中某一范围内,选择最大的元素进行保留;平均池化层就是将输入的矩阵中某一范围内的数求平均值,再进行保留;最小池化层是从输入的矩阵中某一范围内,选择最小的元素进行保留。这里需要注意的一点是,池化层对每个输入通道分别池化,而不是像卷积层那样将各通道的输入按通道相加,这意味着池化层的输出通道数与输入通道数相等。
2023-11-07 20:12:41
826
1
原创 关于卷积神经网络的多通道
当输入的数据包含多个通道时,我们需要构造一个与输入通道数相同通道数的卷积核,从而能够和输入数据做卷积运算。假设输入的形状为n∗n,通道数为ci,卷积核的形状为f∗f,此时,每一个输入通道都应该分配一个形状为f∗f的卷积核,所以卷积核的形状可以表示为ci∗f∗f。从上图的实例中可以看出,多通道输入的计算方法就是单独计算每个通道中卷积的结果,再将不同通道得到的结果对应相加到一个通道,得到输出的结果。
2023-11-07 20:09:42
862
原创 关于卷积神经网络的步幅(stride)
卷积核从输入数组的最左上方开始,按从左往右、从上往下的顺序,依次在输入数组上滑动,我们将每次滑动的行数和列数称为步幅。
2023-11-07 20:02:16
836
原创 关于卷积神经网络的填充(padding)
随着卷积层数的加深,输出进一步缩小,那么最终会导致输出很快就只剩下1∗1的数组,这也就没办法继续计算了,所以提出了填充的方法来方便网络的进一步加深。1379在进行的四次卷积运算中,只被计算了一次,所以卷积学习的不充分,填充就是让卷积网络能够将边缘的角落也能多次学习,从而更全面地发现特征。填充的方法就是在输入的高和宽两侧分别填充了0元素,再进行卷积运算。
2023-11-07 19:59:09
3083
2
原创 关于卷积神经网络中如何计算卷积核大小(kernels)
首先需要说明的一点是,虽然卷积层得名于卷积( convolution )运算,但我们通常在卷积层中使用更加直观的计算方式,叫做互相关( cross-correlation )运算。也就是说,其实我们现在在这里提到的卷积运算,不是数学意义上的卷积运算,而是说在深度学习领域,大家通常将数学中的的互相关运算称之为卷积运算,这一点首先需要作出明确地声明。
2023-11-07 19:53:35
898
原创 Pandas - 数据分组统计
对数据进行分组统计,主要适用DataFrame对象的groupby()函数。其功能如下。(1)根据特定条件,将数据拆分成组(2)每个组都可以独立应用函数(如求和函数sum(),均值函数mean()等)(3)将结果合并到一个数据结构中示例1:根据“一级分类”对订单数据进行分组统计求和。示例2:按照图书“一级分类”和“二级分类”对订单数据进行分组统计求和示例3:求各二级分类的七天点击量。首先按“二级分类”分类,而后进行分组统计求和。
2023-11-06 17:32:55
1857
原创 小米屏幕灯遥控器失灵解决方案
小米屏幕灯插电可亮,其遥控器电池有电(已验证),遥控器控制不了屏幕灯的亮度及颜色。,此时屏幕灯和遥控器会进行蓝牙配对模式,屏幕灯呼吸,代表配对成功。其实这个解决办法可以解决百分之90以上的遥控器失灵问题。在屏幕灯插电的一分钟内,在遥控器插电的一分钟内。(注意双方都要断开电再重新插上的一分钟内),
2023-09-02 10:46:42
13144
4
原创 数值计算 - 矩阵的乘法
矩阵乘法是一种特殊的运算,它不同于标量的乘法。给定两个矩阵A和B,矩阵乘法的定义如下:假设矩阵A的大小为m×n(即m行n列),矩阵B的大小为n×p(即n行p列)。注意,A的列数必须等于B的行数,才能进行矩阵乘法。结果是一个新的矩阵C,大小为m×p。C的每个元素由以下公式计算:换句话说,C的每个元素是A的某行与B的某列对应元素的乘积之和。⚠️注意,矩阵乘法不满足交换律,即AB不一定等于BA。此外,矩阵乘法满足分配律和结合律,即A(B+C)=AB+AC,且A(BC)=(AB)C。
2023-06-01 19:32:07
579
原创 归一化处理、ReLU函数的作用
在上篇的ResNet详解文章中,我们会发现在特征矩阵每一次经过一个卷积层,我们都需要进行一次归一化处理(Batch Normalization,简称bn)和ReLU(Rectified Linear Unit)函数。那么具体为什么我们需要这两种函数的处理呢?引发了我的思考。
2023-05-31 11:10:34
1180
原创 ResNet 详解(Python代码实现)
ResNet为了实现特征的降维和尺寸的匹配,分为两种残差结构1.实线残差结构 2.虚线残差结构。需要注意的是ResNet18/34使用的两种残差结构与ResNet50及往上所使用的不同。图2.1 ResNet18/34实线残差结构图2.2 ResNet18/34虚线残差结构图2.3 ResNet50+实线残差结构图2.4 ResNet50+虚线残差结构本节代码需要参考图1.1搭建。1、初始化模型,其中:block:网络模块(Bottleneck/BasicBlcok)
2023-05-30 19:03:38
5114
原创 数值计算 - 习题复习
⚠️绝对误差通过微分近似来计算基于这样的理念:如果我们在某个点附近考虑一个函数,那么该函数在该点附近的行为可以通过该点的切线来近似。这就是微分的基本概念,也是微分近似的基础。更具体地说,假设我们有一个函数y=f(x),并且我们知道x的一个小的改变Δx会导致y的改变Δy。如果Δx足够小,那么我们可以通过函数在x处的导数来近似计算Δy。这就是所谓的微分近似,数学上可以写成:在此问题中,我们要计算的是正方体体积的绝对误差。正方体的体积V是边长a的函数,V=a^3。
2023-05-27 16:58:13
1278
原创 数值计算 - 常用函数值计算方法
泰勒公式,也称泰勒展开式。是用一个函数在某点的信息,描述其附近取值的公式。如果函数足够平滑,在已知函数在某一点的各阶导数值的情况下,泰勒公式可以利用这些导数值来做系数,构建一个。
2023-05-23 17:23:33
1099
原创 数值计算 - 利用机器计算的基本方式
设f(x)是定义在[a,b]上的连续函数,当它们的表达式很复杂,甚至写不出来时,我们可以选择若干个离散点求出f(x)在这些点处的函数值或函数值的近似值从而得到一个如下的函数值列表:⚠️提示:对于一个实际的控制系统来说,我们可以直接由数据采集系统获得上面的函数值列表,比如在一些离散的时刻点的温度、压力等等。
2023-05-20 19:28:35
698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人