自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DAY 37 作业(补)

初始300轮训练已经让模型达到当前架构/数据的性能上限,预训练权重已经处于或接近最优状态,继续微调反而可能导致性能下降(过拟合或优化方向偏差)。对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略。

2025-08-09 12:08:38 57

原创 DAY 38 Dataset和Dataloader类

核心结论定义数据的内容和格式数据存储路径/来源(如文件路径、数据库查询)。原始数据的读取方式(如图像解码为PIL对象、文本读取为字符串)。样本的预处理逻辑(如裁剪、翻转、归一化等,通常通过`transform`参数实现)。返回值格式(如`(image_tensor, label)`)。定义数据的加载方式和批量处理逻辑批量大小(`batch_size`)。是否打乱数据顺序(`shuffle`)。

2025-08-09 11:06:25 592

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

过拟合的判断:测试集和训练集同步打印指标模型的保存和加载仅保存权重保存权重和模型保存全部信息checkpoint,还包含训练状态早停策略。

2025-08-08 11:20:45 465

原创 DAY 36 复习日

仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。尝试进入nn.Module中,查看他的方法。

2025-08-07 09:39:59 286

原创 DAY 35 模型可视化与推理

三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式先回顾之前的代码(CPU版)一、模型结构可视化理解一个深度学习网络最重要的2点:1. 了解损失如何定义的,知道损失从何而来----把抽象的任务通过损失函数量化出来2. 了解参数总量,即知道每一层的设计才能退出---层设计决定参数总量为了了解参数总量,我们需要知道层设计,以及每一层参数的数量。

2025-08-06 11:24:33 550

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

CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)ps:在训练过程中可以在命令行输入nvida-smi查看显存占用情况。

2025-08-04 13:10:14 754

原创 DAY 33 MLP神经网络的训练

PyTorch和cuda的安装查看显卡信息的命令行命令(cmd中使用)cuda的检查简单神经网络的流程数据预处理(归一化、转换成张量)模型的定义继承nn.Module类定义每一个层定义前向传播流程定义损失函数和优化器定义训练流程可视化loss过程预处理补充:注意事项:1.分类任务中,若标签是整数(如 0/1/2 类别),需转为long类型(对应 PyTorch 的torch.long),否则交叉熵损失函数会报错。

2025-08-03 16:03:11 722

原创 DAY 32 官方文档的阅读

官方文档的检索方式:github和官网官方文档的阅读和使用:要求安装的包和文档为同一个版本类的关注点:实例化所需要的参数普通方法所需要的参数普通方法的返回值绘图的理解:对底层库的调用作业:参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。

2025-08-02 08:00:00 228

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

首先,按照机器学习的主要工作流程(数据处理、训练、评估等)将代码分离到不同的 `.py` 文件中。这是最基本也是最有价值的一步。然后,创建一个 `utils.py` 来存放通用的辅助函数。考虑将所有配置参数集中到一个 `config.py` 文件中。为你的数据和模型产出物创建专门的顶层目录,如 `data/` 和 `models/`,将它们与你的源代码(通常放在 `src/` 目录)分开。当遵循这些通用的拆分思路和原则时,项目结构自然会变得清晰。

2025-08-01 12:04:40 900

原创 DAY 30 模块和库的导入

模块(Module)以 `.py` 结尾的单个文件,包含Python代码(函数、类、变量等)。将代码拆分到不同文件中,避免代码冗余,方便复用和维护。包(Package)在python里,包就是库有层次的文件目录结构(即文件夹),用于组织多个模块和子包。包的根目录下必须包含一个 `__init__.py` 文件(可以为空),用于标识该目录是一个包。

2025-07-31 09:43:00 1004

原创 DAY 29 复习日:类的装饰器

实际上,定义类的方法,有2类写法1. 在类定义内部直接写方法,这是静态方法,一般定义类都这么完成。2. 在类定义外部定义方法,然后把方法赋值给类的属性---这是一种动态方法,常在装饰器中使用,可以再外部修改类的方法。两种方式的本质都是将函数对象绑定到类的属性上,只是语法和应用场景不同。装饰器中常用外部赋值,是为了在不修改原类代码的情况下增强类的功能。ps:之前无论是函数还是类的装饰器,我们都发现是先有装饰器,再有类。那既然我们说了装饰器除了让原本的代码更加清晰可读可复用,还具有修改函数or类的功能。

2025-07-30 11:56:14 878

原创 DAY 28 类的定义和方法

类的定义pass占位语句类的初始化方法类的普通方法类的继承:属性的继承、方法的继承一个常见的类的定义包括了:1. 关键字class2. 类名3. 语法固定符号冒号(:)4. 一个初始化函数__init__(self)注意:注意:init左右各有两个下划线__,需要传入self这个特殊的参数。

2025-07-29 11:36:53 693

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

编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)装饰器的思想:进一步复用。注意内部函数的返回值。

2025-07-28 13:54:56 126

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

内容:函数的定义变量作用域:局部变量和全局变量函数的参数类型:位置参数、默认参数、不定参数传递参数的手段:关键词参数传递参数的顺序:同时出现三种参数类型时函数的定义。

2025-07-27 13:03:37 907

原创 DAY 25 异常处理

知识点回顾:异常处理机制debug过程中的各类报错try-except机制try-except-else-finally机制在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。异常处理机制Python的异常处理机制为程序提供了强大的容错能力 (fault tolerance)。

2025-07-26 14:22:34 601

原创 DAY 24 元组和OS模块

os.walk会首先访问起始目录 (my_project),然后它会选择第一个子目录 (data) 并深入进去,访问 data 目录本身,然后继续深入它的子目录 (processed -> raw)。只有当 data 分支下的所有内容都被访问完毕后,它才会回到 my_project 这一层,去访问下一个子目录 (src),并对 src 分支重复深度优先的探索。它不是按层级(先访问所有第一层,再访问所有第二层)进行的,而是按分支深度进行的。这种策略被称之为深度优先。

2025-07-25 14:17:07 905

原创 DAY 23 pipeline管道

1.有序特征处理(填补缺失值+标签编码)2.无序特征处理(填补缺失值+独热编码)3.连续特征处理(填补缺失值+标准化)分别定义这三个的transformer,然后构建一个ColumnTransformer用于接收transformer列表,每个元素是 (名称, 转换器对象, 列名列表)# --- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应你原代码中的 discrete_features 在预处理前)

2025-07-24 14:39:11 908

原创 DAY 22 复习日

移除无关特征('PassengerId', Name', 'Ticket', 'Cabin')。:对title(头衔有序)进行标签编码,对deck和embarked进行独热编码。自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码。

2025-07-23 14:35:32 311

原创 DAY 21 常见的降维算法

高维数据(如超过3维)难以直接可视化。:降至2D/3D,便于绘制散点图或3D图。:特征维度高且存在冗余或噪声(如传感器数据、图像像素)。:保留主要信息,剔除无关特征。:维度灾难(Curse of Dimensionality)导致模型训练慢或过拟合。:减少特征数量,简化模型复杂度。:PCA、LDA(有监督时)。其中,无监督降维和有监督降维是机器学习中两种主要的降维方法,它们的核心区别在于是否利用数据的标签信息。:不依赖数据的标签(目标变量),仅从输入数据的特征中学习低维表示。

2025-07-22 12:44:15 551

原创 DAY 20 奇异值SVD分解

奇异值的应用特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高,但图像质量损失越大)降噪:通常噪声对应较小的奇异值。通过丢弃这些小奇异值并重构矩阵,可以达到一定程度的降噪效果。推荐系统:在协同过滤算法中,用户-物品评分矩阵通常是稀疏且高维的。SVD (或其变种如 FunkSVD, SVD++) 可以用来分解这个矩阵,发现潜在因子 (latent factors),从而预测未评分的项。这里其实属于特征降维的部分。

2025-07-21 16:28:08 621

原创 DAY 19 常见的特征筛选算法

方差筛选皮尔逊相关系数筛选lasso筛选树模型重要性shap重要性递归特征消除REF方差筛选特征的方差反映了数据的变化程度,方差很小的特征几乎没有变化,对模型的预测帮助不大。比如,一个特征的值在所有样本中几乎都一样(方差接近0),那么它对区分不同类别或预测结果几乎没有贡献。因此,方差筛选会设定一个方差阈值,剔除方差低于这个阈值的特征,保留那些变化较大的特征,从而减少特征数量,提高模型效率。

2025-07-20 12:57:40 322

原创 DAY 18 推断聚类后簇的类型

即一开始用全部特征进行聚类,得到聚类的新列之后将其作为标签y,其余特征作为x构建监督模型,然后通过shap值来得到对聚类标签贡献比较大的几个特征,通过这几个特征为簇类赋予实际意义(利用ai)。核心特征:男性为主 + 年龄跨度大(含异常值) + 心率离散度高(有低心率异常) + 斜率特征复杂(多类别分布)提前想好要创建的新特征,聚类的时候就会选与这个特征相关的几个特征进行聚类,那么决定簇意义的也是这几个特征。(解析:性别、生理指标(年龄 / 心率)有过渡特征,斜率模式隐含复杂度,需 “关注潜在风险” )

2025-07-18 16:02:13 575

原创 DAY 17 常见聚类算法

本文研究了心脏病数据集的无监督聚类分析,比较了KMeans、DBSCAN和层次聚类三种算法。研究首先对数据进行标准化处理,然后通过轮廓系数、CH指数和DB指数评估聚类效果。KMeans选择k=4时表现最佳,DBSCAN在eps=0.7、min_samples=2时获得较好结果,层次聚类则选择n_clusters=6。各算法聚类结果通过PCA降维可视化,并分析了不同参数对聚类效果的影响。结果表明,KMeans和层次聚类更适合该数据集,而DBSCAN因数据特性表现一般。研究还展示了层次聚类的树状图,为理解数据层

2025-07-17 16:16:27 879

原创 DAY 16 数组的常见操作和形状

本文介绍了NumPy数组的创建、索引及SHAP值的理解。主要内容包括:1)NumPy数组的创建方法(简单创建、随机创建、顺序创建);2)数组的遍历与运算(矩阵乘法、转置等);3)数组索引技巧(一维、二维、三维数组的多种索引方式);4)SHAP值的深度解析及其在特征重要性可视化中的应用。文章通过代码示例详细演示了各种操作,并比较了NumPy数组与Python列表的区别,最后讲解了如何正确使用SHAP值绘制特征重要性图。这些内容为数据分析和机器学习中的数据预处理提供了实用指导。

2025-07-16 14:57:30 682

原创 DAY 15 复习日

尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。

2025-07-15 18:18:06 408

原创 DAY 14 SHAP图的绘制

SHAP是一种基于博弈论的可解释性分析方法,通过Shapley值量化每个特征对模型预测的贡献。该方法能计算三类核心指标:1)基准值(模型平均预测值)2)特征SHAP值(正负表示贡献方向,大小表示影响程度)3)特征值与SHAP值的非线性关系。SHAP提供五种可视化工具:条形图展示全局特征重要性、蜂群图分析特征分布、力图解释单样本预测、依赖图揭示特征边际效应、决策图追踪预测路径。这些工具能系统性地从全局到局部解释模型行为,适用于回归和分类任务,为模型可解释性分析提供理论完备的量化依据。

2025-07-14 23:10:37 817

原创 DAY 13 不平衡数据的处理

摘要:本文系统介绍了处理不平衡数据集的三种策略:过采样、修改权重和修改阈值。重点分析了随机过采样(ROS)和SMOTE过采样的原理、优缺点及代码实现,指出SMOTE通过合成新样本能有效缓解过拟合问题。同时详细讲解了通过class_weight参数调整类别权重的方法,以及修改分类阈值的操作原理。实验部分展示了带权重随机森林与SMOTE组合策略的代码实现,并通过交叉验证评估模型性能。结果表明,虽然理论上组合策略应能提升效果,但实际应用中仍需谨慎调参,单一策略可能无法显著改善模型表现。

2025-07-13 12:47:53 804

原创 DAY 12 启发式算法

超参数调整专题2三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法学习优化算法的思路(避免浪费无效时间)核心思想:1. 这些启发式算法都是优化器。你的目标是找到一组超参数,让你的机器学习模型在某个指标(比如验证集准确率)上表现最好。2. 这个过程就像在一个复杂的地形(参数空间)上寻找最高峰(最佳性能)。3. 启发式算法就是一群聪明的“探险家”,它们用不同的策略(模仿自然、物理现象等)来寻找这个最高峰,而不需要知道地形每一处的精确梯度(导数)。

2025-07-12 18:43:37 444

原创 DAY 11 常见的调参方式

本文介绍了机器学习模型调参的两种主要方法:网格搜索和贝叶斯优化。首先说明数据集划分的注意事项,若使用交叉验证则无需单独划分验证集。然后以随机森林为例,展示了基准模型评估、网格搜索(遍历预设参数组合)和贝叶斯优化(基于概率模型智能搜索)的具体实现,包括参数设置、交叉验证和性能评估。最后以LightGBM模型为例布置调参作业,要求用相同方法进行基准评估和参数优化。两种优化方法对比显示:网格搜索计算成本高但全面,贝叶斯优化更高效,适合大参数空间。

2025-07-11 16:59:32 380

原创 DAY 10 机器学习建模与评估

本文介绍了机器学习分类模型的数据集划分、训练和评估流程。首先使用train_test_split将数据集划分为训练集(70%)和测试集(30%)。然后展示了多个分类模型(SVM、KNN、逻辑回归等)的三行核心代码:实例化模型、训练模型、测试预测。最后详细说明了评估指标的计算方法,包括准确率、精确率、召回率、F1分数等,并提供了通过classification_report和confusion_matrix输出评估结果的代码示例。文中还解释了AUC指标的计算原理和不同评估指标的应用场景。

2025-07-10 16:41:59 321

原创 DAY 9 热力图和子图的绘制

本文介绍了使用Python绘制热力图和子图的实用方法。首先讲解了热力图的绘制步骤,包括数据读取、相关系数矩阵计算和sns.heatmap()的参数设置(如vmin/vmax、cmap、annot等)。接着详细说明了创建子图的技巧,包括2×2子图布局的实现、箱线图绘制,以及通过for循环遍历特征的方法。特别对比了enumerate()函数与range(len())在遍历元素时的区别,指出enumerate()能同时获取索引和值,使代码更简洁。最后给出了调整子图间距的plt.tight_layout()方法。这

2025-07-09 17:19:52 314

原创 DAY 8 标签编码与连续变量处理

本文介绍了Python字典的基本概念、操作方法以及数据预处理中的标签编码和特征缩放技术。字典是一种键值对结构的可变容器,具有无序性、键唯一性等特点,支持增删改查等操作。标签编码适用于有序分类变量,通过映射实现数值转换。特征处理包含归一化(Min-Max)和标准化(Z-score),前者将数据缩放到固定范围,后者转换为均值为0、标准差1的分布。最后以心脏病数据集为例展示了实际应用,包括对年龄、血压等特征的归一化和标准化处理。这些技术为后续机器学习建模提供了数据准备基础。

2025-07-08 16:48:02 421

原创 DAY 7 复习日

本文对心脏病数据集进行了完整的数据预处理和可视化分析。首先加载并检查了数据集的基本信息(303行×14列),确认无缺失值后对8个离散特征进行独热编码。通过直方图、箱线图等可视化方法分析了年龄、血压、胆固醇等连续特征的分布情况,并使用条形图展示了性别、胸痛类型等离散特征的分布。进一步探索了各特征与疾病标签的关系,如年龄与患病率的箱线图、性别与患病的条形图等。所有可视化结果均自动保存为高清图片,为后续建模提供了数据理解和特征工程基础。

2025-07-07 13:29:33 265

原创 DAY 6 描述性统计

大部分样本的开户数量集中在 5 - 15 这个区间(看柱子高度,这部分柱子明显更高 )。说明在统计范围内,多数人员的开户表现处于这个 “中等偏下”(相对整体区间 )的水平。Seaborn 和 Matplotlib 都是 Python 中常用的数据可视化库,Seaborn 是构建在 Matplotlib 之上的。2. 指定图的坐标轴,比如x轴和y轴,并且传入数据。3. 指定图的标题,比如x轴和y轴的标签,以及标题。1. 指定图的类型,比如折线图,散点图,柱状图等。: 要包含的数据类型列表或单个数据类型。

2025-07-06 14:30:11 810

原创 DAY 5 独热编码

本文介绍了数据处理中的关键步骤:首先读取数据并识别离散变量,然后使用pandas.get_dummies()方法进行独热编码处理,将分类变量转换为二进制数值。文章详细说明了该方法的主要参数,包括columns、dtype和drop_first等,并演示了如何批量处理多个离散变量。此外,还介绍了将编码结果转为int类型的方法,以及如何识别新生成的独热编码列名。最后,文章提到用中位数填补缺失值的处理方式。这些步骤构成了数据预处理的重要环节,为后续建模分析做好准备。

2025-07-05 11:22:56 354

原创 DAY 4 缺失值的处理

本文介绍了使用Pandas库处理数据缺失值的基本方法。首先讲解了如何读取CSV和Excel文件数据,以及查看数据的基本信息(如head、info、shape等方法)。重点阐述了两种缺失值填补方式:1)使用中位数(median)填补数值型缺失值;2)使用众数(mode)填补缺失值。文章还提供了自动填补所有数值列缺失值的循环方法,通过判断列数据类型和缺失值情况,用均值进行批量填充。最后介绍了select_dtypes方法筛选数值列和any()检查缺失值的技巧。这些方法为数据清洗提供了实用解决方案。

2025-07-04 22:45:18 358

原创 DAY 3 列表、循环和判断语句

摘要:本文介绍了Python列表操作、循环和判断语句的应用。在列表操作中,演示了创建列表、获取元素、添加/修改/删除元素等基本操作;在循环语句中,展示了使用for循环计算1到100的和;在判断语句部分,实现了温度预警系统和学生成绩系统,包含条件判断和列表遍历统计。通过这些示例,展示了Python基础语法在实际编程中的应用,包括列表处理、循环控制、条件判断等核心概念。

2025-07-03 09:54:16 463

原创 DAY 2 字符串与比较运算

【摘要】两题分别展示了Python字符串操作和数值比较。第一题将"Hello"和"Python"拼接成"HelloPython",计算其长度12,提取首字符'H'、次字符'e'和末字符'n'。第二题比较数值75和90,输出比较结果:75不大于90(False),小于等于90(True),不等于90(True)。学习重点是字符串处理(len()、索引)和比较运算符的使用,整体难度适中。@浙大疏锦行

2025-07-02 16:06:14 242

原创 DAY 1 变量与格式化字符串

摘要:本文介绍了Python变量基础操作,包括:1)变量赋值与打印输出,通过换行符\n实现单行输出;2)f-string字符串格式化,演示了引号转义和多行输出;3)变量运算,包含整数加减乘除和浮点数折扣计算,使用f-string和.2f格式控制输出结果。内容涵盖变量定义、基本运算和格式化输出等基础知识点。

2025-07-01 23:36:40 261

空空如也

空空如也

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

TA关注的人

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