Data Mining
数据挖掘利用统计学和机器学习,在大型数据集中发现模式、关联关系、簇和异常,是 KDD 的分析步骤。
数据挖掘是利用统计学、机器学习和数据库技术,在大型数据集中发现有用模式的过程,例如共同出现的项目、自然分组、预测规则和异常记录。从形式上说,数据挖掘是数据库知识发现(KDD)中的分析步骤。Usama Fayyad、Gregory Piatetsky-Shapiro 和 Padhraic Smyth 在 1996 年将 KDD 描述为一系列步骤:数据选择、数据预处理、转换、挖掘和结果解释。
数据挖掘流程#
一种广泛使用的流程模型是 CRISP-DM,即跨行业数据挖掘标准流程,由包括 Teradata、Daimler 和 NCR 在内的联盟于 1999 年首次提出。它的六个阶段会彼此循环:只要后续阶段暴露出前面阶段的缺口,就会返回相应阶段:
数据准备通常是耗时最长的阶段,包括数据清洗、数据源合并和特征工程;只要建模发现某个模式其实是由记录缺失或重复造成的假象,团队就会返回数据准备阶段。
核心技术#
- 关联规则学习:寻找共同出现的项目或事件,例如购物篮分析。Rakesh Agrawal 和 Ramakrishnan Srikant 于 1994 年提出的 Apriori 算法,让人们能够在大型交易数据库中实际应用这种方法。
- 使用 k-means 或 DBSCAN 聚类:在没有标签的情况下将相似记录分组,例如客户细分群体或相似图像,这是无监督学习的一种形式。
- 使用决策树分类:从带标签的历史数据中学习规则,将记录分配到已知类别,例如批准或标记贷款申请。
- 异常检测:标记与其余记录明显不同的记录,例如欺诈性银行卡交易,或传感器读数偏离正常范围的机器。
- 序列模式挖掘:寻找有序模式,例如最常引导用户完成购买的页面路径。
关联规则通过三个数值评分。支持度是同时包含两个项目的交易所占比例;置信度是包含项目 A 的交易中也包含项目 B 的比例;提升度则是置信度除以项目 B 单独出现的普遍程度,因此提升度大于 1 表示 A 和 B 一同出现的频率高于随机情况下的预期。以下示例使用 pandas 为八个购物篮中的每一对商品评分:
from itertools import permutations
import pandas as pd
# Eight shopping baskets, one column per product
baskets = pd.DataFrame(
[[1, 1, 0, 1], [1, 1, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1], [1, 0, 0, 1], [0, 0, 1, 0], [1, 1, 0, 1], [0, 1, 1, 0]],
columns=["bread", "butter", "milk", "jam"],
).astype(bool)
# Score every rule "A -> B" and keep frequent rules that beat chance
for a, b in permutations(baskets.columns, 2):
support = (baskets[a] & baskets[b]).mean() # share of baskets with both items
confidence = support / baskets[a].mean() # share of A baskets that also hold B
lift = confidence / baskets[b].mean() # confidence relative to B's base rate
if support >= 0.25 and lift > 1:
print(f"{a} -> {b}: support {support:.2f}, confidence {confidence:.2f}, lift {lift:.2f}")代码会输出四条规则。面包 → 黄油这条规则的置信度较高,为 0.80,但提升度只有 1.07,因为四分之三的购物篮本来就含有黄油;而面包 → 果酱的置信度相同,提升度却为 1.60。牛奶 → 黄油这条规则的置信度为 0.75,提升度恰好为 1.00,因此会被筛选掉。
计算机视觉中的数据挖掘#
人们会从图像和视频集合中挖掘对模型最重要的样本。困难负样本挖掘会挑选检测器错误地评为物体的背景区域,并再次用这些区域进行训练;主动学习则会从未标注数据池中挖掘模型最没把握的图像。挖掘已部署系统的检测日志,可以发现制造业生产线上反复出现的缺陷类型,或商店的客流高峰时段;借助嵌入,团队还能按内容聚类数百万张图像,从而找出重复项和数据缺口。
Ultralytics Platform 通过其聚类面板以这种方式挖掘数据集:该面板会为每张图像计算嵌入,并将数据集投影到交互式二维散点图中,让视觉上相似的图像彼此靠近。这样,用户可以按数据集划分、类别或簇为数据点着色,发现重复项和离群点,还可以圈选某个区域以检查、重新标注或移动其中的图像。










