数据挖掘练习题(小白版)
一、选择题
-
将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务 ( )
A. 频繁集发现 B. 分类 C. 预测 D. 数据预处理 -
数据挖掘的主要目标是( )。
A. 存储海量数据 B. 从数据中发现隐含的、先前未知的、潜在有用的模式
C. 提高数据库的查询效率 D. 替代传统统计分析 -
下列哪个不属于相似性度量( )
A. 相关系数 B. 绝对值距离 C. Jaccard 系数 D. 余弦相似度 -
设集合 X={a,b,c,d},则由 X 可产生的非空项集个数为( )
A. 16 B. 15 C. 18 D. 12
思考:设 X={a, b, c, d} 是频繁项集,则可由 X 产生( )个关联规则。 -
以下哪种方法可以缓解分类任务中的过拟合问题 ( )
A. 增加模型复杂度 B. 减少训练数据量 C. 剪枝 D. 不使用特征选择 -
下列选项中 t 不是 s 的子序列的是( )
A. s=<{2,4},{3,5,6},{8}>; t=<{6},{8}>
B. s=<{2,4},{3,5,6},{8}>; t=<{2,6},{8}>
C. s=<{1,2},{3,4}>; t=<{1},{4}>
D. s=<{2,4},{2,4}>; t=<{2}> -
下列哪种方法不能用于分类的方法是( )
A. 决策树 B. 朴素贝叶斯 C. Apriori 算法 D. 神经网络 -
在数据预处理中,将数值属性 “年龄” 从 [0,100] 缩放到 [0,1] 的方法是( )
A. 标准化(Z-score) B. 归一化(Min-Max) C. 独热编码 D. 离散化 -
对于一颗决策树,若某个叶节点包含训练样本的数目为:正类 5 个,负类 5 个,则这个叶节点的熵为( )
A. 0 B. −log14-\log \frac{1}{4}−log41 C. 1 D. 不确定 -
关于 Adaboost 算法,下列说法不正确的为( )
A. 减少正确分类样本的权重 B. 增加错误分类样本的权重
C. 模型的权重之和为 1 D. 样本点的权重之和为 1 -
对于如下代码,说法不正确的为( )
clf = tree.DecisionTreeClassifier(criterion=“gini”, min_samples_split=3, min_samples_leaf=2, max_depth=4)
A. clf 为决策树分类器 B. 不纯性度量为基尼系数
C. 树的高度可以为 3 D. 叶节点至少含有 3 个样本点 -
以下哪种分类算法对缺失值和噪声数据最具有鲁棒性( )
A. 逻辑回归 B. 支持向量机 C. 朴素贝叶斯 D. K 近邻 -
关于 DBSCAN 算法的描述,错误的是( )
A. 能发现任意形状的簇 B. 总是对全部数据进行划分(完全性)
C. 对噪声点具有鲁棒性 D. 基于密度可达性定义簇 -
被分类模型错误预测的负样本数用( )表示。
A. FN B. TP C. FP D. TN -
以下关于分类和回归的说法中,错误的是( )
A. 分类和回归都属于监督学习 B. 决策树既可以用于分类也可以用于回归
C. 分类和回归的评估均可使用均方误差(MSE)作为标准
D. 分类和回归的区别在于输出变量的类型:分类输出离散值,回归输出连续值
二、简答题
-
叙述 DBSCAN 聚类算法与 K-means 算法的四个不同点。
-
(1) 简述抽样的概念及其方法
(2) 简述离散化的含义,及常见的离散化方法
三、计算题
- 给定数据集如下:
| 实例 | A | B | C | 类 | 实例 | A | B | C | 类 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 0 | 0 | + | 6 | 1 | 1 | 1 | + |
| 2 | 0 | 0 | 1 | - | 7 | 1 | 0 | 1 | - |
| 3 | 0 | 1 | 1 | - | 8 | 1 | 0 | 1 | - |
| 4 | 0 | 1 | 1 | - | 9 | 1 | 1 | 1 | + |
| 5 | 0 | 0 | 1 | + | 10 | 1 | 0 | 0 | - |
使用朴素贝叶斯方法预测测试样本 (A=1, B=0, C=1) 的类别标签。
- 下表中给出的数据集,属性 A 为连续型属性,B 和 C 为二元属性,给定关联规则:{(4≤A≤8),B=1}→{C=1}\{(4≤A≤8),B=1\} \rightarrow \{C=1\}{(4≤A≤8),B=1}→{C=1},计算该规则的支持度与置信度。
| A | B | C | A | B | C |
|---|---|---|---|---|---|
| 3.2 | 1 | 1 | 6.9 | 1 | 0 |
| 2.4 | 0 | 1 | 2.6 | 1 | 1 |
| 4.7 | 1 | 0 | 7.3 | 0 | 0 |
| 5.2 | 1 | 0 | 8.8 | 1 | 0 |
| 5.8 | 0 | 1 | 7.2 | 1 | 1 |
- 给定如下训练样本集,使用基尼系数作为不纯性度量,计算:
(1) 整个训练样本集关于类属性的基尼系数
(2) a1a_1a1 为序数型属性,如何二元划分 a1a_1a1 的基尼增益最大,并画出此时对应的决策树(高度为 1)
(3) 对于连续属性 a2a_2a2,划分点为 4.7 时的基尼增益
| 实例 | a1a_1a1 | a2a_2a2 | 目标类 |
|---|---|---|---|
| 1 | 高 | 1.0 | + |
| 2 | 低 | 6.0 | + |
| 3 | 低 | 5.0 | - |
| 4 | 中 | 4.0 | + |
| 5 | 中 | 5.0 | - |
| 6 | 高 | 2.3 | - |
| 7 | 高 | 7.2 | + |
| 8 | 高 | 6.8 | + |
- 下表给出了一个二分类问题的分类模型 M1M_1M1,表格中给出的是把模型应用到数据集上得到的后验概率(表中为正类的概率),XXX 为属性向量。
| 实例 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 真实标签 | + | + | - | - | + | + | - | - |
| P(+∣X,M1)P(+ \mid X,M_1)P(+∣X,M1) | 0.62 | 0.04 | 0.78 | 0.31 | 0.48 | 0.12 | 0.38 | 0.05 |
详细写出 ROC 曲线所需要数据的计算过程并画出模型 M1M_1M1 的 ROC 曲线,并计算面积 AUC。
- 红酒数据集是 scikit-learn 自带的经典数据集,可以用来做分类。该数据集的属性集合为:[‘酒精’,‘苹果酸’,‘灰’,‘灰的碱性’,‘镁’,‘总酚’,‘类黄酮’,‘非黄烷类酚类’,‘花青素’,‘颜色强度’,‘色调’,‘稀释葡萄酒’,‘脯氨酸’],分为三个类别(类别 0,类别 1,类别 2)。根据该数据集构建如下图所示的决策树:
(1) 对根节点和最左边的叶节点进行详细解释;
(2) 给定一个样本点 X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325]X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325]X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325],问样本点 XXX 被该模型分成哪一类?
(可参考答案部分给出的文本树结构,图片使用AI修复了清晰度。)
- 对于下表中给定的数据集,构建一个高度为 2 的回归决策树,以 xxx 作为属性,对 yyy 进行回归,损失函数使用误差平方和。写出详细的计算过程,并:
(1) 画出所构建的决策树。
(2) 用方程表达所构建的决策树。
| 序号 | xxx | yyy |
|---|---|---|
| 1 | 5 | 0.2 |
| 2 | 7 | 0.4 |
| 3 | 10 | 0.5 |
| 4 | 15 | 0.6 |
参考答案与详细解题步骤
一、选择题答案及详细解析
- D
- 解析:数据挖掘的全过程通常涵盖数据清洗、数据集成、数据变换、数据规约等步骤,这些步骤被统称为数据预处理。预处理能够去除噪声、填补缺失值、转换数据格式,为后续的挖掘算法提供高质量的数据基础。
- B
- 解析:数据挖掘(Data Mining)的核心定义是“从大量数据中通过算法搜索隐藏于其中、先前未知的、具有潜在实用价值的模式或知识的过程”(这也是KDD过程的核心)。存储数据是数据库系统的任务,而非数据挖掘的根本目标。
- B
- 解析:在数据挖掘中,“距离”(如绝对值距离/曼哈顿距离、欧氏距离等)通常用来度量两个对象的相异性(Dissimilarity),距离越大表示越不相似。而相关系数、Jaccard 系数、余弦相似度度量的都是相似性(Similarity),值越大表示越相似。绝对值距离属于相异度量。
- B
- 解析:集合 X 包含 4 个元素,其幂集的子集总个数为 2n=24=162^n = 2^4 = 162n=24=16 个。除了一个全空集 ∅\emptyset∅ 外,非空项集的个数为 16−1=1516 - 1 = 1516−1=15。
- 思考题解析(14条):由一个长度为 kkk 的频繁项集产生的所有非平凡关联规则总数为 2k−22^k - 22k−2。代入 k=4k=4k=4,得出关联规则有 16−2=1416 - 2 = 1416−2=14 条(去除了前件为空集或后件为空集的两种平凡规则情况)。
- C
- 解析:过拟合是指模型在训练集上表现好,而在测试集上泛化能力极弱。在决策树中,**剪枝(Pruning)**能够限制树的高度或叶节点数目,降低模型的复杂度,是缓解过拟合最常用的手段。增加复杂度或减少训练数据量往往会加剧过拟合。
- B
- 解析:序列挖掘中,要使 ttt 成为 sss 的子序列,ttt 中的各个项集必须在 sss 中按相同先后顺序出现,并且 ttt 的同一项集内的元素必须被 sss 中某同一个单项集完全包含。B 选项中 ttt 要求有一个项集同时包含
{2,6},但在 sss 中2和6分属于第一个和第二个项集,不在同一下标的项集内,故 B 错误。
- 解析:序列挖掘中,要使 ttt 成为 sss 的子序列,ttt 中的各个项集必须在 sss 中按相同先后顺序出现,并且 ttt 的同一项集内的元素必须被 sss 中某同一个单项集完全包含。B 选项中 ttt 要求有一个项集同时包含
- C
- 解析:Apriori 算法是一种典型的无监督学习算法,主要用于发现频繁项集和关联规则挖掘(如买啤酒同时也买尿布的购物篮分析)。而决策树、朴素贝叶斯、神经网络都属于用于分类的监督学习算法。
- B
- 解析:将数据线性缩放到 [0,1][0,1][0,1] 或特定下上限区间之间的操作叫作 Min-Max 归一化。A项中的 Z-score 标准化是将数据变换为均值为 0,标准差为 1 的正态分布;C项独热编码用于分类字符变量的数值化;D项离散化则是将连续特征划分切段为离散的多段区间。
- C
- 解析:信息熵的计算公式为 H(X)=−∑pilog2piH(X) = - \sum p_i \log_2 p_iH(X)=−∑pilog2pi。该叶节点有 5 正 5 负,正负概率均为 1/21/21/2。代入公式计算:H=−(0.5log20.5+0.5log20.5)=−(−0.5−0.5)=1H = - (0.5 \log_2 0.5 + 0.5 \log_2 0.5) = - (-0.5 - 0.5) = 1H=−(0.5log20.5+0.5log20.5)=−(−0.5−0.5)=1。当正负样本分布完全相等时,分类极度混乱,信息熵达到最大基准值 1。
- C
- 解析:Adaboost 每一轮迭代会增加错误分类样本的权重(B),降低正确分类样本的权重(A),并保证每一轮中所有样本点的权重分布之和始终保持为 1(D)。但是集成模型最终由各个弱分类器组成,其分类器的权重并不是归一化的(总和不一定为 1),弱分类器权重是依据其错误率通过对数函数独立计算得出,准确率越高的弱模型权重越大。因此 C 说法错误。
- D
- 解析:观察代码
min_samples_leaf=2,该超参数的实际意义是要求叶节点至少包含 2 个样本点。D 选项描述为“叶节点至少含有 3 个样本点”,与代码设定的 2 矛盾,故 D 错误。原代码也设定了深度max_depth=4,因此树的高度可以是 3。注意:scikit-learn 的正确参数名是min_samples_split和min_samples_leaf,原先少写s会导致代码报错。
- 解析:观察代码
- C
- 解析:朴素贝叶斯在处理含有缺失值的数据时,可以忽略个别缺失的特征维度,仅根据其他可用维度的特征计数完成后验概率计算,而且它不依赖距离度量;相较 KNN 等方法,对缺失值和部分噪声数据通常更稳健。不过在实际应用中,朴素贝叶斯仍可能受到特征分布假设、异常计数和样本偏斜的影响,不能笼统说对所有噪声都“极强鲁棒”。
- B
- 解析:DBSCAN 是一种经典的基于密度的聚类算法。它能自动将低密度区域的稀疏数据点直接标记为噪声点并孤立出来排除掉,而不会强行将全部数据点都划分到某个簇里面。也就是说 DBSCAN 不对数据做“完全覆盖性划分”,故 B 说法错误。A、C、D 均是它的优点思想。
- C
- 解析:审题“被分类模型错误预测的负样本数”:真实标签为负样本(Negative),但是模型“错误”地预测了,这说明模型把它预测成了反面——正样本(Positive)。对应到混淆矩阵中:实际为负类 (Negative)、却被预测成了正类 (Positive) 的数量,被定义为假阳性/假正类(False Positive, 简称 FP)。
- C
- 解析:分类和回归虽然同属监督学习范畴(A),但最大的应用区别在于分类用于预测离散标签(类别),回归用于预测连续的数值(D)。这也导致了评估两者的方法截然不同:回归模型常使用均方误差(MSE)、均方根误差(RMSE)等直接比对数值差距;而分类模型大多使用准确率、精确率、召回率、F1和交叉熵作为评估标准。分类模型不会常规使用均方误差(MSE)作为标准,故 C 选项错误。
二、简答题答案
1. DBSCAN 与 K-means 的四个不同点
- 簇形状:K-means 只能发现凸/球形簇;DBSCAN 可发现任意形状簇。
- 参数:K-means 需预先指定簇数 K;DBSCAN 不需要 K,只需邻域半径 ε、最小点数 MinPts。
- 噪声:K-means 强制分配所有点;DBSCAN 识别并标记噪声点。
- 原理:K-means 基于距离与质心迭代;DBSCAN 基于密度与密度可达性。
2. (1) 抽样的概念及其方法
概念:从总体中抽取部分样本,用样本推断总体,降低计算量、提高效率。
方法:简单随机抽样、分层抽样、整群抽样、系统抽样、自助抽样。
2. (2) 离散化的含义及方法
含义:将连续数值属性划分为若干离散区间,转为类别型,适配分类、关联规则。
方法:等宽离散化、等频离散化、基于熵/基尼离散化、聚类离散化。
三、计算题详细解答
1. 朴素贝叶斯预测 (A=1,B=0,C=1)
数据集
| 实例 | A | B | C | 类 |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | + |
| 2 | 0 | 0 | 1 | - |
| 3 | 0 | 1 | 1 | - |
| 4 | 0 | 1 | 1 | - |
| 5 | 0 | 0 | 1 | + |
| 6 | 1 | 1 | 1 | + |
| 7 | 1 | 0 | 1 | - |
| 8 | 1 | 0 | 1 | - |
| 9 | 1 | 1 | 1 | + |
| 10 | 1 | 0 | 0 | - |
1)先验概率(Prior Probability)
先验概率是指在没有任何关于样本特征的信息时,某类别在整个数据集中出现的概率。
N=10,正类(+)有4个,负类(-)有6个
P(+)=410=0.4,P(−)=610=0.6P(+)=\frac{4}{10}=0.4,\quad P(-)=\frac{6}{10}=0.6P(+)=104=0.4,P(−)=106=0.6
2)条件概率(使用拉普拉斯平滑防止概率为 0)
条件概率是指在已知某类别的情况下,某个特征取特定值的概率。若直接用频数相除,可能出现概率为 0 的情况,导致后验概率连乘为 0。这里使用拉普拉斯平滑:分子加 1,分母加该属性的取值个数。本题属性 A、B、C 均为二元属性,所以分母统一加 2。
P(x∣y)=计数+1Ny+2P(x|y)=\frac{\text{计数}+1}{N_y+2}P(x∣y)=Ny+2计数+1
- P(A=1∣+)=2+14+2=0.5P(A=1|+)=\frac{2+1}{4+2}=0.5P(A=1∣+)=4+22+1=0.5
- P(B=0∣+)=2+14+2=0.5P(B=0|+)=\frac{2+1}{4+2}=0.5P(B=0∣+)=4+22+1=0.5
- P(C=1∣+)=3+14+2=23≈0.6667P(C=1|+)=\frac{3+1}{4+2}=\frac{2}{3}\approx0.6667P(C=1∣+)=4+23+1=32≈0.6667
- P(A=1∣−)=3+16+2=0.5P(A=1|-)=\frac{3+1}{6+2}=0.5P(A=1∣−)=6+23+1=0.5
- P(B=0∣−)=4+16+2=58=0.625P(B=0|-)=\frac{4+1}{6+2}=\frac{5}{8}=0.625P(B=0∣−)=6+24+1=85=0.625
- P(C=1∣−)=5+16+2=0.75P(C=1|-)=\frac{5+1}{6+2}=0.75P(C=1∣−)=6+25+1=0.75
3)后验概率(根据特征预测结果)
朴素贝叶斯将测试样本各特征的条件概率相乘,再乘以对应类别的先验概率;比较各类别的未归一化后验概率,取较大的类别作为预测结果。
P(+∣1,0,1)∝0.4×0.5×0.5×23≈0.0667P(+|1,0,1)\propto 0.4\times0.5\times0.5\times\frac{2}{3}\approx0.0667P(+∣1,0,1)∝0.4×0.5×0.5×32≈0.0667
P(−∣1,0,1)∝0.6×0.5×0.625×0.75=0.1406P(-|1,0,1)\propto 0.6\times0.5\times0.625\times0.75=0.1406P(−∣1,0,1)∝0.6×0.5×0.625×0.75=0.1406
结论:预测类别为 -
2. 关联规则支持度、置信度
规则:{(4≤A≤8),B=1}→{C=1}\{(4\le A\le8),B=1\} \rightarrow \{C=1\}{(4≤A≤8),B=1}→{C=1}
数据集
| A | B | C |
|---|---|---|
| 3.2 | 1 | 1 |
| 2.4 | 0 | 1 |
| 4.7 | 1 | 0 |
| 5.2 | 1 | 0 |
| 5.8 | 0 | 1 |
| 6.9 | 1 | 0 |
| 2.6 | 1 | 1 |
| 7.3 | 0 | 0 |
| 8.8 | 1 | 0 |
| 7.2 | 1 | 1 |
- 寻找满足条件的记录:
首先筛选能够满足前件 (4≤A≤8(4\le A\le8(4≤A≤8 且 B=1)B=1)B=1) 的数据情况,包括:A=4.7、5.2、6.9、7.2,共产生 4 条记录。
接下来再判定这分离出来的4条中,谁又能同时满足后件 C=1C=1C=1:只有 A=7.2 这一条。
计算支持度与置信度
支持度衡量前件与后件同时出现的比例:
支持度=同时满足前件后件的条数 (1条)总数 (10条)=0.1\text{支持度}=\frac{\text{同时满足前件后件的条数 (1条)}}{\text{总数 (10条)}}=0.1支持度=总数 (10条)同时满足前件后件的条数 (1条)=0.1
置信度衡量在前件出现的条件下后件出现的比例:
置信度=同时满足前后件 (1条)满足前件的总数 (4条)=0.25\text{置信度}=\frac{\text{同时满足前后件 (1条)}}{\text{满足前件的总数 (4条)}}=0.25置信度=满足前件的总数 (4条)同时满足前后件 (1条)=0.25
答案:支持度=0.1,置信度=0.25
3. 基尼系数与基尼增益
数据集
| 实例 | a1 | a2 | 目标 |
|---|---|---|---|
| 1 | 高 | 1.0 | + |
| 2 | 低 | 6.0 | + |
| 3 | 低 | 5.0 | - |
| 4 | 中 | 4.0 | + |
| 5 | 中 | 5.0 | - |
| 6 | 高 | 2.3 | - |
| 7 | 高 | 7.2 | + |
| 8 | 高 | 6.8 | + |
(1) 整体的初始基尼系数 (Gini)
基尼系数用于度量节点的不纯度,数值越小表示节点越纯。二分类时,基尼系数最大为 0.5。公式为 1−∑(各类占比)21 - \sum(\text{各类占比})^21−∑(各类占比)2。
正类(+)5个,负类(-)3个
Gini=1−(58)2−(38)2=1−25+964=3064=0.46875Gini=1-\left(\frac{5}{8}\right)^2-\left(\frac{3}{8}\right)^2=1-\frac{25+9}{64}=\frac{30}{64}=0.46875Gini=1−(85)2−(83)2=1−6425+9=6430=0.46875
(2) a1的最优二元划分(基于基尼系数增益找出最佳切分点)
对序数型属性 a1a_1a1,按顺序“低 < 中 < 高”只需考虑相邻位置的二元划分:{低}|{中,高} 与 {低,中}|{高}。切分后加权基尼越小,基尼增益越大。
原节点基尼系数 Gini0≈0.4688Gini_0 \approx 0.4688Gini0≈0.4688。
候选划分:
- 划分1:{低} | {中,高}
- 左子节点(低):Gini=0.5
- 右子节点(中,高):Gini=1-(4/6)2-(2/6)2 ≈ 0.4444
- 增益 ΔGini≈0.4688−(28×0.5+68×0.4444)=0.0105\Delta Gini \approx 0.4688 - (\frac{2}{8} \times 0.5 + \frac{6}{8} \times 0.4444) = 0.0105ΔGini≈0.4688−(82×0.5+86×0.4444)=0.0105
- 划分2:{低,中} | {高}
- 左子节点(低,中):Gini=0.5
- 右子节点(高):Gini=1-(3/4)2-(1/4)2 = 0.375
- 增益 ΔGini=0.46875−(48×0.5+48×0.375)=0.03125\Delta Gini = 0.46875 - (\frac{4}{8} \times 0.5 + \frac{4}{8} \times 0.375) = 0.03125ΔGini=0.46875−(84×0.5+84×0.375)=0.03125(增益最大)
最优划分:a1∈{低,中}a_1 \in \{\text{低,中}\}a1∈{低,中} 与 a1=高a_1=\text{高}a1=高
高度1决策树
- 根节点:判断 a1==高a_1==\text{高}a1==高?
- 是:+3、−1
- 否:+2、−2
(3) a2=4.7时的基尼增益计算
- 划分后:≤4.7\le 4.7≤4.7 分子集(+2、-1);>4.7> 4.7>4.7 分子集(+3、-2)
- 左子节点 GiniL=1−(2/3)2−(1/3)2=0.4444Gini_L = 1 - (2/3)^2 - (1/3)^2 = 0.4444GiniL=1−(2/3)2−(1/3)2=0.4444
- 右子节点 GiniR=1−(3/5)2−(2/5)2=0.48Gini_R = 1 - (3/5)^2 - (2/5)^2 = 0.48GiniR=1−(3/5)2−(2/5)2=0.48
- 基尼增益 ΔGini=0.46875−(38×0.4444+58×0.48)≈0.0021\Delta Gini = 0.46875 - (\frac{3}{8} \times 0.4444 + \frac{5}{8} \times 0.48) \approx 0.0021ΔGini=0.46875−(83×0.4444+85×0.48)≈0.0021


4. ROC 与 AUC
题目表格
| 实例 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| 真实标签 | + | + | - | - | + | + | - | - |
| P(+∣X,M1)P(+ \mid X,M_1)P(+∣X,M1) | 0.62 | 0.04 | 0.78 | 0.31 | 0.48 | 0.12 | 0.38 | 0.05 |
1)按预测概率降序排序
3(0.78,−)、1(0.62,+)、5(0.48,+)、7(0.38,−)、4(0.31,−)、6(0.12,+)、8(0.05,−)、2(0.04,+)
正样本总数P=4,负样本总数N=4
2)逐阈值划线计算真正率(TPR)、假正率(FPR)
TPR=TPP,FPR=FPNTPR=\frac{\text{TP}}{P},\quad FPR=\frac{\text{FP}}{N}TPR=PTP,FPR=NFP
| 加入样本 | 真实标签 | TP | FP | TPR | FPR | ROC点(FPR,TPR) |
|---|---|---|---|---|---|---|
| 初始 | - | 0 | 0 | 0 | 0 | (0,0) |
| 3 | - | 0 | 1 | 0 | 0.25 | (0.25,0) |
| 1 | + | 1 | 1 | 0.25 | 0.25 | (0.25,0.25) |
| 5 | + | 2 | 1 | 0.5 | 0.25 | (0.25,0.5) |
| 7 | - | 2 | 2 | 0.5 | 0.5 | (0.5,0.5) |
| 4 | - | 2 | 3 | 0.5 | 0.75 | (0.75,0.5) |
| 6 | + | 3 | 3 | 0.75 | 0.75 | (0.75,0.75) |
| 8 | - | 3 | 4 | 0.75 | 1 | (1,0.75) |
| 2 | + | 4 | 4 | 1 | 1 | (1,1) |
因此 ROC 坐标点依次为:
(0,0)、(0.25,0)、(0.25,0.25)、(0.25,0.5)、(0.5,0.5)、(0.75,0.5)、(0.75,0.75)、(1,0.75)、(1,1)。
3)AUC(阶梯曲线下面积)
ROC 曲线按上述点逐段连接,只有 FPR 增加的水平段贡献面积:
AUC=0.25×0.5+0.25×0.5+0.25×0.75=0.125+0.125+0.1875=0.4375AUC = 0.25\times0.5 + 0.25\times0.5 + 0.25\times0.75 = 0.125+0.125+0.1875=0.4375AUC=0.25×0.5+0.25×0.5+0.25×0.75=0.125+0.125+0.1875=0.4375
也可用排序对计数验证:4 个正负样本对中,正样本分数高于负样本的对数为 7,总对数为 4×4=164\times4=164×4=16,故 AUC=7/16=0.4375AUC=7/16=0.4375AUC=7/16=0.4375。
答案:AUC=0.4375
5. 红酒决策树
属性:酒精、苹果酸、灰、灰的碱性、镁、总酚、类黄酮、非黄烷类酚类、花青素、颜色强度、色调、稀释葡萄酒、脯氨酸
类别:0、1、2
决策树结构(对应原图)
- 根节点:x[6]≤1.4x[6]≤1.4x[6]≤1.4(类黄酮),gini=0.664,samples=124,value=[44,44,36]
- 左分支:x[9]≤3.7x[9]≤3.7x[9]≤3.7(颜色强度),gini=0.219,samples=40,value=[0,5,35]
- 左叶节点:gini=0,samples=5,value=[0,5,0](类别1)
- 右叶节点:gini=0,samples=35,value=[0,0,35](类别2)
- 右分支:x[0]≤13.04x[0]≤13.04x[0]≤13.04(酒精),gini=0.51,samples=84,value=[44,39,1]
- 左叶节点:gini=0.054,samples=36,value=[1,35,0](类别1)
- 右叶节点:gini=0.19,samples=48,value=[43,4,1](类别0)
- 左分支:x[9]≤3.7x[9]≤3.7x[9]≤3.7(颜色强度),gini=0.219,samples=40,value=[0,5,35]
(1) 根节点与最左叶节点解释
- 根节点:分裂特征为类黄酮(x[6]),阈值为 1.4。该节点包含 124 个训练样本,三类样本数分别为
[44,44,36],预测类别取样本数最多的类别;由于类别 0 和类别 1 并列最多,实际预测类别会按实现中的类别顺序取其中之一。基尼系数为
1−(44124)2−(44124)2−(36124)2≈0.6641-\left(\frac{44}{124}\right)^2-\left(\frac{44}{124}\right)^2-\left(\frac{36}{124}\right)^2\approx0.6641−(12444)2−(12444)2−(12436)2≈0.664 - 最左叶节点:路径为类黄酮 x[6]≤1.4x[6]\le1.4x[6]≤1.4 且颜色强度 x[9]≤3.7x[9]\le3.7x[9]≤3.7。该节点含 5 个样本,value=[0,5,0],全部属于类别 1,因此 gini=0,是纯节点,预测类别为 1。
(2) 样本X分类
X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325]X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325]X=[0.125,2.4,2.17,21,88,2.55,2.27,0.26,1.22,2,0.9,2.78,325]
- x[6]=2.27>1.4x[6]=2.27>1.4x[6]=2.27>1.4 → 右分支
- x[0]=0.125≤13.04x[0]=0.125≤13.04x[0]=0.125≤13.04 → 左叶节点
- 左叶节点主类为类别1
结论:类别1
6. 回归决策树(高度2,SSE)
数据集
| 序号 | x | y |
|---|---|---|
| 1 | 5 | 0.2 |
| 2 | 7 | 0.4 |
| 3 | 10 | 0.5 |
| 4 | 15 | 0.6 |
1)初始SSE
均值 yˉ=(0.2+0.4+0.5+0.6)/4=0.425\bar{y} = (0.2+0.4+0.5+0.6)/4 = 0.425yˉ=(0.2+0.4+0.5+0.6)/4=0.425
SSE0=(0.2−0.425)2+(0.4−0.425)2+(0.5−0.425)2+(0.6−0.425)2SSE_0 = (0.2-0.425)^2 + (0.4-0.425)^2 + (0.5-0.425)^2 + (0.6-0.425)^2SSE0=(0.2−0.425)2+(0.4−0.425)2+(0.5−0.425)2+(0.6−0.425)2
=(−0.225)2+(−0.025)2+0.0752+0.1752=0.050625+0.000625+0.005625+0.030625=0.0875= (-0.225)^2 + (-0.025)^2 + 0.075^2 + 0.175^2 = 0.050625 + 0.000625 + 0.005625 + 0.030625 = 0.0875=(−0.225)2+(−0.025)2+0.0752+0.1752=0.050625+0.000625+0.005625+0.030625=0.0875
2)第一层最优分裂(基于 CART 贪心算法原则)
可能的分裂点有:x=6,x=8.5,x=12.5x=6, x=8.5, x=12.5x=6,x=8.5,x=12.5。
- 若以 x=6x=6x=6 划分:左支 {5}\{5\}{5},右支 {7,10,15}(yˉ=0.5)\{7,10,15\} (\bar{y}=0.5){7,10,15}(yˉ=0.5)
计算得 SSE1=0+((−0.1)2+02+0.12)=0.02SSE_1 = 0 + ( (-0.1)^2 + 0^2 + 0.1^2 ) = 0.02SSE1=0+((−0.1)2+02+0.12)=0.02 - 若以 x=8.5x=8.5x=8.5 划分:左支 {5,7}(yˉ=0.3)\{5,7\} (\bar{y}=0.3){5,7}(yˉ=0.3),右支 {10,15}(yˉ=0.55)\{10,15\} (\bar{y}=0.55){10,15}(yˉ=0.55)
计算得 SSE2=((−0.1)2+0.12)+((−0.05)2+0.052)=0.02+0.005=0.025SSE_2 = ( (-0.1)^2 + 0.1^2 ) + ( (-0.05)^2 + 0.05^2 ) = 0.02 + 0.005 = 0.025SSE2=((−0.1)2+0.12)+((−0.05)2+0.052)=0.02+0.005=0.025 - 若以 x=12.5x=12.5x=12.5 划分:左支 {5,7,10}(yˉ=1.13≈0.3667)\{5,7,10\} (\bar{y}=\frac{1.1}{3}\approx0.3667){5,7,10}(yˉ=31.1≈0.3667),右支 {15}(y=0.6)\{15\} (y=0.6){15}(y=0.6)
计算得 SSE3=(0.2−0.3667)2+(0.4−0.3667)2+(0.5−0.3667)2+0≈0.0467SSE_3 = (0.2-0.3667)^2 + (0.4-0.3667)^2 + (0.5-0.3667)^2 + 0 \approx 0.0467SSE3=(0.2−0.3667)2+(0.4−0.3667)2+(0.5−0.3667)2+0≈0.0467
由于 SSE1(0.02)SSE_1 (0.02)SSE1(0.02) 最小,下降最多,在这一步依据贪心选择分裂点应该是 x≤6x \le 6x≤6。
3)第二层分裂
左支 x≤6x \le 6x≤6 已纯净(y=0.2y=0.2y=0.2);为达到树高度2,我们对右支 {7,10,15}\{7, 10, 15\}{7,10,15} 继续分裂。
候选划分点为 x=8.5x=8.5x=8.5 或 x=12.5x=12.5x=12.5:
- 若取 x=8.5x=8.5x=8.5:分裂为左节点 {7}(y=0.4)\{7\} (y=0.4){7}(y=0.4) 和 右节点 {10,15}(yˉ=0.55)\{10,15\} (\bar{y}=0.55){10,15}(yˉ=0.55)。树最终总 SSE=0.005SSE = 0.005SSE=0.005。
- 若取 x=12.5x=12.5x=12.5:分裂为左节点 {7,10}(yˉ=0.45)\{7,10\} (\bar{y}=0.45){7,10}(yˉ=0.45) 和 右节点 {15}(y=0.6)\{15\} (y=0.6){15}(y=0.6)。树最终总 SSE=0.005SSE = 0.005SSE=0.005。
因两者对误差影响相同,下面以选择 x≤8.5x \le 8.5x≤8.5 为例建树:
(1) 决策树结构
- 根节点:判断 x≤6x \le 6x≤6
- 左子节点(叶节点):x≤6→y=0.2x \le 6 \rightarrow y=0.2x≤6→y=0.2
- 右子节点:分支 x>6x > 6x>6,继续判断是否 x≤8.5x \le 8.5x≤8.5
- 左子节点(叶节点):分支 6<x≤8.5→y=0.46 < x \le 8.5 \rightarrow y=0.46<x≤8.5→y=0.4
- 右子节点(叶节点):分支 x>8.5→y=0.55x > 8.5 \rightarrow y=0.55x>8.5→y=0.55
(2) 方程表达
y={0.2,x≤60.4,6<x≤8.50.55,x>8.5y= \begin{cases} 0.2, & x \le 6\\ 0.4, & 6 < x \le 8.5\\ 0.55, & x > 8.5 \end{cases} y=⎩
⎨
⎧0.2,0.4,0.55,x≤66<x≤8.5x>8.5
如有任何疑问或发现错误,欢迎在评论区留言指正,共同探讨交流。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)