自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

摘要:本文介绍了使用PyTorch构建单通道图像分类模型的标准流程。首先规范设置MNIST数据集预处理,包括归一化和数据加载器封装。然后定义了一个包含两层全连接层的MLP模型,并详细展示了训练函数的模块化封装,包括损失计算、优化过程和测试评估。文章特别强调了代码结构的规范性和可复用性,通过分离训练、测试和绘图功能提升代码可维护性。最后运行示例显示该MLP在MNIST上可达96%+准确率,同时指出MLP模型在处理更复杂图像数据时的局限性。

2025-08-20 23:39:35 525 1

原创 Day 39: 图像数据与显存

本文探讨了图像数据的本质特征与神经网络架构设计。图像数据采用三维结构(通道×高度×宽度),与表格数据不同,如MNIST(1×28×28)和CIFAR-10(3×32×32)。神经网络需通过展平操作适配图像输入,但全连接层参数随输入尺寸急剧增加。同时,显存管理至关重要,数据类型转换(如uint8到float32)会增加4倍存储,优化器选择和批次大小显著影响显存占用。理解这些特性对设计高效图像处理模型具有指导意义。

2025-08-13 23:51:26 812

原创 Day 38: Dataset类和DataLoader类

PyTorch数据加载机制详解:Dataset与DataLoader核心解析 本文系统介绍了PyTorch处理大规模数据的关键组件。主要内容包括: 核心概念:Dataset类定义数据获取方式(__getitem__和__len__方法),DataLoader负责批量加载策略 实战演示MNIST数据集加载流程,涵盖数据预处理、可视化等环节 两类对比表格:从职责、方法、参数等维度区分Dataset和DataLoader 实用技巧:包括batch_size选择原则、预处理时机、内存优化方法等 文章通过代码示例和理

2025-08-12 23:18:57 633

原创 Day 37:早停策略和模型权重的保存

摘要 本文介绍了机器学习中的过拟合现象及其解决方案。过拟合指模型过分拟合训练数据中的噪声和随机波动,导致泛化能力下降,通常由模型过于复杂、训练数据不足或质量不高引起。为解决这一问题,文章重点讲解了早停策略(Early Stopping)——通过在验证集性能不再提升时提前终止训练来防止过拟合。文中提供了基于PyTorch的代码实现,包括数据预处理、模型构建、训练过程和可视化分析,最终在测试集上评估模型准确率。实验结果表明该策略能有效避免过拟合,提高模型泛化能力。

2025-08-11 23:36:40 687

原创 Day 36: 复习

本文系统介绍了Python机器学习开发的模块化设计思想与实践方法。首先分析了Python库的分层生态,强调按需掌握的学习原则;然后详细讲解了项目生命周期管理、目录结构设计哲学等工程化实践;接着深入探讨PyTorch框架的核心概念、神经网络构建模式和训练循环标准流程;通过性能优化案例揭示了CPU与GPU的辩证关系;最后总结了文档驱动学习、模型可视化和日志系统等工程化要素。全文贯穿分层思考和实验验证的方法论,为构建可维护的机器学习项目提供了系统性指导。

2025-08-09 23:38:47 756

原创 Day 35:模型可视化与推理

本文介绍了使用PyTorch构建多层感知机(MLP)对鸢尾花数据集进行分类的实现过程。主要内容包括:数据加载与预处理(归一化、划分训练/测试集);构建包含输入层(4个特征)、隐藏层(10个神经元)和输出层(3个类别)的MLP模型;使用交叉熵损失函数和SGD优化器进行20000轮训练;记录训练损失并可视化。特别展示了三种模型可视化方法:内置打印、torchsummary和torchinfo库,以及权重分布统计分析和直方图可视化。最后推荐使用logging+tqdm组合实现训练过程监控。代码完整实现了从数据准备

2025-08-08 23:56:29 333

原创 Day 34:GPU训练与类的call方法

本文对比了CPU和GPU在训练小规模神经网络任务中的性能表现。实验显示,在鸢尾花数据集上,GPU训练时间(21.23秒)意外地比CPU(19.09秒)更慢。分析表明,这主要由频繁的GPU-CPU数据传输、核心启动开销和计算资源浪费导致。优化减少数据传输后,GPU性能提升至14.86秒。研究发现,GPU的性能优势仅在大规模并行计算(如处理大数据集、复杂网络)时才能真正体现,而小任务中各种固定开销会削弱其优势。文章还解析了PyTorch的模块调用机制。

2025-08-07 23:27:21 524

原创 Day 33: 动手实现一个简单的 MLP

本文介绍了使用PyTorch构建简单神经网络处理鸢尾花分类任务的完整流程。首先检查CUDA可用性,然后加载并预处理鸢尾花数据集(包括归一化和张量转换)。定义了一个包含输入层(4个特征)、隐藏层(10个神经元)和输出层(3个类别)的全连接网络,使用交叉熵损失和SGD优化器。训练过程展示了损失随epoch下降的曲线,最终实现了较好的分类效果。文中提供了详细的代码实现,包括数据预处理、模型定义、训练过程和结果可视化等关键步骤。

2025-08-06 23:18:31 271

原创 Day 32:官方文档阅读

本文介绍了PDPBox库的使用方法,重点讲解了如何通过官方文档检索和使用工具。主要内容包括:1)通过GitHub和官网获取文档;2)确保安装包与文档版本一致;3)关注类的实例化参数、方法参数和返回值;4)理解绘图功能对底层库的调用。以鸢尾花数据集为例,演示了使用PredictPlot类绘制特征分析图的过程,包括数据预处理、模型训练和可视化参数设置,最终生成交互式的目标特征分析图。作业要求参考PDPBox文档探索其他绘图类。

2025-08-05 23:16:29 149

原创 Day31:文件的规范拆分与写法

本文介绍了机器学习项目的标准流程与文件组织规范。项目流程包括数据加载、探索、预处理、特征工程、模型训练、评估和预测七个阶段。文件组织建议采用模块化结构:核心代码按功能分置于src/data、src/models、src/utils目录;配置参数集中存储在config/目录;实验代码放在notebooks/或experiments/;产出物分类存放于data/、models/和reports/目录。文章强调应先按工作流程拆分代码,再逐步完善结构,通过模块化设计使项目更清晰可维护。这种组织方式既符合机器学习项目

2025-08-04 23:03:53 625

原创 Day 30:模块和库的导入

模块(Module)本质:以.py结尾的单个文件,包含Python代码(函数、类、变量等)作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护包(Package)本质有层次的文件目录结构(即文件夹),用于组织多个模块和子包核心特征:包的根目录下必须包含一个文件(可以为空),用于标识该目录是一个包注意:在Python中,包就是库同目录:直接import 模块名子目录:需要文件,使用包路径导入跨目录:使用完整的包路径,如。

2025-08-03 23:41:04 937

原创 Day 29: 复习

本文总结了Python类的基础知识与应用,包含4个核心部分:1)类定义作为对象模板;2)__init__初始化方法;3)实例方法的self参数使用;4)继承机制实现代码复用。通过圆类和长方形类的具体实现,展示了属性管理、条件判断和工厂模式的应用。重点强调了类设计中的命名规范、默认参数、方法重写和异常处理等关键概念,为面向对象编程提供了实用指导。

2025-08-03 00:00:28 333

原创 Day 28:类的定义和方法

本文介绍了Python中类的定义和使用方法,主要包括以下内容: 类的基本定义和pass占位符的使用 __init__初始化方法及其作用 类中普通方法的定义和使用 类的继承特性(属性和方法的继承) 文章还提供了三个实践作业: Circle类:计算圆的面积和周长 Rectangle类:计算长方形面积和周长,判断是否为正方形 图形工厂函数:根据参数创建不同图形对象 这些内容涵盖了Python面向对象编程的基础知识,通过实例演示了如何定义类、创建对象、使用方法以及实现继承等核心概念。

2025-08-01 23:47:17 647

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

本文介绍了Python装饰器的核心概念与实践。装饰器是一种遵循"开放封闭原则"的高阶函数,允许在不修改原函数代码的情况下扩展功能。文章详细讲解了装饰器的基本语法结构、执行流程,强调了正确处理内部函数返回值的重要性。通过logger装饰器的实现示例,展示了如何在函数执行前后添加日志记录功能。进阶部分介绍了使用functools.wraps保持函数元信息,以及如何实现带参数的装饰器。关键要点包括:装饰器复用思想、标准写法规范(高阶函数+包装函数)和正确处理返回值。这些技术能帮助开发者编写更优

2025-07-31 23:31:39 979

原创 论文精读:Hallucination of Multimodal Large Language Model: A Survey

本文综述了多模态大语言模型(MLLM)中的幻觉问题,将其定义为模型输出与视觉输入不一致或产生事实错误的现象。文章将幻觉分为物体、属性和关系三类,并分析了MLLM的架构与训练流程。重点探讨了数据、模型、训练和推理四个维度的幻觉成因及解决方案:数据层面提出了正负例均衡、因果数据和推理数据等改进方法;模型层面建议提升视觉编码器分辨率和改进模态对齐;训练层面引入了辅助监督和强化学习优化。最后指出当前评估基准和指标的不足,为未来研究方向提供了建议。该研究系统梳理了MLLM幻觉问题的关键因素与缓解策略。

2025-07-31 23:24:54 2398

原创 Day 26 函数专题1:函数定义与参数

本文总结了Python函数的核心知识点和实际应用。主要内容包括:1)函数定义与封装思想;2)局部变量与全局变量的作用域;3)三种参数类型(位置参数、默认参数、不定参数args/**kwargs)的使用方法;4)参数传递的顺序规范。通过三个编程作业实践了这些概念:计算圆面积(处理异常输入)、矩形面积计算(参数验证)以及任意数字平均值计算(使用args处理可变参数)。代码示例展示了参数处理、输入验证和异常捕获的实际应用,体现了函数的封装性和健壮性设计。

2025-07-30 23:47:51 978

原创 Day 25:异常处理

本文介绍了Python异常处理机制及其应用。主要内容包括:1)常见异常类型(SyntaxError、NameError等)及其原因;2)错误信息的解读方法;3)try-except基本结构及多种异常捕获方式;4)try-except-else-finally完整结构及其在ML/DL项目中的应用(资源释放、模型保存等);5)最佳实践建议(具体化异常类型、记录错误信息等)。文章强调异常处理能提高程序健壮性,特别是在AI项目中可确保资源正确释放和训练流程稳定。

2025-07-29 23:31:36 800

原创 Day 24:元组与os模块

os模块是Python中处理文件系统操作的基础工具,在深度学习和大型项目开发中具有不可替代的作用。基础操作:目录获取、文件列举、路径拼接系统交互:环境变量管理、跨平台兼容性高级功能:目录树遍历、文件系统分析我们能够构建更加健壮、可维护的深度学习项目。优秀的项目管理始于良好的文件组织,而os模块正是实现这一目标的得力助手。无论是管理复杂的数据集、组织实验结果,还是自动化项目维护任务,熟练掌握os模块都将显著提升开发效率和项目质量。@浙大疏锦行。

2025-07-28 23:06:02 938

原创 Day 23: Pipeline

pipeline在机器学习领域可以翻译为“管道”,也可以翻译为“流水线”,是机器学习中一个重要的概念。在机器学习中,通常会按照一定的顺序对数据进行预处理、特征提取、模型训练和模型评估等步骤,以实现机器学习模型的训练和评估。为了方便管理这些步骤,我们可以使用pipeline来构建一个完整的机器学习流水线。pipeline是一个用于组合多个估计器(estimator)的 estimator,它实现了一个流水线,其中每个估计器都按照一定的顺序执行。

2025-07-27 22:14:23 899

原创 Day 22: 复习

本文系统总结了6天的机器学习数据处理与降维技术学习内容,构建了完整知识框架。从Numpy数组基础操作到聚类算法(K-Means、DBSCAN、层次聚类)及其评估指标,再到特征筛选方法(方差、相关性、Lasso等)和降维技术(PCA、t-SNE、LDA)。重点阐述了各种算法的原理、优缺点和适用场景,强调参数调优和结果评估的重要性。最后指出这些技术的协同应用价值,为处理实际数据问题提供了系统方法论。全文既包含理论基础,又注重实践指导,适合机器学习学习者系统回顾和查漏补缺。

2025-07-26 22:41:54 1090

原创 Day 21: 常见的降维算法

t-SNE 是一种强大的非线性降维技术,主要用于高维数据的可视化。它通过在低维空间中保持高维空间中数据点之间的局部相似性(邻域关系)来工作。与PCA关注全局方差不同,t-SNE 更关注局部细节。理解它的超参数(尤其是困惑度)和结果的正确解读方式非常重要。

2025-07-25 22:50:04 800

原创 Day 20:奇异值SVD分解

其目的是为了从大量的特征中选择有效的的特征,去除冗余甚至是噪声的非必要特征,从而构建出高质量的数据集。,它揭示了矩阵的内在几何结构,在理论研究和实际应用中都具有fundamental重要性。今天由矩阵的SVD分解讲起,并引申到实际的数据处理应用中。SVD(奇异值分解)是线性代数中的一个矩阵分解技术。SVD描述了线性变换的。

2025-07-24 22:29:46 2010

原创 Day 19:特征筛选

方差筛选是一种简单有效的特征筛选方法,根据方差的数学定义,其反映了数据的变化程度,方差很小表示词特征的变化小,直观感受对模型的预测结果影响不大或者说对模型的预测没有贡献。(范围在-1到1之间,值越大表示正相关越强,值越小表示负相关越强,接近0表示几乎无关),然后根据相关系数的绝对值大小,选择与目标变量相关性较高的特征,剔除相关性较低的特征。因此这种场景下需要对数据中的特征进行筛选,选出质量高的特征,忽略掉低质甚至可能是噪声的特征,方能构建出高质量的数据集,进而训练出效果好的模型。

2025-07-23 23:53:59 1104

原创 Day 18:推断聚类后簇的类型

聚类算法(如 K-Means)将数据分成 k=3 个簇时,评估指标(如轮廓系数、CH 指数、DB 指数)仅用于量化聚类质量(e.g., 簇内样本相似、簇间差异大),但簇的实际含义需根据数据设计和领域知识来赋予。通过模型的特征重要性分析(e.g., Gini 重要性或 SHAP 值),筛选出对簇区分最关键的特征,从而为簇赋予实际含义(e.g., 发现“大小”和“颜色”是主导特征,则解释簇为不同品质的苹果组)。如果不确定用哪些特征,则使用数据集中的全部特征进行聚类,得到簇标签(e.g., 簇 0、1、2)。

2025-07-22 22:46:47 1012 1

原创 Day 17: 常见的聚类算法

轮廓系数 (Silhouette Score)定义:轮廓系数衡量每个样本与其所属簇的紧密程度以及与最近其他簇的分离程度。取值范围:[-1, 1]轮廓系数越接近1,表示样本与其所属簇内其他样本很近,与其他簇很远,聚类效果越好。轮廓系数越接近-1,表示样本与其所属簇内样本较远,与其他簇较近,聚类效果越差(可能被错误分类)。轮廓系数接近0,表示样本在簇边界附近,聚类效果无明显好坏。使用建议:选择轮廓系数最高的k值作为最佳簇数量。CH 指数 (Calinski-Harabasz Index)

2025-07-19 23:19:32 2121

原创 Day 16: Numpy数组

numpy数组的索引:一维、二维、三维。SHAP值的深入理解。

2025-07-18 23:55:15 249

原创 Day 15: 复习

网格搜索(GridSearchCV): 遍历所有参数组合随机搜索(RandomizedSearchCV): 随机采样参数组合贝叶斯优化(BayesSearchCV): 基于概率模型的智能搜索缺失值处理: 根据数据特性选择删除、填充或插值异常值检测: 使用统计方法或可视化识别异常值特征编码: 类别特征选择合适的编码方式数据标准化: 确保不同特征具有相似的尺度数据预处理: 包括数据清洗、特征编码、标准化等数据可视化: 热力图、子图等可视化技术机器学习建模: 多种算法的使用和评估模型调参。

2025-07-17 23:54:47 964

原创 Day 14: SHAP图的绘制

整个过程是一个黑盒过程,没有办法直观的看出哪些特征对结果的影响大小。它回答了相比于平均预测值,每个特征使预测结果增加了多少或减少了多少的问题。它的核心思想是计算特征对模型输出的边际贡献,再从全局和局部两个层面对“黑盒模型”进行解释。SHAP构建一个加性的解释模型,所有的特征都视为“贡献者”。比如能够清晰的看到potential特征的SHAP值波动范围大,意味着对potential值进行轻微的改动,对模型的影响大。横轴表示SHAP值的范围大小,纵轴表示特征项及特征值高低的颜色示例。

2025-07-16 23:41:27 452

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

过采样\n过采样一般包含2种做法:随机采样和SMOTE\n过采样是把少的类别补充和多的类别一样多,欠采样是把多的类别减少和少的类别一样\n一般都是缺数据,所以很少用欠采样\n\n随机过采样ROS\n随机过采样是从少数类中随机选择样本,并将其复制后添加到训练集。\n3. 将复制的样本添加到训练集。X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 80%训练集,20%测试集。

2025-07-15 20:39:22 378

原创 Day12:启发式算法

用种马的故事来类比遗传算法的实现逻辑,目标是培育出跑得最快的马(也就是寻找最优解),方法是通过多代配种,逐步优化马群的基因。跑得越快的马,越有机会被选为种马(高适应度个体高概率选中)▸ 作用:将问题解转换为算法可处理的「DNA格式」随机买来20匹马(初始解),这些马的速度参差不齐。并行搜索:种群同时探索多个解,避免陷入局部最优。让所有马跑一次,记录每匹的速度(计算适应度)▸ 作用:给每个解「打分」,决定其繁殖概率。位翻转:以极小概率反转某个基因位(二进制)▸ 作用:随机生成第一代「候选解群体」

2025-07-12 23:49:36 443

原创 Day11:常见的调参方式

数据集较小且质量较好,跳过预处理。

2025-07-11 23:54:48 956

原创 Day10:机器学习建模与评估

本文对心脏病数据集进行了机器学习建模与评估,采用多种算法进行比较分析。首先将数据集划分为训练集(242样本)和测试集(61样本)。随后构建了SVM、逻辑回归、朴素贝叶斯、决策树、随机森林、XGBoost和LightGBM共7种模型,通过分类报告、混淆矩阵及准确率、精确率、召回率、F1值等指标进行评估。实验结果显示不同算法在心脏病预测任务上表现各异,其中XGBoost和LightGBM等集成学习方法展现出较优性能。该研究为心脏病预测提供了有效的机器学习解决方案,并通过可视化呈现了各模型的评估结果。

2025-07-10 23:23:53 263

原创 Day09:热力图和子图的绘制

计算了所有features特征的皮尔逊相关系数,得到一个相关系数矩阵,相关系数的范围是[-1, 1],1表示完全正相关,-1表示完全负相关,0表示无线性相关。函数是python内置的一个函数,能够跟据索引取出可迭代对象中的迭代对象(包含其索引和值).为可迭代对象如列表、元组、字典、字符串等。为设置开始索引,默认从0开始进行索引。

2025-07-09 22:09:05 360

原创 Day08:标签编码与连续变量处理

针对心脏病数据进行数据处理。

2025-07-08 17:17:34 919

原创 Day07:复习

针对过去6天的内容进行总结复习,主要学习了Python基础和Pandas基础。主要是Pandas基础,从读取数据,查看数据到数据初步处理。对心脏病数据集进行数据预处理。

2025-07-08 00:00:01 335

原创 Day06:描述性统计

内容回顾:数据初步可视化。

2025-07-06 16:33:49 979

原创 Day05:独热编码

现在在 py 文件中 一次性处理 data 数据中所有的连续变量和离散变量。断点1:遍历数据列名找出简化的离散变量即。断点2:寻找缺失值列,计算均值并填充空值。先按照示例代码过一遍,然后完成下列题目。题目:离散特征的独热编码。

2025-07-05 14:19:30 405

原创 Day04:缺失值的处理

完成后在py文件中独立完成一遍,并且利用debugger工具来查看属性(不借助函数显式查看)----养成利用debugger工具的习惯。函数统计数据中的空值,返回二维表格形式数据,针对每一个数值若为空则显示为True,不为空显示False。describe()函数:查看数据的数值信息,包含各个列数据的均值、最小值、标准差、百分位数等。然后循环遍历所有的列名,判断列的数据类型非object,并且含有空值,则对该列进行补全。函数能够更加直观的统计数据的空值状况,针对每一个列,统计出该列中的空值个数。

2025-07-04 15:32:54 721

原创 Day03:列表、循环与判断语句

1.创建一个包含三个字符串元素的列表 tech_list,元素分别为 “Python”, “Java”, “Go”。4.修改 tech_list 中的第二个元素(索引为 1),将其从 “Java” 更改为 “Ruby”。1.定义一个包含整数的列表 scores,赋值为 [85, 92, 78, 65, 95, 88]。6.计算当前 tech_list 的长度,并将结果存储在变量 current_length 中。2.获取列表中的第一个元素,并将其存储在变量 first_tech 中。

2025-07-03 10:45:00 731

原创 Day02:字符串与比较运算

【代码】Day02:字符串与比较运算。

2025-07-02 22:39:08 326

空空如也

空空如也

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

TA关注的人

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