自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python打卡Day40 训练和测试的规范写法

批量维度不变性:无论进行flatten、view还是reshape操作,第一个维度batch_size通常保持不变。动态维度指定:使用-1让PyTorch自动计算该维度的大小,但需确保其他维度的指定合理,避免形状不匹配错误。

2025-08-12 18:27:22 594

原创 Python打卡Day39 图像数据与显存

昨天我们介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。

2025-08-11 18:31:19 584

原创 Python打卡Day38 Dataset和Dataloader类

维度DatasetDataLoader核心职责定义“数据是什么”和“如何获取单个样本”定义“如何批量加载数据”和“加载策略”核心方法(获取单个样本)、__len__(样本总数)无自定义方法,通过参数控制加载逻辑预处理位置在中通过transform执行预处理无预处理逻辑,依赖Dataset返回的预处理后数据并行处理无(仅单样本处理)支持多进程加载(典型参数root(数据路径)、transform(预处理)batch_sizeshuffle核心结论Dataset类:定义数据的内容和格式。

2025-08-10 17:52:28 886

原创 Python打卡Day37 早停策略和模型权重的保存

model.eval() # 切换至推理模式(可选)

2025-08-09 16:43:11 985

原创 Python打卡Day36 神经网络训练信贷预测模型

【代码】Python打卡Day36 神经网络训练信贷预测模型。

2025-08-08 11:48:18 114

原创 Python打卡Day35 模型可视化与推理

nn.Linear(4, 10) 只定义了 “输入维度是 4,输出维度是 10”,但不知道输入的批量大小和其他维度,比如卷积层需要知道输入的通道数、高度、宽度等信息。因此,要生成模型摘要(如每层的输出形状、参数数量),必须提供一个示例输入形状,让 PyTorch “运行” 一次模型,从而推断出各层的信息。这是最基础、最简单的方法,直接打印模型对象,它会输出模型的结构,显示模型中各个层的名称和参数信息。该方法不显示输入层的尺寸,因为输入的神经网是自己设置的,所以不需要显示输入层的尺寸。

2025-08-07 14:02:08 564

原创 Python打卡Day34 GPU训练及类的call方法

self.fc1是一个实例化的对象,为什么具备了函数一样的用法,这是因为nn.Linear继承了nn.Module类,nn.Module类中定义了__call__方法。可以注意到,self.fc1 = nn.Linear(4, 10) 此时,是实例化了一个nn.Linear(4, 10)对象,并把这个对象赋值给了MLP的初始化函数中的self.fc1变量。综上,数据传输和各种固定开销的总和,超过了 GPU 在这点计算量上通过并行处理所能节省的时间,导致了 GPU 比 CPU 慢的现象。

2025-08-06 11:30:00 965

原创 Python打卡Day33 MLP神经网络的训练

定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。

2025-08-05 11:30:00 480

原创 Python打卡Day32官方文档的阅读

ctrl进入可以查看这个类的详细信息,但是只能查看到他的初始化方法,但是无法看到他的普通方法。在官方文档中,通常会有一个“API Reference”或“Documentation”部分,列出所有可用的函数、类和方法。可以发现这个类继承了_InfoPlot类,此时我们再次进入_InfoPlot类里面,可以找到这个继承的plot方法。可以鼠标悬停在这个类上,来查看定义这个类所需要的参数,以及每个参数的格式。面对一个全新的官方库,我们可以借助官方文档的写法了解其如何使用。我们关注一个类需要关注如下信息。

2025-08-04 17:03:40 509

原创 Python打卡Day31 文件的规范拆分和写法

因为,在 Python 2.x 时代,默认编码是 ASCII,不支持直接在代码中写入非 ASCII 字符(如中文注释、字符串中的中文),否则会报错(SyntaxError: Non-UTF-8 code starting with…避免执行:python遵从模块导入即执行机制,当你使用 import xxx 导入一个模块时,Python 会执行该模块中的所有顶层代码(即不在任何函数或类内部的代码)。这样,我们就可以确保在导入模块时,不会执行不必要的代码,从而提高程序的性能和可维护性。

2025-08-03 17:06:39 717

原创 Python打卡Day30 模块和库的导入

模块(Module)本质:以.py结尾的单个文件,包含Python代码(函数、类、变量等)。作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。包(Package)在python里,包就是库本质有层次的文件目录结构(即文件夹),用于组织多个模块和子包。核心特征:包的根目录下必须包含一个文件(可以为空),用于标识该目录是一个包。IDE(如 VSCode 或 PyCharm)通常会将你打开的项目文件夹设为“根目录”(或者说,运行时的工作目录)。

2025-08-02 21:58:27 779

原创 Python打卡Day29 类的装饰器

所以你还是需要理解 装饰器本质就是一个语法糖,对类而言:@decorator 语法只是 MyClass = decorator(MyClass) 的简写,即使类已定义,仍可手动调用装饰器函数修改它。ps:之前无论是函数还是类的装饰器,我们都发现是先有装饰器,再有类。函数的装饰器是 :接收一个函数,返回一个修改后的函数。我们之前是用复用的思想来看装饰器的,换一个角度理解,当你想修改一个函数的时候,可以通过装饰器方法来修改而无需重新定义这个函数。类也有修饰器,他的逻辑类似:接收一个类,返回一个修改后的类。

2025-08-01 11:30:00 232

原创 Python打卡Day28 类的定义和方法

注意:注意:init左右各有两个下划线__,需要传入self这个特殊的参数。

2025-07-31 11:28:16 973

原创 Python打卡Day27 函数装饰器

日常ctrl点进某个复杂的项目,发现函数上方有一个@xxx,它就是装饰器,装饰器本质上是一个 Python 函数,它可以让其他函数或方法在不需要做任何代码修改的前提下增加额外功能。如果让一个函数具备太多功能,那么看起来就会比较乱,可读性比较差,如果把其中一部分相同甚至可以复用的功能用一个新的函数来调用,然后让2个函数同时实现,就会做到1. 进一步封装了函数的一些用法,做到dry原则(don't repeat yourself)2. 使函数更加具有可读性。

2025-07-30 17:00:00 802

原创 Python打卡Day26 函数

"""Docstring: 描述函数的功能、参数和返回值 (可选但强烈推荐)"""# 函数体: 实现功能的代码# ...return value # 可选,用于返回结果def: 关键字,表示开始定义一个函数。function_name: 函数的名称,应遵循Python的命名约定(通常是小写字母和下划线,例如 calculate_area,用英文单词含义和下划线来作为函数名)。parameter1, parameter2, …: 函数的参数(也叫形参),是函数在被调用时接收的输入值。

2025-07-29 16:33:03 707

原创 Python打卡Day25 异常处理

如果找到匹配的,则执行该 except 块中的代码,然后继续执行整个 try-except 结构之后的代码(除非 except 块中又引发了新异常或执行了 return/break/continue 等)。finally 子句中的代码无论 try 块中是否发生异常,也无论 except 块是否被执行,甚至无论 try 或 except 块中是否有 return 语句,它总会被执行。如果 try 失败:try 块中出错前的代码会执行,然后匹配的 except 块的代码会执行(else 块不会执行)。

2025-07-27 22:26:10 596

原创 Python打卡Day24 元组和OS模块

随着深度学习项目变得越来越大、数据量越来越多、代码结构越来越复杂,你会越来越频繁地用到 os 模块来管理文件、目录、路径,以及进行一些基本的操作系统交互。虽然深度学习的核心在于模型构建和训练,但数据和模型的有效管理是项目成功的关键环节,而 os 模块为此提供了重要的工具。简单来说,一个可迭代对象就是指那些能够一次返回其成员(元素)的对象,让你可以在一个循环(比如 for 循环)中遍历它们。2. 元组中的元素不能修改,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。

2025-07-26 21:40:33 269

原创 Python打卡Day23 pipeline管道

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

2025-07-25 23:27:29 785

原创 Python打卡Day22 kaggle泰坦尼克号生存预测

【代码】Python打卡Day22 kaggle泰坦尼克号生存预测。

2025-07-23 21:42:03 129

原创 Python打卡Day21 常见的降维算法

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

2025-07-22 23:17:44 961

原创 Python打卡Day20 常见的特征筛选算法

对于任何矩阵(如结构化数据可以变为:样本*特征的矩阵,图像数据天然就是矩阵),均可做等价的奇异值SVD分解,对于分解后的矩阵,可以选取保留前K个奇异值及其对应的奇异向量,重构原始矩阵,可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。应用:结构化数据中,将原来的m个特征降维成k个新的特征,新特征是原始特征的线性组合,捕捉了数据的主要方差信息,降维后的数据可以直接用于机器学习模型(如分类、回归),通常能提高计算效率并减少过拟合风险。降噪:通常噪声对应较小的奇异值。

2025-07-21 17:58:17 130

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

总体而言,不同的特征筛选方法在这个心脏病数据集上表现出了不同的效果,其中递归特征消除 RFE 方法表现最佳,能够显著提升逻辑回归模型的精度。

2025-07-20 18:08:33 278

原创 Python打卡Day18 基于聚类进一步推断类型

目标方面,簇 0 的均值为 0.216000,簇 1 的均值为 0.775281,差异较大。推测簇 0 可能代表心脏病发病风险较低的人群,而簇 1 代表心脏病发病风险较高的人群。年龄方面,簇 0 的平均年龄(58.624)比簇 1 的平均年龄(51.376404)要高。这可能意味着簇 0 代表年龄较大的人群,而簇 1 代表相对年轻的人群。今天的主题是无监督算法中的聚类,常利用聚类来发现数据中的模式,并对每一个聚类后的类别特征进行可视化,以此得到新的特征并赋予实际含义。特征工程后模型精度有所提升。

2025-07-19 19:57:10 233

原创 Python打卡Day17 常见聚类算法

以下是三种常用的聚类效果评估指标,分别用于衡量聚类的质量和簇的分离与紧凑程度:KMeans 是一种基于距离的聚类算法,需要预先指定聚类个数,即 。其核心步骤如下:绘制肘部法则图、轮廓系数图、CH 指数图和 DB 指数图来评估 KMeans 聚类效果执行以下步骤对数据进行 KMeans 聚类:1、标准化数据。2、选择合适的 K 值进行 KMeans 聚类,并关注聚类后每个簇对应的样本个数。3、将聚类后的特征添加到原数据中。4、使用 t - SNE 进行 2D 可视化。@浙大疏锦行

2025-07-18 16:54:24 989

原创 Python打卡Day16 数组的常见操作和形状

NumPy 数组的或称为的概念,与我们日常理解的维度非常相似。[][][][]

2025-07-17 11:32:51 621

原创 Python打卡Day15 自行寻找数据集进行机器学习

最佳参数: {'model__learning_rate': 0.05, 'model__max_depth': 3, 'model__min_samples_split': 5, 'model__n_estimators': 300}测试集性能指标: - RMSE: 2.6401 - R² :0.9050。最佳模型: Gradient Boosting (网格搜索优化后)5. 距离就业中心距离(DIS)对目标值有一定正向影响。2. 低收入人群比例(LSTAT)与目标值呈强负相关。进行网格搜索优化...

2025-07-16 16:20:29 571

原创 Python打卡Day14 SHAP图的绘制

各SHAP绘图函数对参数形状的要求总结:@浙大疏锦行

2025-07-15 21:34:09 140

原创 Python打卡Day13 不平衡数据的处理

在处理类别不平衡的数据集时,标准机器学习算法可能会过度偏向多数类,导致对少数类的预测性能很差。为了解决这个问题,常用的策略包括在数据层面(采样)和算法层面进行调整。- 过采样是把少的类别补充和多的类别一样多,欠采样是把多的类别减少和少的类别一样。--- 1. 默认参数随机森林 (训练集 -> 测试集) ---smote+过采样+修改权重的组合策略,有可能一起做会变好。- 过采样一般包含2种做法:随机采样和SMOTE。--- 2. 随机森林参数调优 ---随机森林参数调优+类别权重处理。

2025-07-13 18:15:21 983

原创 Python打卡Day12 启发式算法

它们都是通过模仿自然规律,在复杂问题中不硬算,而是有方向地试错,最终得到一个足够好的解。区别只是模仿的对象不同:遗传算法:靠 “优胜劣汰 + 基因重组” 迭代优化;粒子群算法:靠 “个体经验 + 群体信息” 共同逼近最优;模拟退火:靠 “先冒险后保守” 的策略跳出局部陷阱。生活中遇到 “变量多、关系复杂” 的问题(比如 AI 训练、物流规划),这些算法就是高效的 “解题助手”。@浙大疏锦行。

2025-07-12 15:09:36 441

原创 Python打卡Day11 常见的调参方式

最佳参数: OrderedDict([('learning_rate', 0.0554438906650061), ('max_depth', 5), ('min_child_samples', 10), ('n_estimators', 110), ('num_leaves', 67)])- 需要定义参数的分布,而不是固定的列表。最佳参数: {'learning_rate': 0.01, 'max_depth': -1, 'n_estimators': 100, 'num_leaves': 50}

2025-07-11 15:25:54 674

原创 Python打卡Day10 机器学习建模与评估

3. 机器学习模型分类问题的评估。2. 机器学习模型建模。

2025-07-10 15:55:10 165

原创 Python打卡Day9 热力图和子图的绘制

之所以这个函数很有用,是因为它允许我们同时迭代一个序列,并获取每个元素的索引和值。iterable -- 迭代对象,迭代对象可以是列表、元组、字典、字符串等。enumerate()函数返回一个迭代对象,该对象包含索引和值。返回一个迭代对象,该对象包含索引和值。start -- 索引的开始值。

2025-07-09 11:43:26 316

原创 Python打卡Day8 标签编码与连续变量处理

01编码:对于某些字符串类型也要映射成整数类型,二分类的问题不需要独热编码,因为他们二者自由度为1,三分类以上才涉及独热编码。归一化和标准化可以通过手写函数实现,也可以使用sklearn中的归一化和标准化函数。标签编码:存在顺序和大小关系的离散特征,借助dataframe的map函数即可实现。独热编码:不存在顺序的离散特征,采用函数为pd.get_dummies()实际中都试一下 ,谁训练出来的模型好选谁。

2025-07-09 11:05:09 226

原创 Python打卡Day7 数据预处理流程复习

数据总览检查缺失值可视化结果。

2025-07-08 22:14:56 190

原创 Python打卡Day6 数据描述性统计

数值型特征间的相关性热力图。1.2 连续变量可视化。1.3 离散特征可视化。

2025-07-06 17:50:14 202

原创 Python打卡Day5 独热编码数据处理

3. 对独热编码后的变量转化为int类型。2. 对离散变量进行one-hot编码。4. 对所有缺失值进行填充。1. 读取data数据。

2025-07-05 16:24:24 183

原创 Python打卡Day4 pandas缺失数据处理

在 Python 中, 类是面向对象编程的核心概念,它封装了数据(属性)和行为(方法),属性是类或对象内部存储的数据,方法是类中定义的函数,用于操作对象的数据或实现特定功能。布尔矩阵显示缺失值,这个方法返回一个布尔矩阵,也是dataframe对象,其中True表示对应位置的值是缺失值,False表示对应位置的值不是缺失值。25%:第一四分位数(Q1) 50%:中位数(Q2) 75%:第三四分位数(Q3) max:最大值。2. 方法的调用格式为:实例名.方法名()。1. 属性的调用格式为:实例名.属性名。

2025-07-04 17:17:18 274 1

原创 Python打卡Day3 列表、循环和判断语句

创建一个包含三个字符串元素的列表 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-07-03 15:57:23 242

原创 Python打卡Day2 字符串与比较运算

题目: 定义两个整数变量,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-07-02 21:24:47 264

原创 Python打卡Day1 变量与格式化字符串

计算这两个变量的和,并将结果存储在一个新的变量 a 中;计算这两个变量的商,叫做b;计算这两个变量的余数,叫做c。然后,使用 f-string 打印出类似 “20 加 8 的结果是:28” 的信息,分成三行打印。将文本输入到file-like对象中,可以是文件,数据流等等,默认是sys.stdout。可以看到abc.txt文件这时为空,只有执行f.close()之后才将内容写进文件。f-string 语句,更推荐使用此写法,代码可读性更高。函数将每个变量的值单独打印出来,每个值占一行。

2025-07-02 19:53:59 659

空空如也

空空如也

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

TA关注的人

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