1. 数据挖掘到底在挖什么从超市购物篮到期末考点大家好我是西电19级计科的老学长当年数据挖掘这门课期末拿了95。很多学弟学妹一听到“数据挖掘”就觉得头大感觉是一门深奥的理论课。其实它离我们生活特别近。你想想为什么你在淘宝上买了本《机器学习》首页立马给你推荐《Python数据分析》为什么超市总把啤酒和尿布放在一起卖这背后都是数据挖掘的功劳。简单来说数据挖掘就是从一大堆看似杂乱无章的数据里像淘金一样找出那些隐藏的、有用的信息和规律。咱们西电的课程特别注重实战和算法原理的结合考试也爱从这些地方出题。比如老师特别喜欢考你怎么从海量交易记录里找出“买了A商品的人很可能也会买B商品”这种关联规则这就是经典的“购物篮分析”。所以别把它想得太玄乎它就是一个强大的工具帮你从数据里发现故事、预测未来。这门课的核心说白了就是几大类任务分类比如判断一封邮件是不是垃圾邮件、聚类把相似的用户自动分群、关联规则挖掘找啤酒和尿布的关系、预测预测明天股票的涨跌趋势。期末复习你只要把这几个大块的核心算法、适用场景、优缺点搞明白基本盘就稳了。接下来我就结合咱们西电课程的特色和常考题型把这本“速查手册”的关键点给你捋清楚。2. 关联规则挖掘从“啤酒与尿布”到Apriori算法关联规则绝对是咱们西电数据挖掘课的重头戏也是考试高频考点。它研究的是数据集中项之间的有趣关系最著名的例子就是那个“啤酒与尿布”的故事虽然是个经典案例但道理很直观。2.1 核心概念三兄弟支持度、置信度、提升度想玩转关联规则这三个度量指标你必须像背公式一样熟记于心考试必考计算和概念解释。支持度 衡量一个项集比如{啤酒尿布}在整个数据集中出现的频繁程度。公式是包含该项集的事务数 / 总事务数。支持度太低说明这个组合本身就不常见挖出来也没啥商业价值。考试经常会给你一个事务数据库让你计算某个项集的支持度。置信度 在已经购买了A商品前件的条件下又购买了B商品后件的条件概率。公式是支持度({A, B}) / 支持度({A})。它衡量了规则的可信程度。但要注意高置信度的陷阱如果B本身就很畅销支持度高那么即使A和B没关系置信度也可能很高。提升度 就是为了解决上面那个陷阱而生的。公式是置信度(A-B) / 支持度(B)。它衡量了A的出现对B的出现概率的提升程度。提升度 1说明A和B正相关规则有效提升度 1说明两者独立提升度 1说明买了A反而可能不买B。提升度是判断规则是否有实际意义的关键论述题里经常让你分析。我当年复习时自己画了个表来对比特别清晰度量指标计算公式意义关注点支持度Support(A∪B) P(A∩B)规则A-B的普遍性过滤掉不常见的组合置信度Confidence(A-B) P(B|A)规则的可信度可能存在“错觉关联”提升度Lift(A-B) P(B|A)/P(B)规则的实际价值1 才有意义2.2 Apriori算法逐层搜索的经典之作这是关联规则挖掘的基石算法原理和步骤必须滚瓜烂熟。它的核心思想基于一个先验性质一个频繁项集的所有子集也一定是频繁的。反过来如果一个项集不是频繁的那么它的所有超集也一定不是频繁的。利用这个性质可以大幅剪枝减少计算量。算法步骤可以概括为“连接剪枝”的迭代找频繁1-项集扫描数据库统计每个单项的支持度去掉低于最小支持度阈值的。连接生成候选集将上一步得到的频繁(k-1)-项集进行连接生成候选k-项集。剪枝利用先验性质检查候选k-项集的所有(k-1)-子集是否都是频繁的如果不是就剪掉。扫描验证再次扫描数据库计算保留下来的候选k-项集的支持度。重复2-4步直到不能再生成新的频繁项集。考试里很可能给你一个小型事务数据集让你手动模拟Apriori算法的全过程写出每一层的候选集和频繁项集。这里有个易错点在连接生成候选集时要确保前k-2项相同比如{1,2}和{1,3}可以连接成{1,2,3}但{1,2}和{2,3}就不行。2.3 FP-Growth算法不用生成候选集的效率王者Apriori算法需要多次扫描数据库当数据量巨大时效率是个问题。FP-Growth频繁模式增长算法就是来解决这个痛点的。它采用了一种叫做FP-tree频繁模式树的紧凑数据结构。它的核心流程是第一次扫描数据库找出频繁1-项集并按支持度降序排序。第二次扫描构建FP-tree。每条事务中的项也按上述顺序排序然后插入到树中共享前缀路径。对于每个频繁项构造它的条件模式基从FP-tree中找出所有包含该项的前缀路径然后基于这个条件模式基构建条件FP-tree。递归地在条件FP-tree上进行挖掘。FP-Growth的优势在于它通常只需要扫描数据库两次并且将挖掘任务转化为在内存中的递归操作比Apriori快很多。考试可能会让你比较Apriori和FP-Growth的优缺点或者描述FP-tree的构建过程。你需要理解FP-Growth是一种“分治”策略它为每个频繁项构建了一个条件数据库条件模式基然后在这个缩小的数据库里进行挖掘。3. 分类算法教你如何“贴标签”分类是数据挖掘的另一大核心任务目标是根据已知标签的历史数据训练集构建一个模型来预测新数据对象的类别标签。咱们课程里重点讲了几个经典算法每个都是考点。3.1 决策树一目了然的“如果-那么”规则决策树特别符合人类直觉因为它最终生成一系列“如果…那么…”的规则非常容易理解和解释。构建决策树的关键在于如何选择最优的划分属性这里就引出了两个核心概念信息增益和信息增益率。信息增益 基于信息论中的熵Entropy概念。熵表示数据的混乱程度。划分前的数据熵减去划分后各子集熵的加权和就是信息增益。信息增益越大意味着用这个属性划分后数据纯度提升得越多。ID3算法就是用信息增益来选择属性的。信息增益率 信息增益有个缺点它倾向于选择取值数目多的属性比如“学号”这种属性每个值都不一样划分后每个子集纯度都很高但毫无意义。为了克服这个问题C4.5算法引入了信息增益率它在信息增益的基础上除以一个叫做“分裂信息”的惩罚项这个惩罚项会随着属性取值增多而变大。考试中极有可能给你一个小数据集让你画出一棵决策树并详细写出根据信息增益或信息增益率选择属性的计算过程。这里要特别注意处理连续值属性和缺失值的方法C4.5算法里有相关策略。3.2 朴素贝叶斯基于概率的“简单粗暴”分类器这个算法名字里有“朴素”是因为它做了一个非常强的假设在给定类别的情况下所有特征之间是相互条件独立的。这个假设在现实中很难成立但神奇的是朴素贝叶斯在很多文本分类、垃圾邮件过滤场景下效果非常好而且计算效率极高。它的核心是贝叶斯定理P(类别|特征) [P(特征|类别) * P(类别)] / P(特征)对于分类问题我们比较不同类别下的后验概率P(类别|特征)取概率最大的那个类别作为预测结果。由于分母P(特征)对所有类别都一样所以我们只需要比较分子的大小。在实际计算P(特征|类别)时因为特征独立假设它可以拆解为每个特征条件概率的乘积。对于离散特征直接用频率估计概率对于连续特征通常假设它服从高斯分布用样本均值和方差来估计。考试可能会考你贝叶斯公式的应用或者让你指出朴素贝叶斯算法的“朴素”之处及其优缺点。3.3 支持向量机寻找最大间隔的“边界大师”SVM是我认为最优雅的分类算法之一。它的目标非常直观找到一个超平面不仅能分开两类数据而且要使两类数据到这个超平面的“间隔”最大化。这个间隔边界上的样本点就叫做“支持向量”这也是算法名字的由来。当数据线性不可分时SVM通过核技巧把数据映射到高维空间使其在高维空间中线性可分。常用的核函数有线性核、多项式核、高斯径向基核等。选择不同的核函数就相当于选择了不同的高维特征空间。SVM的推导涉及拉格朗日乘子法和对偶问题考试对于数学推导可能要求不高但你必须理解它的核心思想、最大间隔的含义、支持向量的重要性以及核函数的作用。简答题很可能会问“为什么SVM对噪声相对不敏感”答案就是因为它的决策面只由少数支持向量决定而非全部数据点。4. 聚类分析物以类聚人以群分聚类属于无监督学习目标是把相似的数据对象自动归到同一个组簇里组内相似度高组间相似度低。它不需要事先知道数据的类别标签。4.1 K-Means最简单常用的划分方法K-Means算法流程清晰是必须掌握的基础随机选择K个点作为初始聚类中心。将每个数据点分配到距离它最近的聚类中心所在的簇。重新计算每个簇中所有点的均值作为新的聚类中心。重复步骤2和3直到聚类中心不再发生变化或达到最大迭代次数。这个算法有两个关键问题K值怎么选初始中心点怎么选K值需要预先指定可以用“肘部法则”等启发式方法估计。初始中心点随机选择可能导致结果不稳定常用改进方法是K-Means它使初始中心点尽可能相互远离。考试可能会让你描述K-Means过程分析其优缺点对噪声和离群点敏感适合发现球状簇。4.2 层次聚类构建树状结构的聚类谱系层次聚类不需要预先指定簇的个数它会生成一个树状的聚类谱系图。主要分为两种凝聚的自底向上 开始时每个点都是一个簇然后迭代地将最相似的两个簇合并直到所有点都在一个簇里或满足某个终止条件。分裂的自顶向下 开始时所有点在一个簇里然后迭代地分裂成更小的簇。这里的关键在于如何衡量两个簇之间的距离常见的方法有单链接 两个簇中最近的两个点之间的距离。容易形成“链条状”簇。全链接 两个簇中最远的两个点之间的距离。倾向于形成紧凑的、大小相近的簇。平均链接 两个簇中所有点对之间的平均距离。折中方案。质心法 两个簇的质心之间的距离。你需要能解释这些连接方法的区别并能在给定的树状图Dendrogram上根据不同的距离阈值画出对应的聚类结果。4.3 DBSCAN基于密度的聚类高手K-Means和层次聚类都难以发现非球状的簇并且对噪声敏感。DBSCAN就能很好地解决这些问题。它基于一个核心思想簇是由密度相连的点的最大集合构成的。它有几个重要概念核心对象 在半径Eps内至少有MinPts个样本的点。直接密度可达 如果点q在点p的Eps邻域内且p是核心对象则q从p直接密度可达。密度可达与密度相连。噪声点 不属于任何簇的点。DBSCAN的优点是可以发现任意形状的簇并且能有效识别噪声点。它的缺点是对参数Eps和MinPts敏感且在高维数据上效果可能下降。考试常考DBSCAN的原理、核心概念以及与K-Means的对比。5. 期末实战高频考点与避坑指南结合我当年的考试经验和后来帮学弟学妹复习的心得这里梳理出几个最容易出题和最容易出错的地方。5.1 计算题手算关联规则与信息增益这是拉开分数差距的关键。老师特别喜欢出需要你手动一步步计算的小题。关联规则 给你一个4-5条事务的数据表让你计算特定项集的支持度、置信度、提升度。或者让你找出所有频繁项集用Apriori算法。切记要写出完整过程每一步的候选集、支持度计数、剪枝操作都要清晰。最后生成的强规则同时满足最小支持度和最小置信度也要列出来。决策树 给你一个很小的数据集可能4个样本3个属性让你根据信息增益选择根节点属性。你需要先计算整个数据集的熵然后计算每个属性划分后的条件熵最后算信息增益。计算熵时对数底数通常取2概率用频率估计。这部分计算要细心一步错步步错。5.2 简答题概念辨析与算法对比这类题考的是你对知识本质的理解不能死记硬背。必考对比Apriori vs FP-Growth 从算法思想、扫描数据库次数、效率、适用场景等方面比较。信息增益 vs 信息增益率 为什么需要信息增益率它解决了信息增益的什么缺陷K-Means vs DBSCAN 从簇的形状、对噪声的敏感性、是否需要预先指定K值、原理基础距离 vs 密度等方面比较。分类 vs 聚类 这是监督学习和无监督学习的典型代表要能说清楚根本区别。概念解释 能用自己的话解释“过拟合”与“欠拟合”、“提升度”的意义、“支持向量”的作用等。5.3 综合应用题流程与场景分析这类题通常描述一个实际场景比如“电商用户分组”、“新闻文本分类”然后问你这个问题应该用数据挖掘的哪类任务分类、聚类、关联规则、预测来解决你会选择哪种或哪几种具体算法为什么大致的处理流程是什么例如数据清洗 - 特征选择 - 模型训练 - 评估如何评估模型的效果分类常用准确率、精确率、召回率、F1值聚类可以用轮廓系数关联规则看支持度、置信度、提升度回答这类题要体现出你的思考过程将理论知识和实际问题结合起来。比如对于“给新闻分类”你可以说先用TF-IDF提取文本特征然后可以考虑用朴素贝叶斯适合文本、效率高或SVM分类效果好来建模评估时因为各类别新闻数量可能不均不能只看准确率还要看精确率和召回率。复习的最后阶段强烈建议你把课后习题、往年题中的这些题型都过一遍自己动手算一算写一写。把这本速查手册里的要点变成你自己的解题思路上了考场才能心里不慌下笔有神。数据挖掘这门课重在理解算法背后的思想以及它们能解决什么问题死记硬背公式是行不通的。希望这份结合了西电课程特色的速查手册能帮你高效地抓住重点顺利过关