跳转至

数据挖掘基础

本页用于整理数据仓库、分类、聚类、关联规则和基础机器学习概念。

1. 分类算法:从特征预测预定义类别

分类(classification)的核心任务是:根据已有的、带有类别标签的训练样本,学习一个分类模型,把新的对象映射到某个预先定义的离散类别。

1
2
3
输入:对象特征 X + 已知类别标签 y
学习:分类模型 f(X)
输出:新对象的预测类别 y_hat

例如,使用客户年龄、收入、负债率、还款记录等特征,预测客户属于“可能违约”还是“可能不违约”。这里“是否违约”就是目标变量,也称类别标签;年龄、收入和负债率是特征变量。

分类通常属于监督学习,因为训练数据中有老师提供的正确答案(标签)。常见分类算法包括:

  • 决策树、随机森林:通过特征划分逐步区分不同类别;
  • 逻辑回归:输出属于某一类别的概率,常用于二分类;
  • 朴素贝叶斯:基于概率和条件独立假设分类;
  • 支持向量机:寻找区分不同类别的间隔;
  • 神经网络:学习复杂的非线性决策边界。

分类模型的核心不是简单地“把数据分组”,而是学习从特征到标签的映射,并考察对未见样本的泛化能力。因此通常要划分训练集、验证集和测试集,用准确率、精确率、召回率、F1 值、ROC-AUC 等指标评价模型;类别不平衡时,不能只看准确率。

2. 为什么分类不是挖掘数据关联

分类和关联规则挖掘都属于数据挖掘,都试图从数据中找规律,但它们回答的问题不同:

维度 分类 关联规则挖掘
主要问题 新对象属于哪个已知类别? 哪些项目或行为经常共同出现?
学习类型 通常是监督学习 通常是无监督学习
是否需要标签 需要类别标签 通常不需要预先指定目标标签
输出 一个类别或各类别概率 规则,如 面包 → 牛奶
典型评价 准确率、召回率、F1、AUC 支持度、置信度、提升度
典型应用 风险分类、垃圾邮件识别、疾病诊断 购物篮分析、推荐组合、行为共现分析

关联规则挖掘的重点是发现项目之间的共现关系。例如在大量订单中发现:购买面包的订单经常也购买牛奶,可以写成:

面包 → 牛奶

这不是说“只要买面包就一定买牛奶”,而是一个统计上的关联关系。常用指标包括:

1
2
3
支持度(X → Y) = 同时包含 X 和 Y 的交易数 ÷ 交易总数
置信度(X → Y) = 同时包含 X 和 Y 的交易数 ÷ 包含 X 的交易数
提升度(X → Y) = 置信度(X → Y) ÷ 支持度(Y)
  • 支持度反映规则覆盖多少交易;
  • 置信度反映出现 X 时同时出现 Y 的比例;
  • 提升度大于 1 通常说明 X 与 Y 的共现强于随机独立情况。

分类与关联的根本区别

分类先指定一个要预测的目标属性,例如“是否违约”,再利用其他属性预测它;关联规则不预先指定唯一目标,而是在大量项目集合中寻找有意义的共现组合。因此:

  • “根据客户特征预测是否违约”是分类;
  • “发现高负债客户经常同时出现逾期和额度使用率高”可能是关联规则,但要注意这只是共现,不自动代表因果;
  • “根据购买记录预测客户是否会购买某商品”若目标商品标签已定义,通常属于分类或预测;
  • “发现哪些商品经常一起购买”属于关联规则。

分类也可能使用特征之间的统计关系,但它的最终任务是预测标签;关联规则也可能产生类似“X → Y”的箭头,但这个箭头表示共现方向和条件,不等于分类模型中的因果关系或确定性预测。

3. 分类、聚类与关联规则速记

  • 分类:有标签,预测已有类别,监督学习。
  • 聚类:无标签,按相似性自动形成群组,无监督学习。
  • 关联:无标签,发现项目之间的共现规则,无监督学习。
  • 回归:预测连续数值,例如预测贷款金额或房价。

题目问“根据历史已标注数据判断新样本属于哪一类”,选分类;问“发现商品、行为或事件经常一起出现”,选关联规则挖掘。

4. 决策树 ID3:用信息增益选择特征

ID3 属于监督分类算法,采用自顶向下的贪心方式构造决策树。每一步选择使类别不确定性下降最多的特征;其划分依据是信息增益,而不是欧式距离、支持度或均方误差。

信息熵衡量样本集合中类别的不确定性:

H(D) = -Σ p(c) log₂ p(c)
信息增益 Gain(D, A) = H(D) - Σᵥ (|Dᵥ| / |D|) H(Dᵥ)

其中 Dᵥ 是特征 A 取值为 v 的子集。信息增益越大,表示按该特征划分后剩余的不确定性越小。

例子:有 10 条记录,正类 6 条、负类 4 条,父节点熵为 H(D) ≈ 0.971。特征“是否有症状”将样本分成两组:是(4 正、0 负),否(2 正、4 负)。加权子节点熵为 4/10 × 0 + 6/10 × H(2/6, 4/6) ≈ 0.551,因此信息增益约为 0.971 - 0.551 = 0.420。若其他候选特征的信息增益更小,ID3 就选择“是否有症状”作为当前节点的划分特征。

5. 特征工程与数据泄漏

特征工程是建模前的数据预处理与特征构造阶段,常见工作包括缺失值处理、编码、归一化、特征筛选和派生变量构造。它应服务于模型训练与预测,且不能让训练过程获得预测时不可用的信息。

数据泄漏是指训练或评估过程意外使用了目标答案、未来信息,或本应只由训练集学习的信息,导致离线指标虚高、上线效果下降。常见情况包括:

  • 在划分训练集与测试集之前,用全量数据拟合归一化参数、缺失值填充值或特征筛选规则;
  • 将目标标签的直接或间接信息放入特征,例如预测是否逾期时使用逾期后才产生的字段;
  • 时间序列随机拆分,导致未来记录泄漏到训练集并用于预测过去;
  • 同一用户或实体的高度相关记录同时进入训练集和测试集,造成评估过于乐观。

防泄漏要点:先按任务要求拆分数据,再仅用训练集拟合预处理器和特征选择步骤,并将已拟合的变换应用于验证集、测试集及线上数据;时间预测使用按时间先后切分;特征必须在预测时点真实可获得。交叉验证中,每个折也要独立拟合预处理步骤,通常通过统一的 Pipeline 执行。

数据仓库:面向分析的集成数据体系。 数据仓库面向主题、集成、相对稳定并保留历史变化,主要支持分析和决策而非高频事务更新。构建流程:明确指标与主题→盘点业务源→抽取数据→清洗、映射和去重→装载明细与汇总层→建立维度/事实模型→验证口径和血缘→发布报表或分析服务。典型星型模型以事实表记录可度量事件,以维度表描述时间、客户、产品等分析角度。场景:银行整合多个渠道交易,用统一口径分析月度客户活跃和风险变化。易错边界:数仓不等同于数据库备份;ETL/ELT 是数据集成加工路径,不是建仓全部工作;指标必须有定义、粒度、时间口径和责任人,报表相同名称不保证定义一致。

数据湖:保留多类型原始数据的存储与处理体系。 数据湖可容纳结构化、半结构化和非结构化数据,常以原始层、清洗层、主题/服务层组织;数据进入时记录来源、格式、时间、权限和质量状态,使用时按任务解析或转换。机制:数据接入→登记元数据与分类→落原始区→校验和加工→发布可用数据集→按保留策略归档/删除。场景:保存交易明细、日志、语音文本和图片,为后续分析提供多源数据。易错边界:湖不是“无治理的大盘文件夹”,缺少目录、血缘、质量与权限会形成数据沼泽;湖与仓可共存,湖偏灵活保留和探索,仓偏规范整合与稳定分析;数据湖并不天然更便宜或更安全。

数据仓库与数据湖对比。 仓库通常先建模再装载,结构和指标较稳定,适合经营报表和历史分析;湖常保留原始形态、格式更丰富,适合探索、机器学习和多模态数据。两者都需要数据目录、访问控制、质量检查、元数据、血缘和生命周期管理;湖仓一体尝试兼顾开放格式与治理/分析能力,并非消除成本、权限和数据口径问题。

数据治理与质量闭环。 数据治理是对数据责任、标准、质量、安全、元数据、血缘、生命周期和共享规则的组织与技术安排。流程:明确数据责任人和使用目的→制定定义、编码、质量规则及权限→在采集/加工时校验→登记目录、血缘和版本→监控质量指标与访问→发现问题后回溯源头并闭环整改。常见质量维度包括准确性、完整性、一致性、及时性、唯一性和有效性。场景:客户主数据治理统一跨渠道客户标识,解决重复客户和指标口径漂移。易错边界:治理不只是清洗;“完整率高”不等于“数据真实”;主数据、元数据、参考数据含义不同;任何数据质量规则都需结合业务判断。

数智化与数据价值闭环。 数字化偏向把业务活动和记录转成可管理的数据/数字流程;数智化进一步把数据分析、算法和反馈嵌入决策与业务执行。价值闭环可概括为“业务问题→数据采集与授权→治理整合→分析/模型→决策或服务→执行→效果评估→反馈更新”:先明确目标指标和因果假设,再评估数据可得性和风险,最后验证收益并监控副作用。场景:反欺诈模型提示可疑交易后进入人工核查,核查结果用于调整规则和模型。易错边界:相关性不等于因果,模型准确率不等于业务价值;没有可执行决策、效果度量和反馈,数据堆积本身不形成价值;个人信息处理还须遵循合法、正当、必要和目的限定。

数仓/数据湖流程练习(含答案解析)。

  1. 多个渠道对“活跃客户”口径不一,先做什么?答案: 先由业务责任方定义指标的对象、粒度、时间窗口和排除规则,再登记元数据并治理来源字段。解析: 先统一语义与责任,不能直接把字段拼接后假定一致。
  2. 语音、图片、交易表需要后续灵活分析,选择只建传统数仓是否充分?答案: 通常需湖式原始数据区或等效多模态存储与目录,并按分析场景向仓/服务层加工。解析: 数仓擅长规范化分析,原始多类型数据可在湖中保留;两者可协同。
  3. 清洗后的数据没有记录来源、加工步骤和版本,主要缺少什么?答案: 元数据/数据血缘及版本管理。解析: 血缘支持追溯源头、解释指标和定位质量问题;质量检查本身不能代替血缘。
  4. 某模型离线准确率高,却未证明减少欺诈损失,能否断言数据产生业务价值?答案: 不能。解析: 需在受控试点中度量损失、误报成本、人工工作量等业务指标,并评估上线风险,形成决策—执行—评估闭环。

流程对比速记。 建仓是从业务口径到整合分析服务的体系工程;建湖是从多源接入、目录治理到按需加工的灵活数据工程;数据挖掘/KDD 则是在可用数据上迭代建模、评估和部署。三者有关联但不等同,治理、安全和质量需贯穿全程。

Apriori 核心机制。 Apriori 用于从交易数据中挖掘频繁项集,再由频繁项集生成关联规则。设最小支持度为阈值,先把每笔交易表示为项目集合;从单项目候选集 C₁ 开始,扫描交易统计候选支持度,保留达到阈值的频繁项集 L₁;再将 L₁ 中项目按共同前缀连接,生成更大的候选集 C₂,扫描计数并筛出 L₂,如此逐层迭代,直到没有新的频繁项集。候选生成减少无关组合;每轮计数仍需依据交易记录确认候选是否实际出现。

频繁项集剪枝。 Apriori 性质是:频繁项集的任意非空子集都必须频繁;等价地,若一个候选项集存在不频繁的子集,则该候选不可能频繁,可以在扫描交易前剪枝。例如生成三项候选 {牛奶, 面包, 尿布} 时,只要 {牛奶, 尿布} 或 {面包, 尿布} 未达到最小支持度,就删除该三项候选。剪枝针对项集的子集支持度,不是依据关联规则置信度。

关联规则生成与置信度。 对频繁项集 F 的每个非空真子集 X,可生成规则 X → F\X;仅当 support(F) / support(X) 达到最小置信度时保留。support(X → Y) = count(X∪Y) / 交易总数,confidence(X → Y) = count(X∪Y) / count(X) = support(X∪Y) / support(X)。支持度衡量规则覆盖的交易比例,置信度衡量包含前件的交易中有多少也包含后件;置信度不表示因果关系,且高置信度可能只是后件本身很常见。

Apriori 可复算样例(含答案)。 交易集为:T1={牛奶, 面包},T2={面包, 尿布},T3={牛奶, 面包, 尿布},T4={牛奶, 尿布},T5={牛奶, 面包}。设最小支持度为 3/5=60%、最小置信度为 70%。单项计数为:牛奶 4 次、面包 4 次、尿布 3 次,均频繁。两项候选计数为:{牛奶, 面包} 3 次、{牛奶, 尿布} 2 次、{面包, 尿布} 2 次,因此只有 {牛奶, 面包} 频繁;三项集因其 {牛奶, 尿布} 和 {面包, 尿布} 子集不频繁而被剪枝。由频繁项集 {牛奶, 面包} 得到 牛奶→面包 与 面包→牛奶:两条规则支持度均为 3/5=60%;置信度分别为 3/4=75% 和 3/4=75%,均达到最小置信度,故两条规则都保留。复算顺序是先数联合出现次数,再除以交易总数求支持度、除以前件出现次数求置信度。

候选连接与计数边界。 一般地,将 Lₖ₋₁ 中项目按固定顺序排列,对前 k−2 个项目相同而末项不同的两个项集取并集,形成大小为 k 的候选,再检查其所有 k−1 项子集是否都在 Lₖ₋₁ 中;通过检查才扫描计数。k=2 时共同前缀为空,因此可由不同频繁单项两两组成候选。候选 X 的计数是满足 X⊆T 的交易条数,同一交易购买多件相同商品也只计一次;支持度是该计数除以总交易数,不能把商品数量当作交易数。样例中 L₂ 仅有一个项集,标准连接已无法生成三项候选;即使从全项目组合考虑三项集,也会因不频繁子集而被排除,不能把“所有子集都频繁”反推为“大项集一定频繁”。

VI-1-03 机制补充:逻辑回归。 输入是带标签的训练样本 (xᵢ,yᵢ),其中特征向量 xᵢ 为数值表示,二分类标签 yᵢ∈{0,1}。先计算线性得分 z=wᵀx+b,再用 Sigmoid 函数转换为正类概率估计 p(y=1|x)=1/(1+e^(−z))。训练通过最小化二元交叉熵 −Σᵢ[yᵢ ln pᵢ+(1−yᵢ)ln(1−pᵢ)] 求参数,常配合 L1/L2 正则化约束模型复杂度,并采用梯度下降等数值优化方法。输出既可以是概率估计,也可以按阈值 t 得到类别:p≥t 判为正类,否则为负类;适用于风险分类、疾病筛查等二分类任务。限制与边界:基础模型假设对数几率 ln[p/(1−p)] 对输入特征呈线性关系,原始特征下难以直接表示复杂非线性边界,可通过特征变换扩展;概率估计不保证天然校准,阈值应结合验证集与误判成本确定,不能把默认 0.5 当成普适最优值;它虽名为“回归”,此处预测的是类别而非连续目标值。

逻辑回归可复算微型样例。 假设已训练得到单特征模型 w=2、b=−1,新样本 x=1,则 z=2×1−1=1,p=1/(1+e^(−1))≈1/(1+0.3679)≈0.7311。若阈值 t=0.5,因 0.7311≥0.5,输出正类;若改为 t=0.8,则输出负类。两次的模型参数和概率完全相同,变化的是分类决策阈值;概率约为 73.11% 不代表该个体必定属于正类,也不是模型整体准确率为 73.11%。

VI-1-03 机制补充:朴素贝叶斯。 输入是带类别标签的样本与待分类对象的特征 x=(x₁,…,x_d)。训练从各类别样本估计先验概率 P(c) 和条件概率 P(xⱼ|c);核心假设是在给定类别 c 后,各特征条件独立,因此预测时计算 P(c|x)∝P(c)∏ⱼP(xⱼ|c),选择该分数最大的类别,即最大后验分类。实际可计算 ln P(c)+Σⱼ ln P(xⱼ|c),避免许多小概率连乘造成数值下溢;若需要后验概率,再将各类别分数对应的非负概率量归一化。输出为预测类别或模型假设下的后验概率估计,常用于文本主题分类、垃圾邮件识别。限制与边界:“朴素”指给定类别后的条件独立,而非所有特征无条件独立;高度相关的特征可能重复计入证据,使概率过于自信;离散特征未见取值会造成零概率,可用拉普拉斯平滑等处理;连续特征可使用高斯条件分布等假设,不能直接套用离散计数公式。平滑只能缓解零频问题,不能消除独立性或分布假设失配。

VI-1-03 机制补充:支持向量机(SVM)。 输入是数值特征向量和二分类标签 (xᵢ,yᵢ),其中 yᵢ∈{−1,+1}。线性可分时,寻找超平面 wᵀx+b=0,在约束 yᵢ(wᵀxᵢ+b)≥1 下最小化 ½‖w‖²,等价于最大化两侧支持超平面之间的几何间隔 2/‖w‖;最贴近边界的支持向量决定边界位置。存在噪声或类别重叠时,软间隔模型最小化 ½‖w‖²+CΣᵢξᵢ,约束为 yᵢ(wᵀxᵢ+b)≥1−ξᵢ、ξᵢ≥0;松弛变量允许间隔违规,C>0 控制违规惩罚与大间隔的权衡,较大 C 更强调减少训练违规。对非线性问题,可通过核函数计算隐式特征空间内积,学习该空间中的间隔边界。输出通常是决策得分 f(x) 及其符号对应的类别,适合高维文本分类等任务。限制与边界:原始决策得分不是概率,若要概率需另做校准;特征尺度会影响距离与间隔,应仅用训练集拟合标准化参数;核函数及 C 等超参数需通过验证选择,核 SVM 在大样本下的训练和存储开销可能较高;软间隔中 0<ξᵢ<1 表示分类正确但进入间隔,ξᵢ=1 表示落在决策边界,ξᵢ>1 才表示落到错误一侧,不能将所有间隔违规都视为误分类。