
数据科学基础这门课的期末卷很多人第一次翻课件会有一种错觉——好像什么都讲过又好像什么都没讲透。它横跨描述统计、概率、编程工具和机器学习入门考试有个很典型的特征不考你背定义考你能不能在具体数据和具体场景里把概念用对。这份考试参考就是把我整理的一套复习思路摊开讲包括考点骨架怎么搭、计算题怎么一步步算出结果、编程题写到什么程度算过关、以及考场上最容易丢分的地方。不管你是零基础刚接触这门课还是写过一点 Python 但统计底子薄下面这套东西都能直接拿去用。需要先说明一点不同学校、不同学期的卷子风格差异很大我这份参考针对的是春季学期常见的题型结构——选择、填空、简答、计算、编程五类混排计算题占比偏高。具体到你们手里的卷子题型权重可能会有出入但知识骨架和解题流程是通用的。文中涉及的具体参数、代码、计算过程都是我按常见教学实践补充的目的是让你看完能直接动手复现。1. 先搞清楚命题范围从课程骨架反推考点分布复习最怕的就是从头到尾平均用力。数据科学基础这门课的内容看上去很散其实内部有一条很清晰的主线拿到一份数据先看清它长什么样描述统计再判断它的规律是不是偶然概率与推断然后用工具把它整理干净预处理与编程最后建立模型并判断模型靠不靠谱建模与评估。这条线就是命题人出题的逻辑线也是你复习的骨架。1.1 四大板块的分值权重怎么估按常见的课程安排这门课的考试内容大致可以切成四块每块的分值权重和出题难度并不一样。数据获取与预处理通常占 15% 到 25%描述统计与概率占 25% 到 35%编程工具与数据处理占 20% 到 30%建模与模型评估占 25% 到 35%。这个比例不是拍脑袋来的它和“能出成客观题的知识点有多少”直接相关统计概念适合出选择、填空、简答编程适合出读代码和补全代码建模适合出计算大题。理解了这一点你的复习策略就该有取舍。统计部分的概念题是“高确定性得分区”只要概念清晰几乎不会失分编程部分是“高确定性失分区”因为很多人平时依赖 IDE 补全考场上手写就卡壳建模计算题是“分差拉开的区域”会做的人能拿满不会的人连第一步公式都写不出来。1.2 从题型反推该复习到多深同一个知识点在不同题型下的要求深度差得很远。比如“方差”这个概念选择题可能只考你样本方差分母是 n-1 还是 n简答题会问你为什么用 n-1计算题会让你手算一组数的方差编程题会让你用 NumPy 一行写出来。如果你只按选择题的深度复习后面三种题型全会崩。所以复习每个知识点的时候我习惯问自己三个问题这个概念的定义我能一句话说清吗这个公式我能不看书画出来吗给我一组具体数字我能算出结果吗三个问题都能答“是”这个点才算过关。只满足第一条的通常只能拿客观题的分。1.3 复习优先级排序哪些必须拿满分下面这张表是我按“出题频率 × 得分难度”整理出来的优先级你可以直接对着排自己的复习顺序。优先级知识点出题频率建议投入目标P0均值/中位数/方差/标准差手算极高2 小时必须满分P0假设检验四要素原假设、p 值、显著性水平、两类错误极高3 小时必须满分P0混淆矩阵与精确率/召回率/F1极高2 小时必须满分P1缺失值与异常值处理策略高2 小时拿满客观题P1标准化与归一化的区别及适用场景高1.5 小时拿满客观题P1线性回归最小二乘手算高3 小时大题拿分P2贝叶斯公式计算中2 小时会做典型题P2决策树信息熵与信息增益中2 小时会做典型题P2过拟合、偏差方差、交叉验证中1.5 小时能写简答P3聚类K-means流程与优缺点低1 小时能写要点P3各类距离度量低0.5 小时认识即可P0 的意思是“这些分丢了后面补不回来”。我见过太多人是反着来的——花三天啃决策树公式推导结果方差分母写错一道 8 分的计算题直接归零。先把 P0 全部刷到闭眼能写再往上加。2. 统计与概率概念题的重灾区也是最容易拿分的部分这一块的特点是“看起来简单写起来处处是坑”。概念本身不难难在命题人特别喜欢在细节上设陷阱样本和总体的分母不一样、单尾和双尾的临界值不一样、独立和不独立的概率乘法不一样。这些坑我下面一个个拆。2.1 描述统计的手算规范分母到底除几均值、中位数、众数这三个没什么好说的真正容易错的是方差和标准差。总体方差除以 n样本方差除以 n-1这个规则人人都知道但考试给一组数据让你算的时候很多人下意识就除了 n。判断依据是题目措辞出现“这组数据”“样本”“从……中抽取”这类表述一律按样本处理除 n-1出现“总体”“全部”“整体分布”才除 n。举个具体例子。数据是 4、6、8、10、12均值是 8。离差平方分别是 16、4、0、4、16总和 40。如果按总体算方差是 40/5 8标准差约 2.83如果按样本算方差是 40/4 10标准差约 3.16。同一组数两个答案差了不少判卷的时候只认一个。为什么样本要除 n-1因为样本均值本身就是从这组数据里估出来的它天然会让离差平方和偏小除以 n-1 是一种无偏修正。简答题如果问到这个你就答“用样本均值代替总体均值损失了一个自由度分母减一是为了得到总体方差的无偏估计”。这句话足够拿分。另外四分位数和箱线图这几年出题也不少。记住 Q1、Q2、Q3 的分位规则要和课件一致不同教材在“位置是整数还是小数”时处理方式不同考试前对照一下课件里的例题。IQR Q3 - Q1超过 Q3 1.5×IQR 或低于 Q1 - 1.5×IQR 的点判为异常值这个 1.5 倍是硬性数字不能记成 2 倍或 3 倍。2.2 概率分布与中心极限定理搞懂“为什么重要”二项分布、泊松分布、正态分布这三个是必考。二项分布记两个参数 n 和 p期望 np方差 np(1-p)泊松分布记一个参数 λ期望和方差都是 λ正态分布记 μ 和 σ。选择题常考的是“什么场景用哪个”固定次数独立重复试验用二项单位时间或单位面积内稀有事件计数用泊松连续测量值用正态。中心极限定理是简答题的高频点。很多人的答案停留在“样本均值近似正态”这只说了一半。完整的表述是从任意分布的总体中独立抽取容量为 n 的样本当 n 足够大时样本均值的抽样分布近似服从均值为 μ、标准差为 σ/√n 的正态分布。两个关键点必须写出来——均值不变标准差缩小为原来的 1/√n。这个 σ/√n 是后面置信区间和假设检验的根基忘了它后面整章都没法推。这里我提醒一个特别容易混的地方标准差和标准误不是一回事。标准差描述单个观测值的离散程度标准误描述样本均值的离散程度数值上是 σ/√n。简答题经常把这两个词混在一起问答错方向就全错。2.3 假设检验四件套答对了基本不丢分假设检验这块考试基本围绕四个东西转原假设与备择假设、显著性水平、p 值、两类错误。我把每个的“标准答法”写一下你直接记。原假设 H0 一般是“没有差异”“没有效果”“等于某个值”备择假设 H1 是你想证明的那个。判断单尾双尾看措辞出现“是否不同”“是否有差异”用双尾出现“是否更高”“是否更低”“是否优于”用单尾。p 值的解释是重灾区。正确说法是在原假设成立的条件下出现当前样本结果或更极端结果的概率。注意这句话里没有任何“原假设为真的概率”的意思p 值不是 H0 正确的概率也不是犯错的概率。我见过太多人写成“p 值表示原假设成立的概率是 0.03”这种答案一分不给。两类错误的记法第一类错误是“原假设为真却拒绝了”也叫“弃真”第二类错误是“原假设为假却没拒绝”也叫“取伪”。显著性水平 α 就是第一类错误的上限。这里有个反直觉的点α 减小第一类错误概率下降但第二类错误概率会上升两者此消彼长想同时降低只能增大样本量。这个结论几乎每年都以简答或选择的形式出现。置信区间的公式要能默写均值 ± 临界值 × 标准误。大样本或总体方差已知用 z 临界值小样本且总体方差未知用 t 临界值。95% 置信区间对应的 z 值约 1.96这个数字必须条件反射。2.4 贝叶斯公式一道题吃透一章贝叶斯公式看着吓人其实结构很固定。典型题是医学检测某种疾病在人群中的患病率是 1%检测的灵敏度是 95%患病者检出阳性特异度是 90%健康者检出阴性。问一个人检测阳性实际患病的概率是多少。先理清楚四个数P(病) 0.01P(阳性|病) 0.95P(阴性|健康) 0.90所以 P(阳性|健康) 0.10。要求的是 P(病|阳性)。分母是全概率P(阳性) 0.01×0.95 0.99×0.10 0.0095 0.099 0.1085。分子是 P(病且阳性) 0.0095。结果 0.0095 / 0.1085 ≈ 0.0876也就是约 8.76%。这个结果很多人第一反应是不信检测准确率 95%怎么阳性了患病概率才 8.76%原因在于基数太小健康人基数大10% 的假阳性在绝对数量上远超过真阳性。这类题的考点就在这——它考的不是公式是你对“基础率”的理解。写答案的时候把分子分母都列出来过程分基本不会丢。3. 数据预处理与编程工具动手分的主要来源如果说统计部分是“想明白”这部分就是“写出来”。考试形式通常是给一段代码问输出、给一个需求让你补全两三行、或者给一个场景问你该用哪种处理方式。难点不在语法在你得知道每种处理背后的理由。3.1 缺失值与异常值先判断再动手缺失值处理有几种常见做法直接删除、均值填充、中位数填充、众数填充、前向/后向填充、模型预测填充。考试不会让你随便选一个而是给场景让你判断。判断的核心是看缺失比例和缺失机制。缺失比例低于 5% 且样本量充足直接删除行通常可接受缺失比例在 5% 到 30% 之间用填充超过 30% 且这个特征很重要考虑用模型预测或者单独标记。数值型特征遇到偏态分布用中位数填充更稳因为均值会被极端值拉偏类别型特征用众数。如果是时间序列前向填充比均值填充合理得多因为它保留了时间上的连续性。异常值检测常用两种3σ 法则和 IQR 法则。3σ 要求数据近似正态超出 μ ± 3σ 的判为异常IQR 不要求正态鲁棒性更好超过 Q3 1.5×IQR 或低于 Q1 - 1.5×IQR 的判为异常。计算示例某组数据 Q1 25Q3 45IQR 20那么上界是 45 30 75下界是 25 - 30 -5。任何大于 75 或小于 -5 的值判为异常。这里有个经验异常值不等于错误值。有些“异常”是真实业务里最有价值的信息比如欺诈交易、设备故障前兆。所以答题时要补一句“是否需要剔除取决于业务含义不能机械套用统计规则”这句话往往就是简答题的加分点。3.2 标准化和归一化公式要背适用场景更要记标准化Z-score公式是 (x - μ) / σ处理后均值 0、标准差 1。归一化Min-Max公式是 (x - min) / (max - min)处理后范围落在 [0, 1]。两个公式都不难但考试喜欢问“什么时候用哪个”。标准化的好处是对异常值不那么敏感适合数据分布接近正态、且算法对均值方差敏感的场景比如逻辑回归、SVM、PCA。归一化的好处是保留原始分布形状、结果有明确边界适合对距离敏感的算法和需要固定输入范围的场景比如神经网络、KNN、图像像素处理。那为什么决策树和随机森林不需要特征缩放因为树模型分裂时看的是阈值和排序只关心“哪个值大于哪个值”把特征整体拉伸或平移不改变排序所以对缩放不敏感。这个理由答出来比单纯说“树模型不用缩放”要值钱得多。顺带说编码。独热编码适合无序类别颜色、城市标签编码适合有序类别低、中、高或者树模型场景。类别特别多的时候独热编码会造成维度爆炸这时候要考虑目标编码或者频次编码。考试如果问“为什么独热编码不适合高基数类别特征”你答“特征维度会随类别数线性增长导致稀疏矩阵和训练效率下降同时树模型在高维稀疏特征上分裂效果变差”就到位了。3.3 必须手感熟练的高频 API编程题不要求你背全库但下面这些操作要能脱稿写出来。这是我认为最值得花时间刷的部分因为每年考的都差不多。import numpy as np import pandas as pd df pd.read_csv(data.csv) # 基本信息 df.shape df.info() df.describe() # 缺失值 df.isnull().sum() df[age].fillna(df[age].median(), inplaceTrue) df.dropna(subset[target], inplaceTrue) # 去重 df.drop_duplicates(inplaceTrue) # 分组聚合 df.groupby(city)[salary].agg([mean, count, median]) # 排序与筛选 df.sort_values(score, ascendingFalse).head(10) df[df[age].between(20, 30)] # 新增列 df[z_score] (df[x] - df[x].mean()) / df[x].std()NumPy 部分要记住np.mean、np.median、np.std注意ddof参数默认是 0要样本标准差得写ddof1、np.percentile、np.corrcoef。这个ddof是个高频陷阱很多人手算时候记得除 n-1写代码时却忘了加参数两边对不上。data np.array([4, 6, 8, 10, 12]) print(data.mean()) # 8.0 print(np.std(data)) # 2.828... 总体标准差 print(np.std(data, ddof1)) # 3.162... 样本标准差 print(np.percentile(data, 25), np.percentile(data, 75))还有一个常考点是axis参数的含义。axis0是按列操作沿行方向压缩axis1是按行操作。记不住就用一个 2×3 的矩阵试一遍考试前在草稿纸上写两行验证一下比死记强。4. 建模与评估大题的主要出处这部分是整张卷子分差最大的地方。计算大题通常给一张小数据集让你手工算回归系数、算混淆矩阵指标、算信息增益。数据量都不大关键在流程完整、步骤清晰。4.1 线性回归最小二乘手算最小二乘的公式是斜率 b Σ(xi - x̄)(yi - ȳ) / Σ(xi - x̄)²截距 a ȳ - b×x̄。拿一组数据练x 1, 2, 3, 4, 5y 2, 4, 5, 4, 5。x̄ 3ȳ 4。离差乘积(1-3)(2-4) 4(2-3)(4-4) 0(3-3)(5-4) 0(4-3)(4-4) 0(5-3)(5-4) 2。合计 6。x 的离差平方4 1 0 1 4 10。所以 b 6/10 0.6a 4 - 0.6×3 2.2。回归方程 ŷ 2.2 0.6x。算完之后题目通常会追问预测值或者残差平方和。预测 x6 时 ŷ 5.8。残差平方和就是把每个点的 (y - ŷ) 平方加起来记得别漏点。这里提醒两个细节。第一写答案时把中间量 x̄、ȳ、Σ(x-x̄)(y-ȳ)、Σ(x-x̄)² 都列出来即使最后数字算错过程分也能拿到大部分。第二注意 x 和 y 别代反斜率公式里 xy 的离差乘积在分子x 的离差平方在分母代反了结果差得离谱。4.2 混淆矩阵与三个核心指标给一个二分类的混淆矩阵要求算精确率、召回率、F1、准确率这是最标准的送分题但也最容易在定义上混。记住各自的定义准确率 (TP TN) / 总数精确率 TP / (TP FP)召回率 TP / (TP FN)F1 2 × 精确率 × 召回率 / (精确率 召回率)。例子TP 40FP 10FN 20TN 130。准确率 (40 130) / 200 0.85。精确率 40 / 50 0.80。召回率 40 / 60 ≈ 0.667。F1 2 × 0.8 × 0.667 / (0.8 0.667) ≈ 0.727。三个指标的含义要能用一句话讲清精确率回答“我判为正的里面有多少真的正”召回率回答“真正的正例我找出来多少”。场景题常问“疾病筛查更看重哪个指标”答案是召回率因为漏诊代价高“垃圾邮件拦截更看重哪个”这个要分开看如果更怕误杀正常邮件就看重精确率。答题时把“代价不对称”这个理由写出来比只写指标名得分高。ROC 曲线和 AUC 也要有概念。ROC 横轴是假阳性率FPR FP/(FPTN)纵轴是真正率TPR也就是召回率。AUC 是 ROC 曲线下面积取值 0.5 到 1越接近 1 说明模型区分能力越强0.5 相当于随机猜。这段话背下来简答题够用。4.3 决策树信息熵手算其实就三步信息熵公式 H -Σ pi × log2(pi)。信息增益 划分前的熵 - 划分后各子集熵的加权平均。拿一个二分类练10 个样本6 正 4 负。父节点熵 -(0.6 log2 0.6 0.4 log2 0.4) -(0.6×(-0.737) 0.4×(-1.322)) 0.442 0.529 0.971。现在按某个特征分成两组第一组 5 个样本4 正 1 负熵 -(0.8 log2 0.8 0.2 log2 0.2) 0.258 0.464 0.722。第二组 5 个样本2 正 3 负熵 -(0.4 log2 0.4 0.6 log2 0.6) 0.971。加权平均 0.5×0.722 0.5×0.971 0.8465。信息增益 0.971 - 0.8465 0.1245。三步走算父熵、算子熵加权、相减。log2 的常用值建议记住几个log2(0.5) -1log2(0.25) -2log2(0.8) ≈ -0.322log2(0.2) ≈ -2.322log2(0.6) ≈ -0.737log2(0.4) ≈ -1.322。考场不给计算器的话这些值能救你一命。如果给了计算器记得按 log 底数为 2 的那个键用换底公式容易按错。另外信息增益偏向取值多的特征这是它的固有缺陷。C4.5 用信息增益率来修正CART 用基尼指数。基尼指数公式是 1 - Σ pi²计算比熵简单也常考。4.4 过拟合与交叉验证简答题的高分模板过拟合的典型表现是训练集表现好、验证集表现差。原因可以归结为模型太复杂、数据太少、噪声太多。解决办法有几个方向降低模型复杂度、增加数据量、正则化、早停、集成方法。正则化的 L1 和 L2 要能区分L1 倾向于把不重要的特征权重压到 0产生稀疏解可以做特征选择L2 倾向于让权重整体变小但不为 0更平滑。这个区别几乎年年考。K 折交叉验证的流程也要能写把数据分成 K 份每次取一份做验证、其余 K-1 份做训练重复 K 次最后取 K 次结果的平均。K 常取 5 或 10。为什么不用简单的训练集/测试集划分因为数据量小的时候单次划分结果波动大交叉验证能让评估更稳定。这个“为什么”写出来才算答完整。5. 复习节奏与资料取舍考前两周才开始慌是大多数人的常态。我按三周的时间窗给一个节奏你按剩余时间等比压缩就行。5.1 三周时间表第一周解决 P0 和 P1 的概念与手算。每天固定两小时一小时过概念、一小时做手算。手算必须动笔不能在脑子里过因为脑子里的计算会自动跳过你不熟的那一步。第一天描述统计第二天概率分布第三天假设检验第四天预处理第五天标准化与编码第六天混淆矩阵第七天把这一周的错题重做一遍。第二周攻计算大题和编程。线性回归、贝叶斯、信息熵各花半天每个类型至少手算三道题。编程部分不要只看代码打开编辑器自己敲一遍把上面那几段 API 默写出来。这周结束的时候你应该能在 20 分钟内完整做完一道回归计算大题。第三周做整卷和查漏。按考试时间限时做两套做完立刻对答案把错的地方归类是概念不清、公式记错、还是计算失误。三类错误的补救方式完全不同概念不清要回去看课件公式记错要抄写默写计算失误要在草稿纸上贴标签提醒自己。5.2 资料怎么选以课件为准教材为辅数据科学基础的教材普遍偏厚考前通读一遍不现实。我的建议是以课件和课堂例题为主教材只用来补你看不懂的那一节。原因是命题人就是讲这门课的人卷子的表述习惯、符号约定、甚至例题风格都和课件高度一致教材的符号体系和课件不一致的时候考场上容易写错。真题的价值最高但要会用。拿到真题不要急着做完先花十分钟看题型分布和分值结构判断哪些章节是重点再倒回去有针对性复习。做完之后不要只对答案要分析错题的错因。同一道题错两次的说明是知识漏洞一次对一次错的说明是熟练度问题。笔记我建议做“一页纸”版本把所有公式、所有易混概念、所有单位和小数点规则压缩到一张 A4 纸上。这张纸不是用来带进考场的是用来在考前一小时快速唤醒记忆的。做这张纸的过程本身就是最好的复习因为你会被迫判断“哪些是真重点”。6. 常见问题与踩坑实录这一节是我觉得最有价值的部分因为下面这些问题几乎每个人都踩过但课件里从来不讲。6.1 概念混淆速查表易混点正确区分标准差 vs 标准误标准差描述单个观测的离散度标准误描述样本均值的离散度值为 σ/√n总体方差 vs 样本方差分母分别是 n 和 n-1题目说“样本”就用 n-1归一化 vs 标准化归一化压缩到 [0,1]标准化变成均值 0、方差 1对异常值更稳健精确率 vs 召回率精确率看“判正的有多准”召回率看“真正的找回来多少”第一类 vs 第二类错误弃真 vs 取伪α 控制第一类样本量同时影响两者信息增益 vs 信息增益率前者偏向多取值特征后者做了惩罚修正参数 vs 超参数参数由训练得到超参数由人设定或用验证集搜索p 值 vs 显著性水平p 值由样本算出α 是事先设定的阈值这张表建议抄在草稿纸最上面考前扫一眼。我见过的最冤的失分就是把精确率和召回率写反整道 8 分题只拿了过程分。6.2 计算题低级错误清单按我统计的错题分布计算失误集中在下面几个地方你考前对照自查一遍。第一方差分母。这个前面说过出现“样本”两个字就除 n-1。第二相关系数和斜率的分子混淆。相关系数 r 的分子是 Σ(x-x̄)(y-ȳ) 除以两个标准差的乘积再除以 n斜率 b 的分子是同一个离差乘积和除以 Σ(x-x̄)²。分子一样分母完全不同别串。第三百分位数位置计算。用 (n1)×p 还是 n×p不同教材不同按你们课件的规则来考前确认一次。第四混淆矩阵的行列方向。有的教材行是真实标签列是预测标签有的反过来。写答案前先看题干给的表格标注标清“行真实”写在答题卡上避免自己看混。第五单位和小数位。概率题结果写成 8.76% 还是 0.0876看题目要求如果没要求两种都写上加个括号说明。第六符号方向。单尾检验的拒绝域只在一边双尾在两边显著性水平要除以 2。这个除以 2 忘了整道题结论就反了。6.3 考场上的时间分配与答题顺序按 120 分钟算我的建议是客观题 30 分钟、简答题 25 分钟、计算题 45 分钟、编程题 20 分钟留 10 分钟检查。客观题不要恋战一道题超过 2 分钟没思路就跳过先拿后面确定的分。顺序上建议从计算题开始做而不是按卷面顺序。原因是计算题分值高、耗时长趁脑子最清醒的时候做正确率明显更高。客观题放到后面即使时间紧蒙一个也有 25% 的概率损失可控。简答题的写法有个技巧先写结论再写理由最后补一句适用条件。判卷是按点给分的结论写在第一行老师一眼能看到。我见过很多人洋洋洒洒写了一大段结论埋在最后一句结果前面翻页没看到白丢分。还有一个小细节计算题一定要写单位和中间步骤。哪怕最后数字算错只要公式和代入过程对通常能拿到 60% 以上的分。反过来只写一个答案错了就是零分。6.4 复习期的两个心态坑第一个坑是“刷题量焦虑”。看到别人刷了五套卷子就慌其实这门课的重点不是题量是题型的覆盖度。五套卷子如果都是同一类题不如两套卷子覆盖五种题型。第二个坑是“看懂等于会做”。翻课件的时候觉得每个概念都懂一合上书就写不出来。判断标准很简单拿一张白纸把线性回归的完整推导写一遍写不出来就是没会。这个方法有点残酷但它是唯一能提前暴露问题的方式。最后分享一个我自己一直在用的办法把每个章节浓缩成一个“如果考这道题我会怎么答”的提纲大概三到五行。全部章节过一遍你手上就有了一份自己的答题模板。考场上遇到陌生题先找它属于哪个模板按模板的框架往里填比从零开始想快得多。这个方法在时间紧、题量大的卷子上特别管用我用它救过好几次场。