数据集与 Notebook 数据集:70 Dog Breeds-Image Data Set Notebook:「MobileNet V3」70 Dog Breeds-Image Classification 环境准备 12import warningswarnings.filterwarnings('ignore') 禁用警告,防止干扰。 1!pip install lightning --quiet 安装 PyTorch Lightning。 1234567import randomimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snssns.set_theme(style="darkgrid", font_scale=1.5, font="SimHei", rc={"axes.unicode_minus":False}) 导入常用的库,设置绘图风格。 123 ...
X1 A1 特征类型:类别特征 缺失率:91.9869% 训练集与测试集中每个类别的个数分布: 训练集 测试集 总和 A9 504 364 868 A1 28 19 47 A5 5 6 11 A4 1 3 4 复购频率的分布: 意见:不宜采用自然数编码;缺失严重 A2 特征类型:类别特征, M / W 缺失率:0% 训练集与测试集中每个类别的个数分布: 训练集 测试集 总和 M 4522 3406 7928 W 2192 1594 3786 复购频率的分布: 意见:性别特征 A3 特征类型:字符串,X + 6 位数字 缺失率:0% 意见:较为稀疏,意义不明,用户归属地特征?(存疑) A4 特征类型:字符串,6 位数字 缺失率:0% 意见:邮政编码特征 A5 特征类型:数值特征,整数 缺失率:0% 复购频率的分布: 意见:年龄特征 A6 特征类型:数值特征,整数 缺失率:1.9660% 意见:较为稀疏,1 的个数较多,意义不明 A7 特征类型:数值特征,整数 缺失率:0.0149% 复购频率的分布: 意见:99 的个数较 ...
imblearn 简介 imblearn(全名为 imbalanced-learn )是一个用于处理不平衡数据集的 Python 库。在许多实际情况中,数据集中的类别分布可能是不均衡的,这意味着某些类别的样本数量远远超过其他类别。这可能会导致在训练机器学习模型时出现问题,因为模型可能会偏向于学习多数类别。 imblearn 库提供了一系列处理不平衡数据集的方法,包括: 欠采样方法:减少多数类别的样本以使其与少数类别相匹配。 过采样方法:通过生成合成样本来增加少数类别的样本数量,使其与多数类别相匹配。 组合采样方法:结合了欠采样和过采样的技术,以获得更好的平衡。 imblearn 库包含了许多常用的不平衡数据处理算法,例如 SMOTE(Synthetic Minority Over-sampling Technique)、Tomek Links、RandomUnderSampler、RandomOverSampler 等等。 这个库对于处理各种类型的不平衡数据问题非常有用,可以提升在这类数据上训练模型的性能。 imblearn 安装 imblearn 库可以通过 pip 安装: 1 ...
Seaborn 简介 Seaborn 是一个基于 Python 的数据可视化库,它建立在 matplotlib 之上,并与 pandas 数据结构密切集成。Seaborn 的主要目的是通过使用更高级的界面来制作有吸引力的统计图形,从而使可视化变得更简单。 Seaborn 的主要特点包括: 高级界面: Seaborn 提供了更高级的界面来绘制有吸引力的统计图形,例如散点图、条形图、箱线图等。这些图形可以通过几行代码快速生成,而不需要手动调整每个细节。 内置主题: Seaborn 包括几个预定义的主题,可以用于改变图形的外观。这使得它更容易创建美观且专业的图形。 与 pandas 集成: Seaborn 与 pandas 数据结构紧密集成,这意味着你可以直接在 pandas 的 DataFrame 上调用 Seaborn 的函数,从而方便地进行数据可视化。 统计绘图: Seaborn 不仅提供了用于绘制基本图形的函数,还提供了用于绘制更复杂的统计图形的函数,例如 Pairplot(用于显示数据集中的成对关系)、Violinplot(用于显示分组的分布)等。 颜色控制: Seaborn 允 ...
堆简介 堆是一棵树,其每个节点都有一个键值,且每个节点的键值都大于等于/小于等于其父亲的键值。 每个节点的键值都大于等于其父亲键值的堆叫做小根堆,否则叫做大根堆。STL 中的 priority_queue 其实就是一个大根堆。 (小根)堆主要支持的操作有:插入一个数、查询最小值、删除最小值、合并两个堆、减小一个元素的值。 一些功能强大的堆(可并堆)还能(高效地)支持 merge 等操作。 一些功能更强大的堆还支持可持久化,也就是对任意历史版本进行查询或者操作,产生新的版本。 堆的分类 操作 \ 数据结构 配对堆 二叉堆 左偏树 二项堆 斐波那契堆 插入(insert) O(1)O(1)O(1) O(logn)O(\log n)O(logn) O(logn)O(\log n)O(logn) O(1)O(1)O(1) O(1)O(1)O(1) 查询最小值(find-min) O(1)O(1)O(1) O(1)O(1)O(1) O(1)O(1)O(1) O(logn)O(\log n)O(logn) O(1)O(1)O(1) 删除最小值(delete-min) O ...
引入 图论中的树和现实生活中的树长得一样,只不过我们习惯于处理问题的时候把树根放到上方来考虑。 这种数据结构看起来像是一个倒挂的树,因此得名。 定义 一个没有固定根结点的树称为 无根树(unrooted tree)。无根树有几种等价的形式化定义: 有 nnn 个结点,n−1n-1n−1 条边的连通无向图 无向无环的连通图 任意两个结点之间有且仅有一条简单路径的无向图 任何边均为桥的连通图 没有圈,且在任意不同两点间添加一条边之后所得图含唯一的一个圈的图 在无根树的基础上,指定一个结点称为 根,则形成一棵 有根树(rooted tree)。有根树在很多时候仍以无向图表示,只是规定了结点之间的上下级关系,详见下文。 有关树的定义 适用于无根树和有根树 森林(forest):每个连通分量(连通块)都是树的图。按照定义,一棵树也是森林。 生成树(spanning tree):一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择 n−1n - 1n−1 条,将所有顶点连通。 无根树的叶结点(leaf node):度数不超过 111 的结点。 有根树的叶结点(leaf node) ...
复杂度 时间复杂度和空间复杂度是衡量一个算法效率的重要标准。 基本操作数 同一个算法在不同的计算机上运行的速度会有一定的差别,并且实际运行速度难以在理论上进行计算,实际去测量又比较麻烦,所以我们通常考虑的不是算法运行的实际用时,而是算法运行所需要进行的基本操作的数量。 在普通的计算机上,加减乘除、访问变量(基本数据类型的变量,下同)、给变量赋值等都可以看作基本操作。 对基本操作的计数或是估测可以作为评判算法用时的指标。 时间复杂度 定义 衡量一个算法的快慢,一定要考虑数据规模的大小。所谓数据规模,一般指输入的数字个数、输入中给出的图的点数与边数等等。一般来说,数据规模越大,算法的用时就越长。而在算法竞赛中,我们衡量一个算法的效率时,最重要的不是看它在某个数据规模下的用时,而是看它的用时随数据规模而增长的趋势,即 时间复杂度。 引入 考虑用时随数据规模变化的趋势的主要原因有以下几点: 现代计算机每秒可以处理数亿乃至更多次基本运算,因此我们处理的数据规模通常很大。如果算法 A 在规模为 nnn 的数据上用时为 100n100n100n 而算法 B 在规模为 nnn 的数据上用时为 n2n ...
学习笔记
未读LaTeX 简介 LaTeX\LaTeXLATEX(LaTeX,音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX\TeXTEX 所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。 它构筑在 Plain TeXPlain \space \TeXPlain TEX 的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用 TeX\TeXTEX 的强大功能。使用 LaTeX\LaTeXLATEX 基本上不需要使用者自己设计命令和宏等,因为 LaTeX\LaTeXLATEX 已经替你做好了。 LaTeX\LaTeXLATEX 是 TEX 中的一种格式(format),是建立在 TeX\TeXTEX 基础上的宏语言,也就是说,每一个 TeX\TeXTEX 命令实际上最后都会被转换解释成几个甚至上百个 TeX\TeXTEX 命令。 但是,普通用户可以无需知道这中间的复杂联系。就像编程的时 ...
学习笔记
未读背包问题 背包问题(Knapsack Problem)是一类常见的组合优化问题。其问题描述为:给定一个固定大小、能够携重 WWW 的背包,以及一组有价值和重量的物品,找出一个最佳解决方案,使得装入背包的物品总重量不超过 WWW,且总价值最大。 通常情况下,背包问题可以分为以下三类: 0-1 背包问题:每种物品仅有一件,可以选择放或不放。 完全背包问题:每种物品有无限件,可以选择放多少件或不放。 多重背包问题:每种物品有 nin_ini 件,可以选择放多少件或不放。 本文将介绍如何使用 Python 解决以上三类背包问题。 0-1 背包问题 0-1 背包问题(0-1 Knapsack Problem)是最基础的背包问题。其问题描述为:给定一个固定大小、能够携重 WWW 的背包,以及 NNN 个价值、重量分别为 viv_ivi、wiw_iwi 的物品,找出一个最佳解决方案,使得装入背包的物品总重量不超过 WWW,且总价值最大。 例 有一个容量为 101010 的背包,现有 444 个物品,其价值和重量分别为: 物品 1 2 3 4 价值 1 3 5 9 重量 ...
Mermaid 简介 Mermaid 是一个基于 JavaScript 的图表绘制工具,它使用类似 Markdown 的简单语法来编写,并动态地将它们渲染成图表。 Mermaid 支持的图表类型包括: 流程图 (Flowchart) : 用关键词 graph 或 flowchart 表示 顺序图 (Sequence Diagram) : 用关键词 sequenceDiagram 表示 类图 (Class Diagram) : 用关键词 classDiagram 表示 状态图 (State Diagram) : 用关键词 stateDiagram 表示 实体关系图 (Entity Relationship Diagram) : 用关键词 erDiagram 表示 用户旅程图 (User Journey Diagram) : 用关键词 journey 表示 甘特图 (Gantt Diagram) : 用关键词 gantt 表示 饼图 (Pie Chart Diagram) : 用关键词 pie 表示 象限图 (Quadrant Chart) : 用关键词 quadrantChart 表示 ...