自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 cnn训练并用grad-cam可视化

摘要:研究使用CNN模型对5种品牌大米图像(Arborio、Basmati、Ipsala、Jasmine、Karacadag)进行分类训练。采用PyTorch框架构建包含2个卷积层和2个全连接层的简单CNN网络,使用标准预处理和10轮训练。实验还实现Grad-CAM可视化方法,通过提取最后一个卷积层的特征图生成热力图,直观展示模型关注区域。结果表明该方法能有效区分不同品种大米,并为模型决策提供可解释性依据。代码包含完整的训练流程和可视化实现。

2025-06-02 21:03:00 672

原创 Day 42 Grad-CAM

PyTorch Hook函数与Grad-CAM技术解析 Hook函数是PyTorch提供的强大工具,允许在不修改模型结构的情况下监听中间层的输入/输出和梯度。主要应用场景包括: 调试与可视化中间层输出 特征提取(如高层语义特征) 梯度分析与修改(如梯度裁剪) 模型压缩(如权重掩码) Grad-CAM技术通过梯度加权类激活映射来解释CNN决策过程: 计算目标类别对特征图的梯度,获得各通道重要性权重 加权求和特征图生成类激活映射 可视化热力图,显示对预测最关键的区域 示例显示,该方法能有效定位图像中的关键特征(

2025-06-01 22:15:25 731

原创 DAY 41 简单CNN

知识回顾数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率卷积操作常见流程如下:1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层Flatten -> Dense (with Dropout,可选) -> Dense (Output)卷积层是特征提取器,池化层是特征压缩器。他们二者都是在做下采样操作。一、数据增强。

2025-05-31 23:29:56 890

原创 DAY 40 训练和测试的规范写法

Epoch: 10/20 | Batch: 500/782 | 单Batch损失: 0.2125 | 累计平均损失: 0.2364。Epoch: 12/20 | Batch: 100/782 | 单Batch损失: 0.2631 | 累计平均损失: 0.2361。Epoch: 12/20 | Batch: 300/782 | 单Batch损失: 0.2776 | 累计平均损失: 0.2361。

2025-05-30 20:58:43 1168

原创 DAY 39 图像相关的神经网络

本文介绍了使用CIFAR-10数据集生成彩色图像的方法。首先设置随机种子确保结果可复现,定义数据预处理步骤包括张量转换和标准化。加载训练集后创建数据加载器,随机选择并显示一张图片,并使用imshow函数进行可视化处理。同时提供了MNIST数据集的处理示例,展示了MLP神经网络的构建过程,包括展平层、全连接层和激活函数的使用。最后详细描述了模型的初始化过程,并提供了模型结构信息的输出方式,适用于CIFAR-10彩色图像(3×32×32)的处理需求。

2025-05-29 22:29:00 256

原创 Day 36 复习日

本文摘要:该代码实现了一个基于神经网络的信贷违约预测模型。首先对数据进行预处理,包括缺失值填充、离散变量编码和特征标准化。构建了一个三层MLP网络结构,采用ReLU激活函数和Dropout层防止过拟合。使用交叉熵损失和Adam优化器进行训练,通过tqdm进度条监控训练过程,并记录每200轮的损失和准确率。最后在测试集上评估模型性能,准确率达到90%以上。整体代码结构清晰,包含了数据预处理、模型定义、训练和评估的完整流程。

2025-05-25 23:35:55 169

原创 day35 模型可视化与推理

模型训练 :使用 torch 库进行模型训练,训练 20000 个周期,损失值从初始逐渐下降至 0.0625,训练耗时约 40 - 42 秒,还使用 torchsummary 打印了模型摘要,显示总参数为 83 个,可训练参数 83 个。进度条显示 :借助 tqdm 库实现进度条功能,在累加 1 到 10 的过程中,用 set_postfix 方法在进度条右侧显示实时总和。

2025-05-24 23:21:43 1173

原创 DAY 34 GPU训练及类的call方法

本文介绍了如何查看CPU和GPU的性能指标,并详细描述了在GPU上进行模型训练的过程。CPU性能主要关注架构代际、核心数和线程数,而GPU性能则需关注显存、级别和架构代际。在GPU训练中,数据和模型需要移动到GPU设备上。文章还解释了在定义前向传播时,可以直接使用self.fc1(x)的原因,并提供了代码示例,展示了如何使用PyTorch在GPU上训练一个多层感知机(MLP)模型。代码包括数据加载、预处理、模型定义、训练过程以及损失曲线的可视化。最后,文章建议复习并思考可能出现的性能问题,如多次读取数据导致

2025-05-23 21:34:51 164

原创 DAY 33 简单的神经网络

本文回顾了PyTorch和CUDA的安装与检查流程,包括通过命令行查看显卡信息、验证CUDA是否可用以及获取CUDA设备信息。接着,文章介绍了使用鸢尾花数据集进行神经网络测试的步骤,包括数据加载、归一化处理、转换为PyTorch张量等预处理操作。随后,定义了一个简单的全连接神经网络模型,并详细说明了模型架构、损失函数和优化器的选择。最后,文章展示了模型的训练过程,包括前向传播、反向传播、参数更新以及损失值的记录与可视化。通过这一系列步骤,读者可以了解如何在PyTorch中构建和训练一个简单的神经网络模型。

2025-05-22 23:52:55 500 1

原创 Day32 官方文档的阅读(pdpbox)

本文介绍了如何通过GitHub和官网检索官方文档,并强调了安装包与文档版本一致的重要性。在阅读和使用文档时,需关注类的实例化参数、普通方法的参数及返回值。文章还涉及对底层库调用的理解,特别是在绘图方面。作业部分要求参考pdpbox官方文档,使用TargetPlot和PredictPlot类绘制图表。示例代码展示了如何加载鸢尾花数据集、训练随机森林模型,并利用pdpbox库绘制目标图和预测图。通过调整图表尺寸和标题,用户可以自定义图表展示效果。

2025-05-21 22:31:33 163

原创 DAY 31 文件的规范拆分和写法

文章摘要:本文回顾了机器学习项目中的关键知识点,包括规范的文件命名、文件夹管理、项目拆分、编码格式和类型注解。以心脏病项目为例,展示了如何准备拆分的项目文件,并思考哪些部分可以未来复用。文章详细介绍了数据预处理步骤,如对对象数据类型进行编码,并展示了数据可视化的方法,包括使用Seaborn库绘制计数图和分布图。最后,文章描述了使用随机森林分类器进行模型预测的过程,包括模型训练、预测和评估,特别是通过混淆矩阵计算灵敏度和特异性。这些步骤为机器学习项目的实施提供了实用的指导和示例。

2025-05-20 21:28:06 114

原创 DAY 30 模块和库的导入

本文回顾了Python中导入库和模块的三种主要方式:导入官方库、导入自定义库/模块,以及理解导入的核心逻辑,即找到根目录。通过一个计算圆周长和面积的示例,展示了如何使用import math导入数学库,并处理用户输入。此外,还演示了如何从自定义模块circle中导入函数calculate_area,并计算圆的面积。作业要求读者在不同路径下创建文件,尝试导入模块,以加深对Python模块导入机制的理解。

2025-05-19 21:30:29 570

原创 Day29 类的装饰器

类装饰器与函数装饰器类似,但作用对象不同。类装饰器接收一个类,返回修改后的类,可以添加新方法、属性或修改原有方法,甚至返回全新类。通过类装饰器,可以在不修改类内部代码的情况下,为多个类统一添加功能。函数装饰器则接收函数,返回包装后的函数,用于修改函数行为。过去29天的学习中,我加深了对函数和类的理解:函数封装特定功能,便于重复调用;类集成属性和方法,结构清晰,避免重复操作。Python在处理结构化数据、科学计算和机器学习方面表现出色,未来将开启深度学习专题。

2025-05-18 22:25:12 386

原创 Day 27 函数专题2 装饰器

装饰器是Python中的一种高阶函数,它允许在不修改原函数代码和调用方式的情况下,为函数添加额外功能。装饰器本质上是一个函数,它接收一个函数作为参数,并返回一个新函数。新函数会包裹原函数,在执行原函数前后添加新逻辑,如日志记录、性能测试等。通过使用@符号将装饰器应用到目标函数上,可以提高代码的复用性和可维护性,使代码更加简洁优雅。装饰器的使用遵循DRY原则(Don't Repeat Yourself),通过将可复用的功能封装在装饰器中,避免了代码重复,增强了代码的可读性。

2025-05-16 23:16:01 890

原创 DAY 28 类的定义

本文介绍了Python中类的基本概念和使用方法。首先,类作为对象的蓝图,定义了对象的属性和方法,如简单的Dog类示例。其次,__init__方法用于初始化对象属性,如Cat类中的名字和年龄。普通方法则用于实现类的特定功能,如Rectangle类中的area方法计算面积。最后,类的继承允许子类继承父类的属性和方法,并可以扩展或重写父类方法,如Dog类继承Animal类并重写speak方法。通过这些内容,可以更好地理解和使用Python中的类。

2025-05-16 20:36:49 320

原创 DAY 26 函数专题1

本文档回顾了函数定义、变量作用域、参数类型及传递顺序等基础知识点,并通过五个编程作业巩固了这些概念。作业内容包括:计算圆和矩形面积的函数,处理负数输入时返回0;使用*args计算任意数量数字的平均值,无输入时返回0;通过**kwargs打印用户信息和格式化几何图形描述。这些练习展示了如何使用位置参数、默认参数、不定参数和关键词参数来编写灵活且健壮的函数,满足不同场景的需求。

2025-05-15 22:10:11 736

原创 Day 25 Python异常处理

作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。# 当 try 块中发生任何其他未被前面 except 捕获的异常时执行的代码。# 当 try 块中发生 ExceptionType 类型的异常时执行的代码。except: # 不推荐:捕获所有类型的异常,可能会隐藏bug。# 可能会引发异常的代码。

2025-05-14 21:39:15 172

原创 DAY 24 元组和OS模块

本文介绍了 Python 中的元组、可迭代对象和 os 模块的基本概念及其应用。元组是一种不可变的序列类型,适用于存储不可修改的数据,并可作为字典的键。可迭代对象如列表、字符串等,支持循环遍历和生成器操作,适用于数据处理和内存优化。os 模块提供了与操作系统交互的功能,常用于文件管理、路径处理和环境变量管理。这些工具在 Python 编程中具有广泛的应用场景,能够有效提升代码的灵活性和效率。

2025-05-13 20:54:23 472

原创 Day22 Kaggle泰坦尼克号训练实战

在Kaggle平台上进行泰坦尼克号生还预测比赛时,首先需加载并预处理数据,包括处理缺失值和分类变量编码。接着,选择合适的机器学习模型(如随机森林)进行训练,并对测试集进行预测。最后,将预测结果保存为符合Kaggle要求的CSV文件提交。注意点包括确保数据预处理步骤一致,避免数据泄露,以及合理选择模型参数以提高预测准确性。通过这一流程,可以有效利用Kaggle平台进行数据科学竞赛的实践和学习。

2025-05-11 22:53:43 493 1

原创 Day21 奇异值分解(SVD)全面解析

奇异值分解(SVD)是线性代数中的重要矩阵分解方法,适用于各种矩阵形式的数据。虽然其推导过程复杂,但在实际应用中,用户无需深入掌握相关线性代数概念即可使用SVD。SVD的主要应用包括特征降维和数据重构。特征降维可以减少计算量并实现数据可视化,而数据重构则可用于信号处理和图像压缩。在进行SVD前,数据标准化是必要的,以避免不同量纲对结果的影响。通过计算Frobenius范数相对误差,可以评估矩阵重构的效果,帮助选择合适的奇异值数量。总之,SVD在数据处理和分析中具有广泛的应用价值。

2025-05-10 21:44:20 747

原创 Day20 常见降维算法分析

本文介绍了三种常见的降维算法:LDA线性判别、PCA主成分分析和t-SNE降维,并通过实验对比了它们在heart.csv数据集上的表现。LDA是一种有监督的降维方法,旨在最大化类间差异;PCA是无监督的线性降维方法,通过保留最大方差的主成分实现降维;t-SNE则是一种非线性降维方法,适合高维数据的可视化。实验过程包括数据预处理、降维操作和结果可视化,并通过分类准确率评估了降维效果。结论指出,LDA适合分类任务,PCA适合大规模数据处理,而t-SNE在可视化方面表现优异,但计算复杂度较高。根据具体需求,可以选

2025-05-09 22:04:18 1194

原创 Day19 常见的特征筛选算法

特征筛选是机器学习中的重要步骤,常见的算法包括方差筛选、皮尔逊相关系数筛选、Lasso筛选、树模型重要性、SHAP重要性和递归特征消除(RFE)。方差筛选通过剔除低方差特征快速降维,但可能忽略有用特征。皮尔逊相关系数筛选适用于线性关系,但无法处理非线性。Lasso通过L1正则化进行特征选择,适合高维数据,但对高度相关特征敏感。树模型和SHAP重要性能够处理非线性关系,但计算复杂度较高。RFE通过迭代剔除不重要的特征,适合对模型性能要求高的场景。在心脏病数据集上的实验表明,不同筛选方法对模型精度有不同影响,S

2025-05-08 21:34:02 748

原创 Day17 聚类算法(K-Means、DBSCAN、层次聚类)

本文介绍了三种常见的聚类算法,对心脏病数据集做DBSCAN 聚类分析。先读取数据并标准化,设参数完成聚类得簇数与噪声点数。

2025-05-06 21:09:12 1716

原创 Day 16 初识numpy以及Shap简单应用

Numpy 数组索引 :使用不同维度 numpy 数组索引方式访问元素。Shap 库介绍为每个特征分配值,所有特征 SHAP 值与基线预测值之和等于模型预测结果。通过评估特征加入前后模型预测变化求平均得出,给出计算公式。优点有一致性、局部准确性和全局可解释性;缺点是计算复杂度高且依赖数据分布。可用于模型在单个样本和全局层面的决策过程解释,还能通过 SHAP 值大小进行特征选择。

2025-05-05 21:50:20 945

原创 Day 15 复习前两周所学内容

五一假期刚刚结束,明天更新。

2025-05-05 21:36:24 129

原创 Day 14 Shap图介绍

五一假期刚刚结束,明天更新。

2025-05-05 21:35:37 123

原创 Day 13 不平衡数据集的处理

五一假期刚刚结束,明天更新。

2025-05-05 21:35:04 73

原创 Day12 粒子群算法原理

遗传算法、粒子群算法、模拟退火这三种算法感觉都好傻啊,都是有递归的操作存在,一层一层地做,逐步逼近最优解,要是有能直接找到最优解的算法就好了。

2025-05-01 22:32:41 158

原创 Day11 优化超参数,网格搜索

为了保证文章顺序,先占个坑、五一假期结束后补。

2025-05-01 22:31:01 99

原创 Day10 正式进入机器学习入门,万字长文

主要任务:开始机器学习建模(简单建模,不涉及调参)和评估;可以看下这些模型的性能对比:可以看到随机森林、LightGBM和XGBoost的效果都比较好,所以我们最终做实验的时候可以选择随机森林作为我们的模型。

2025-04-29 23:18:17 1286 1

原创 Day 9: 热力图和子图的绘制

好了,以上就是本篇博客的全部内容,包括Python中的热力图、子图和enumerate()函数,本文中的文件也已经放到评论区里了,有需要的小伙伴可自取。看到这里你也已经很棒了,如果有问题或者建议的话,欢迎评论区讨论交流~~

2025-04-28 23:46:18 227

原创 Day08 Python字典、标准化和归一化

好了,以上就是本篇博客的全部内容,包括Python中的字典、离散变量的编码、连续变量的归一化和标准化,看到这里你也已经很棒了,如果有问题或者建议的话,欢迎评论区讨论~~

2025-04-28 00:13:41 330 2

原创 Day07 Python入门第一周的复盘与训练

可以发现所有特征都是整形或是浮点型,所以对于其是连续特征还是离散特征可以咱们自己主观定,然后两种都可以测试一下,看下哪个效果好,那就是哪个哈哈。对于一个变量是离散还是连续的,没有一个准确的定义,可以主观判断一下,或者说做两次实验,看下哪个效果更好,那这个特征就是哪种。本文主要包括最近两天的知识点的应用,想看前面内容的小伙伴可以看下我的Python入门到专精60天计划专栏。首先,对于初始数据进行处理,比如连续特征有为空的地方,用中位数进行处理。其余连续变量同理了,都可以用上面的方法来画出直方图。

2025-04-26 23:46:27 174 1

原创 Day06 数据可视化 matplotlib库

但是目前你的目标就是达到目的即可,所以你应该用最简单最直观的方法,这便于你读者一眼知道你在做什么。可以看到 如果'number of open accounts'的值太多 就会很散,不美观,所以这时候采取分组的措施。观察一下数据的特点,很多时候我们需要单纯从数据分布来认识数据,这才是真正有价值的事情。2. 需要指定图的坐标轴,比如x轴和y轴,并且传入数据。3. 需要指定图的标题,比如x轴和y轴的标签,以及标题。1. 需要指定图的类型,比如折线图,散点图,柱状图等。标签是离散的,特征如果是连续的应该绘制什么图

2025-04-25 23:52:29 923 1

原创 Day05 Python处理离散特征

今天的任务分成以下几步1. 读取数据2. 找到所有离散特征3. 选择一个离散特征进行独热编码4. 采取循环对所有离散特征进行独热编码5. 加上昨天的内容 并且处理所有缺失值

2025-04-24 22:54:49 221 2

原创 Day04 Pandas真没你想的那么难

pandas真没你想的那么难,我也是用了半天不到就会用基本操作了。

2025-04-23 23:52:17 272 1

原创 Day 03 Python列表和循环

创建一个包含三个字符串元素的列表 tech_list,元素分别为 “Python”, “Java”, “Go”。修改 tech_list 中的第二个元素(索引为 1),将其从 “Java” 更改为 “Ruby”。定义一个包含整数的列表 scores,赋值为 [85, 92, 78, 65, 95, 88]。计算当前 tech_list 的长度,并将结果存储在变量 current_length 中。- 28-35度:打印"黄色预警:天气炎热"- 20-27度:打印"绿色提示:适宜温度"

2025-04-22 22:41:16 785

原创 Day02 Python字符串基本操作与比较操作

题目: 定义两个整数变量,score_a 赋值为 75,score_b 赋值为 90。比较 score_a 是否大于 score_b,将比较结果(布尔值)存储在变量 is_a_higher 中;比较 score_a 是否小于等于 score_b,将结果存储在变量 is_a_lower_or_equal 中;比较 score_a 是否不等于 score_b,将结果存储在变量 is_different 中。题目: 定义两个字符串变量,str1 赋值为 “Hello”,str2 赋值为 “Python”。

2025-04-21 19:25:12 137

原创 Day01 基础语法

计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。计算折扣后的价格,并将结果存储在变量。和 f-string,如何让姓名和城市分两行输出?函数将每个变量的值单独打印出来,每个值占一行。对我的帮助,大家可以关注一下他的课程,强推。如果想在输出的姓名两边加上引号,例如。存储你所在的城市(字符串,例如。存储你的名字(字符串,例如。定义两个浮点数变量,

2025-04-20 19:39:22 411

原创 树的直径(两次DFS + 树形DP)

1.两次DFS 2.树形DP从树上任一点开始dfs,找到距离距离最远的点,再从找到距离点最远的点。那么即为树的直径。如果点为某一条直径的一个端点,那么树上距离最远的点一定是该直径的另一端点。所以我们要证的就是。

2022-11-25 23:23:42 974

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除