机器学习中的数据可视化与统计展示
机器学习中的数据可视化与统计展示
深入理解机器学习中的数据可视化技术,掌握常用图表类型及其特点、作用和使用场景。从第一性原理出发,理解为什么需要数据可视化,以及如何选择合适的图表展示不同的数据。
目录
1. 为什么需要数据可视化?
1.1 可视化的本质
定义
数据可视化:将抽象的数据转化为直观的图形,帮助人类理解数据。
核心问题:如何让数据更容易理解?
本质需求:从”数字”到”图形”,从”抽象”到”直观”。
人类视觉的优势
为什么需要可视化?
原因1:人类视觉处理能力强
问题:人类擅长处理视觉信息,不擅长处理大量数字。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
数字形式:
特征1:0.145494
特征2:0.145361
特征3:0.133669
特征4:0.132365
...
↓
问题:哪个特征最重要?很难快速判断 ❌
图形形式:
特征1:████████████████████████████████ 0.145494
特征2:████████████████████████████████ 0.145361
特征3:███████████████████████████████ 0.133669
特征4:███████████████████████████████ 0.132365
↓
优势:一眼就能看出特征1和特征2最重要 ✅
原因2:发现模式
问题:数字中隐藏的模式,通过图形更容易发现。
例子:
1
2
3
4
5
6
7
8
散点图:
可以发现:
- 数据点的聚类情况
- 异常值
- 数据分布
- 变量之间的关系
↓
这些模式在数字表格中很难发现
原因3:沟通效率
问题:向业务人员解释模型结果时,图形比数字更有效。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
向业务人员解释特征重要性:
方案1:列出数字表格
- 特征1:0.145
- 特征2:0.132
- ...
↓
业务人员:看不懂,不理解 ❌
方案2:展示可视化图表
- 条形图或棒棒糖图
- 清晰的排名和数值对比
↓
业务人员:一目了然,容易理解 ✅
1.2 可视化的作用
作用1:数据探索
目的:理解数据的分布和特征。
应用:
- 数据分布图(直方图、箱线图)
- 特征相关性热力图
- 数据质量检查
作用2:模型理解
目的:理解模型的决策过程和性能。
应用:
- 特征重要性图表
- SHAP值可视化
- 混淆矩阵热力图
- ROC曲线
作用3:结果解释
目的:向业务人员解释模型预测结果。
应用:
- 预测结果可视化
- 决策路径图
- 特征贡献图
作用4:问题诊断
目的:发现模型和数据的问题。
应用:
- 训练集vs测试集性能对比
- 误差分析图
- 数据分布对比
2. 数据统计展示的技术
2.1 统计指标
基础统计量
均值(Mean)
定义:所有值的平均。
公式:
1
均值 = (值1 + 值2 + ... + 值n) / n
作用:表示数据的中心趋势。
适用场景:了解数据的平均水平。
中位数(Median)
定义:排序后中间位置的值。
作用:不受异常值影响,更稳健。
适用场景:
- 数据有异常值时
- 数据分布不对称时
例子:
1
2
3
4
5
6
数据:[1, 2, 3, 4, 100]
↓
均值:22(被异常值100拉高)
中位数:3(不受异常值影响)
↓
中位数更能反映数据的真实中心
标准差(Standard Deviation)
定义:衡量数据的离散程度。
作用:了解数据的波动性。
适用场景:评估数据的稳定性。
分位数
定义:数据排序后的位置值。
常见分位数:
- Q1(第一四分位数):25%位置
- Q2(中位数):50%位置
- Q3(第三四分位数):75%位置
作用:了解数据的分布情况。
适用场景:
- 识别异常值
- 了解数据分布范围
2.2 解释方差(Explained Variance)
什么是解释方差?
定义:在降维(如PCA)后,保留的方差占原始数据方差的比例。
公式:
1
解释方差比例 = 降维后的方差 / 原始数据的方差
作用:评估降维后保留的信息量。
例子:
1
2
3
4
5
6
7
8
PCA降维:
原始特征:100维
↓
PCA降维到2维
↓
解释方差比例:75%
↓
含义:降维后的2个主成分保留了原始数据75%的信息
为什么重要?
问题:降维会丢失信息,如何评估损失?
应用:解释方差比例越高,保留的信息越多。
判断标准:
- 解释方差 > 80%:信息保留充分 ✅
- 解释方差 60-80%:信息保留基本充分 ⚠️
- 解释方差 < 60%:信息丢失较多 ❌
例子:
1
2
3
4
5
6
PCA降维可视化:
PC1和PC2的解释方差比例:75%
↓
标题显示:"群体分布散点图(解释方差: 75%)"
↓
帮助用户理解可视化的可靠性
2.3 相关性分析
相关系数
定义:衡量两个变量之间的线性关系强度。
范围:-1 到 1
解释:
- 接近1:强正相关
- 接近-1:强负相关
- 接近0:无相关
可视化:相关性热力图
作用:
- 发现特征之间的关联
- 识别冗余特征
- 理解特征交互
3. 基础图表类型
3.1 条形图(Bar Chart)
定义
条形图:用条形长度表示数值大小。
特点:
- 直观易懂
- 适合对比不同类别的数值
类型:
- 垂直条形图:类别在x轴,数值在y轴
- 水平条形图:类别在y轴,数值在x轴(推荐,适合长标签)
例子:
1
2
3
4
5
6
特征重要性展示:
特征1:████████████████████████████████ 0.145
特征2:███████████████████████████████ 0.133
特征3:█████████████████████████ 0.088
↓
一眼就能看出重要性排序
适用场景
场景1:特征重要性排序
应用:展示TopN特征的重要性。
优势:清晰直观,容易对比。
场景2:类别对比
应用:对比不同类别的数值。
优势:直观展示差异。
局限性
局限1:条形太长可能误导
问题:如果数值差异很大,条形长度比例可能不直观。
解决:使用对数刻度或限制最大长度。
局限2:不适合太多类别
问题:类别太多时,条形图拥挤,难以阅读。
解决:只展示TopN,其他归类为”其他”。
3.2 点图(Dot Plot)
定义
点图:用圆点位置表示数值大小。
特点:
- 视觉简洁
- 适合小数值展示
- 中位数参考线清晰
例子:
1
2
3
4
5
6
7
8
9
特征重要性点图:
特征1: ● 0.145494
特征2: ● 0.145361
特征3: ● 0.133669
特征4: │ 0.132365(中位值)
特征5: ● 0.073289
特征6: ● 0.064886
↓
用圆点代替条形,视觉更简洁
适用场景
场景1:特征重要性展示
应用:机器学习领域标准做法(SHAP、特征重要性)。
优势:
- 视觉简洁
- 专业感强
- 适合小数值
场景2:对比分析
应用:对比多个数值。
优势:中位数参考线清晰,便于判断相对大小。
优势
优势1:视觉简洁
特点:圆点比条形更简洁,不占空间。
优势2:专业感强
特点:在数据科学和机器学习领域广泛使用。
优势3:中位数清晰
特点:可以清晰标记中位数参考线。
3.3 散点图(Scatter Plot)
定义
散点图:用点在二维空间的位置表示两个变量的值。
特点:
- 展示变量之间的关系
- 发现模式和异常值
例子:
1
2
3
4
5
6
7
8
9
10
11
12
聚类可视化:
X轴:主成分1(PC1)
Y轴:主成分2(PC2)
↓
每个点代表一个样本
点的位置代表降维后的坐标
不同颜色代表不同的聚类
↓
可以直观看到:
- 聚类的分布
- 聚类的形状
- 聚类的分离程度
适用场景
场景1:聚类结果可视化
应用:展示聚类分析的結果。
优势:
- 直观展示聚类分布
- 发现聚类形状
- 识别异常值
场景2:相关性分析
应用:探索两个变量之间的关系。
优势:
- 发现线性关系
- 识别异常值
- 发现非线性模式
场景3:降维可视化
应用:将高维数据降维到2D/3D可视化。
优势:
- 直观理解数据结构
- 发现隐藏模式
增强散点图
方法1:添加聚类中心
目的:标记每个聚类的中心点(质心)。
作用:帮助理解聚类的位置。
方法2:添加聚类边界
目的:用凸包(Convex Hull)标记聚类边界。
作用:清晰展示聚类的覆盖范围。
方法3:颜色编码
目的:用不同颜色表示不同类别或聚类。
作用:清晰区分不同的组。
3.4 折线图(Line Chart)
定义
折线图:用折线连接数据点,展示数据随时间的变化趋势。
特点:
- 展示趋势
- 适合时间序列数据
适用场景
场景1:训练曲线
应用:展示模型训练过程中的损失变化。
作用:监控训练过程,发现过拟合。
场景2:性能指标变化
应用:展示模型性能随参数或数据的变化。
作用:优化超参数,选择最佳配置。
4. 高级图表类型
4.1 棒棒糖图(Lollipop Plot)
定义
棒棒糖图:点(圆点)在顶部,线从基线延伸。
特点:
- 视觉层次感强
- 专业美观
- 非常适合展示排名数据
例子:
1
2
3
4
5
6
7
8
9
10
特征重要性棒棒糖图:
特征1: ● 0.145494
特征2: ● 0.145361
特征3: ● 0.133669
特征4: │ 0.132365(中位值)
特征5: ● 0.073289
特征6: ● 0.064886
↓
点(圆点)在顶部,线从基线延伸
视觉层次感强,专业美观
为什么推荐棒棒糖图?
优势1:视觉层次感强
特点:点+线的组合,比纯点图更有视觉冲击力。
优势2:专业美观
特点:在数据科学和机器学习领域广泛使用。
优势3:适合排名数据
特点:非常适合展示特征重要性等排名数据。
优势4:中位数清晰
特点:可以清晰标记中位数参考线。
水平棒棒糖图变体
定义:水平方向的棒棒糖图。
特点:
- 线从左侧基线延伸到右侧的点
- 更符合水平阅读习惯
- 数值显示在右侧
例子:
1
2
3
4
5
6
7
8
9
特征重要性水平棒棒糖图:
特征1: ───────────────────────────────● 0.145494
特征2: ───────────────────────────────● 0.145361
特征3: ─────────────────────────────● 0.133669
特征4: ─────────────────────────────│ 0.132365(中位值)
特征5: ───────────────● 0.073289
特征6: ─────────────● 0.064886
↓
水平方向,符合阅读习惯
适用场景
场景1:特征重要性排序
应用:展示TopN特征的重要性。
优势:视觉层次感强,专业美观。
场景2:排名对比
应用:对比多个项目的排名。
优势:清晰的视觉层次,容易理解。
4.2 水平条形图(Horizontal Bar Chart)
定义
水平条形图:类别在y轴,数值在x轴。
特点:
- 适合长标签
- 符合水平阅读习惯
为什么选择水平条形图?
优势1:适合长标签
问题:特征名称可能很长。
解决:水平条形图,标签在y轴,有足够空间显示。
例子:
1
2
3
4
5
6
7
8
9
垂直条形图:
X轴:标签(可能被截断或旋转)
↓
问题:长标签显示困难 ❌
水平条形图:
Y轴:标签(垂直排列,有足够空间)
↓
优势:长标签完整显示 ✅
优势2:符合阅读习惯
特点:从左到右阅读,更自然。
优势3:易于对比
特点:水平方向的条形,更容易对比长度。
适用场景
场景1:特征重要性展示
应用:展示特征重要性,特别是特征名称较长时。
场景2:类别排名
应用:展示多个类别的排名。
场景3:交叉特征权重
应用:展示交叉特征组合的权重。
4.3 热力图(Heatmap)
定义
热力图:用颜色深浅表示数值大小。
特点:
- 展示二维数据
- 发现模式和异常
例子:
1
2
3
4
5
6
7
8
9
10
特征相关性热力图:
特征1 特征2 特征3 特征4
特征1 1.0 0.8 0.3 0.2
特征2 0.8 1.0 0.5 0.4
特征3 0.3 0.5 1.0 0.6
特征4 0.2 0.4 0.6 1.0
↓
用颜色深浅表示相关系数
- 深色:高相关
- 浅色:低相关
适用场景
场景1:特征相关性分析
应用:展示特征之间的相关性。
作用:
- 发现高度相关的特征(冗余)
- 发现特征组合模式
场景2:混淆矩阵
应用:展示分类模型的预测结果。
作用:
- 了解模型的预测准确性
- 发现容易混淆的类别
场景3:特征重要性矩阵
应用:展示不同模型对不同特征的重要性。
作用:对比不同模型的特征偏好。
4.4 箱线图(Box Plot)
定义
箱线图:展示数据的分布情况。
组成:
- 箱体:Q1到Q3的范围(IQR)
- 中线:中位数
- 须线:数据的范围(排除异常值)
- 异常值:超出须线的点
特点:
- 展示分布
- 识别异常值
- 对比多个分布
例子:
1
2
3
4
5
6
7
8
9
特征值分布箱线图:
特征1:│ ┌─────┐ │
│ │ │ │
│ └─────┘ │
↓
箱体:Q1到Q3的范围
中线:中位数
须线:数据范围
异常值:超出须线的点
适用场景
场景1:特征分布分析
应用:了解每个特征的分布情况。
作用:
- 发现异常值
- 了解数据分布
- 识别偏态分布
场景2:对比不同类别
应用:对比不同类别的特征分布。
作用:了解不同类别之间的差异。
4.5 小提琴图(Violin Plot)
定义
小提琴图:结合箱线图和密度图的优势,展示数据分布。
组成:
- 箱线图元素(中位数、四分位数)
- 密度图形状(显示分布的形状)
特点:
- 展示完整分布形状
- 识别多峰分布
- 对比多个分布
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
特征值分布小提琴图:
特征1:╱╲
│ │
╱ ╲
│ ▓ │ ← 密度形状(显示分布形状)
╲ ╱
│ │
╲╱
↓
可以同时看到:
- 四分位数(箱线图信息)
- 分布形状(密度图信息)
- 多峰分布(如果存在)
为什么需要小提琴图?
问题:箱线图只显示四分位数,不显示分布形状。
解决:小提琴图结合密度图,显示完整的分布形状。
优势1:展示分布形状
特点:可以看到数据是单峰、双峰还是多峰。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
箱线图:
│ ┌─────┐ │
│ │ │ │
↓
问题:无法看出分布是单峰还是双峰
小提琴图:
╱╲
│ │
╱ ╲
│ ▓▓ │ ← 可以看到是双峰分布
╲ ╱
↓
优势:清晰显示分布形状
优势2:识别多峰分布
特点:可以发现数据中的多个模式。
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
单峰分布:
╱╲
│ │
╱ ╲
│ ▓ │ ← 单个峰值
╲ ╱
双峰分布:
╱╲
│ │
╱ ╲
│ ▓ ▓ │ ← 两个峰值(可能包含两个子群体)
╲ ╱
优势3:对比不同类别
特点:可以直观对比不同类别的分布形状。
例子:
1
2
3
4
5
6
7
8
9
10
11
类别1:╱╲
│ │
╱ ╲
│ ▓ │ ← 正态分布
类别2:╱╲
│ │
╱ ╲
│ ▓ ▓ │ ← 双峰分布
↓
可以直观看到两类分布的差异
小提琴图 vs 箱线图
| 维度 | 箱线图 | 小提琴图 |
|---|---|---|
| 显示内容 | 四分位数、中位数、异常值 | 完整分布形状 + 箱线图信息 |
| 分布形状 | 不显示 | 显示(密度形状) |
| 多峰检测 | 不能 | 能 |
| 信息量 | 较少 | 更多 |
| 视觉复杂度 | 简单 | 较复杂 |
选择原则:
1
2
3
4
5
如果只需要了解四分位数和异常值:
→ 使用箱线图(简单)
如果需要了解完整分布形状:
→ 使用小提琴图(更详细)
适用场景
场景1:特征分布分析
应用:深入了解特征的分布形状。
作用:
- 发现多峰分布
- 了解分布形状
- 识别偏态分布
场景2:对比不同类别
应用:对比不同类别的特征分布。
作用:直观看到分布形状的差异。
场景3:数据探索
应用:探索数据的分布特征。
作用:发现数据中的隐藏模式。
4.6 直方图(Histogram)
定义
直方图:用柱状条表示数据在不同区间内的频数。
特点:
- 展示数据分布
- 发现数据模式
- 识别异常值
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
特征值分布直方图:
频数
↑
│ ▓
│ ▓ ▓
│ ▓ ▓ ▓
│ ▓ ▓ ▓ ▓
└──────────────→ 特征值
↓
可以看到:
- 数据主要集中在哪些区间
- 分布的形状(正态、偏态等)
- 是否存在异常值
为什么需要直方图?
问题:如何了解数据在哪些区间分布更多?
解决:直方图显示不同区间的频数。
优势1:展示数据分布
特点:直观看到数据在哪些值区间分布最多。
优势2:发现数据模式
特点:可以发现单峰、双峰等模式。
优势3:识别异常值
特点:远离主要分布的柱子可能表示异常值。
直方图 vs 密度图
直方图:
- 显示频数(计数)
- 柱状条有宽度
- 离散的区间
密度图:
- 显示密度(概率)
- 平滑曲线
- 连续分布
选择原则:
1
2
3
4
5
如果需要看到原始频数:
→ 使用直方图
如果需要看到平滑的分布曲线:
→ 使用密度图
适用场景
场景1:特征值分布分析
应用:了解每个特征值的分布情况。
作用:
- 发现数据分布模式
- 识别异常值
- 了解数据范围
场景2:数据质量检查
应用:检查数据是否符合预期分布。
作用:发现数据质量问题。
4.7 密度图(Density Plot / KDE Plot)
定义
密度图:用平滑曲线展示数据的概率密度分布。
特点:
- 平滑的分布曲线
- 展示连续分布
- 适合对比多个分布
例子:
1
2
3
4
5
6
7
8
9
10
特征值分布密度图:
密度
↑
│ ╱╲
│ ╱ ╲
│ ╱ ╲
│ ╱ ╲
└──────────────→ 特征值
↓
平滑曲线展示概率密度分布
为什么需要密度图?
问题:直方图的柱状条可能不平滑,难以看到整体趋势。
解决:密度图用平滑曲线展示分布。
优势1:平滑分布
特点:平滑曲线,更容易看到整体趋势。
优势2:适合对比
特点:多条密度曲线可以叠加对比。
例子:
1
2
3
4
5
6
7
8
9
10
11
对比不同类别的分布:
密度
↑
│ ╱╲ ╱╲
│ ╱ ╲ ╱ ╲
│ ╱ X ╲
│ ╱ ╱ ╲ ╲
└──────────────→ 特征值
类别1 类别2
↓
可以直观看到两个类别的分布差异
适用场景
场景1:分布对比
应用:对比不同类别的特征分布。
作用:直观看到分布差异。
场景2:数据探索
应用:探索数据的分布特征。
作用:发现数据模式。
4.8 雷达图(Radar Chart / Spider Chart)
定义
雷达图:用多条轴展示多个变量的值。
特点:
- 多维度对比
- 展示综合特征
- 发现模式
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
特征重要性雷达图:
特征1
↑
│
特征6 │ 特征2
│
←─────────────→
│
特征5 │ 特征3
│
↓
特征4
↓
可以同时展示多个特征的重要性
为什么需要雷达图?
问题:如何同时对比多个维度的数据?
解决:雷达图用多条轴展示多维度数据。
优势1:多维度对比
特点:可以同时看到多个特征的值。
优势2:发现模式
特点:可以识别哪些维度相似或不同。
适用场景
场景1:多维度特征对比
应用:对比不同样本在多个特征上的表现。
作用:识别样本的特征模式。
场景2:综合评估
应用:展示多个评估指标。
作用:全面了解模型性能。
4.9 平行坐标图(Parallel Coordinates)
定义
平行坐标图:用多条平行轴展示多个变量的值。
特点:
- 展示高维数据
- 发现模式和聚类
- 识别异常值
例子:
1
2
3
4
5
6
7
8
9
10
特征值平行坐标图:
特征1 特征2 特征3 特征4
│ │ │ │
●─────●─────●─────● 样本1
│ │ │ │
●─────●─────●─────● 样本2
│ │ │ │
↓
每条线代表一个样本
可以识别相似样本(线条相似)
为什么需要平行坐标图?
问题:如何可视化高维数据(>3维)?
解决:平行坐标图用多条平行轴展示高维数据。
优势1:高维可视化
特点:可以展示任意维度的数据。
优势2:发现模式
特点:
- 相似的线条 = 相似的样本(可能属于同一类)
- 不同的线条 = 不同的样本(可能属于不同类)
例子:
1
2
3
4
5
6
7
8
9
10
平行坐标图:
特征1 特征2 特征3
│ │ │
●─────●─────● 样本1
│ │ │
●─────●─────● 样本2(与样本1相似)
│ │ │
●─────●─────● 样本3(与样本1、2不同)
↓
可以识别样本1和样本2相似(可能同一类)
适用场景
场景1:高维数据探索
应用:探索高维特征数据。
作用:发现数据中的模式和聚类。
场景2:样本对比
应用:对比不同样本在多个特征上的表现。
作用:识别相似或不同的样本。
4.10 树状图(Treemap)
定义
树状图:用嵌套矩形展示层次数据。
特点:
- 展示层次结构
- 矩形大小表示数值
- 颜色可以表示类别
例子:
1
2
3
4
5
6
7
8
9
10
11
12
特征重要性树状图:
┌─────────────────────┐
│ 特征A(最重要) │
│ ┌─────┬─────────┐ │
│ │特征B│ 特征C │ │
│ │ ├─────┬───┤ │
│ │ │特征D│特征E││
│ └─────┴─────┴───┘ │
└─────────────────────┘
↓
矩形大小表示重要性
嵌套结构表示层次关系
适用场景
场景1:层次数据展示
应用:展示具有层次结构的数据。
作用:同时展示层次和数值。
场景2:特征分组
应用:展示特征分组及其重要性。
作用:理解特征的组织结构。
4.11 桑基图(Sankey Diagram)
定义
桑基图:用流动的箭头展示数据流向。
特点:
- 展示数据流向
- 展示转换过程
- 发现数据关系
例子:
1
2
3
4
5
6
模型决策流程桑基图:
原始数据 ──→ 特征工程 ──→ 模型训练 ──→ 预测结果
↓
特征1, 特征2, 特征3
↓
可以清晰看到数据的流向和转换
适用场景
场景1:流程可视化
应用:展示数据处理流程。
作用:理解数据的转换过程。
场景2:数据流向分析
应用:分析数据在系统中的流向。
作用:发现数据关系。
5. 降维可视化
5.1 PCA 降维可视化
什么是PCA?
定义:主成分分析(Principal Component Analysis),将高维数据降维到低维。
目的:保留主要信息,降低维度。
原理:
1
2
3
4
5
6
7
高维特征空间(100维)
↓
PCA降维
↓
低维特征空间(2维)
↓
保留主要信息(解释方差:75%)
PCA 可视化流程
流程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
步骤1:特征提取
从所有样本提取特征
↓
步骤2:PCA降维
降维到2维(PC1, PC2)
↓
步骤3:计算解释方差
计算PC1和PC2的解释方差比例
↓
步骤4:散点图可视化
X轴:PC1
Y轴:PC2
每个点代表一个样本
↓
步骤5:添加聚类信息
用不同颜色表示不同聚类
标记聚类中心和边界
解释方差的重要性
为什么需要解释方差?
问题:降维会丢失信息,如何评估?
应用:解释方差比例越高,保留的信息越多。
显示方式:
1
2
3
4
5
6
标题:"群体分布散点图(解释方差: 75%)"
↓
帮助用户理解:
- 降维后保留了75%的信息
- 可视化的可靠性
- 信息丢失程度
判断标准:
- 解释方差 > 80%:信息保留充分,可视化可靠 ✅
- 解释方差 60-80%:信息保留基本充分,可视化可用 ⚠️
- 解释方差 < 60%:信息丢失较多,可视化可能不准确 ❌
5.2 t-SNE 降维可视化
什么是t-SNE?
定义:t-分布式随机邻域嵌入(t-Distributed Stochastic Neighbor Embedding),非线性降维方法。
特点:
- 保持局部结构
- 适合可视化高维数据
PCA vs t-SNE
| 维度 | PCA | t-SNE |
|---|---|---|
| 方法 | 线性降维 | 非线性降维 |
| 保留 | 全局方差 | 局部结构 |
| 速度 | 快 | 慢 |
| 解释方差 | 有 | 无 |
| 适用场景 | 线性关系为主 | 复杂非线性关系 |
选择原则:
1
2
3
4
5
如果数据是线性关系为主:
→ 使用PCA(快速,有解释方差)
如果数据有复杂的非线性关系:
→ 使用t-SNE(保留局部结构)
5.3 降维可视化的应用
应用1:聚类结果可视化
目的:直观展示聚类分析的結果。
方法:
- 使用PCA或t-SNE降维到2D
- 用散点图展示
- 用不同颜色表示不同聚类
- 标记聚类中心和边界
优势:
- 直观理解聚类分布
- 发现聚类形状
- 识别异常值
应用2:数据探索
目的:理解数据的结构。
方法:
- 将高维数据降维到2D/3D
- 用散点图可视化
- 发现隐藏的模式
优势:
- 发现数据中的模式
- 理解数据分布
- 识别异常值
6. 特征重要性可视化
6.1 特征重要性排序图
图表类型选择
方案1:棒棒糖图(推荐)⭐
特点:
- 视觉层次感强
- 专业美观
- 适合排名数据
例子:
1
2
3
4
5
6
7
特征重要性棒棒糖图:
特征1: ● 0.145
特征2: ● 0.145
特征3: ● 0.134
...
↓
点+线的组合,视觉冲击力强
方案2:水平点图
特点:
- 视觉简洁
- 专业感强
- 机器学习领域标准做法
例子:
1
2
3
4
5
6
7
特征重要性点图:
特征1: ● 0.145
特征2: ● 0.145
特征3: ● 0.134
...
↓
纯点图,简洁专业
方案3:水平条形图
特点:
- 直观易懂
- 适合长标签
例子:
1
2
3
4
5
6
7
特征重要性条形图:
特征1:████████████████████████████████ 0.145
特征2:████████████████████████████████ 0.145
特征3:███████████████████████████████ 0.134
...
↓
条形长度直观表示重要性
中位数参考线
为什么需要中位数参考线?
作用:
- 帮助判断特征重要性的相对大小
- 识别高于/低于中位数的特征
- 提供参考基准
显示方式:
1
2
3
4
5
6
7
8
9
特征重要性图表:
特征1: ● 0.145
特征2: ● 0.145
特征3: ● 0.134
特征4: │ 0.132(中位值)← 参考线
特征5: ● 0.073
...
↓
中位数参考线清晰标记
6.2 SHAP 值可视化
SHAP 瀑布图(Waterfall Plot)
定义:展示单个样本的预测解释。
特点:
- 从基准值开始
- 每个特征的贡献逐步累加
- 最终得到预测值
例子:
1
2
3
4
5
6
7
8
9
10
SHAP 瀑布图:
基准值:0.28
↓
特征1:+0.40(增加风险)
↓
特征2:+0.25(增加风险)
↓
特征3:-0.10(降低风险)
↓
最终预测:0.83(高风险)
作用:
- 解释单个样本的预测
- 展示每个特征的贡献
- 向业务人员解释模型决策
SHAP 条形图
定义:展示所有样本的平均SHAP值。
特点:
- 特征重要性排序
- 平均贡献大小
作用:
- 了解全局特征重要性
- 对比特征贡献
SHAP 散点图
定义:展示特征值与SHAP值的关系。
特点:
- 发现特征值对预测的影响
- 识别阈值效应
作用:
- 理解特征的影响模式
- 发现非线性关系
6.3 交叉特征可视化
交叉特征权重图
定义:展示特征组合的权重。
特点:
- 显示特征组合
- 展示组合权重
- 展示每个特征的贡献占比
例子:
1
2
3
4
5
6
7
交叉特征权重图:
[特征A, 特征B]:████████████████████████████████ 0.21
- 特征A贡献:71%
- 特征B贡献:29%
↓
显示特征组合的总权重
以及每个特征在组合中的贡献
作用:
- 发现重要的特征组合
- 理解特征交互
- 优化特征工程
7. 聚类结果可视化
7.1 聚类散点图
基础散点图
定义:用散点图展示聚类结果。
特点:
- 每个点代表一个样本
- 不同颜色表示不同聚类
- 点的位置代表降维后的坐标
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
聚类散点图:
PC2
↑
│ ●●● ●●●
│ ●●● ●●●
│ ●●●●
│ ●●●●
└──────────────→ PC1
聚类1 聚类2 聚类3
↓
直观看到:
- 聚类的分布
- 聚类的形状
- 聚类的分离程度
增强元素
元素1:聚类中心(质心)
目的:标记每个聚类的中心点。
显示:用更大的点或特殊标记表示。
作用:帮助理解聚类的位置。
元素2:聚类边界(凸包)
目的:用凸包标记聚类的边界。
显示:用多边形或曲线包围聚类点。
作用:清晰展示聚类的覆盖范围。
元素3:颜色编码
目的:用不同颜色区分不同的聚类。
显示:
- 不同聚类用不同颜色
- 高置信度样本用深色
- 不确定样本用浅色
作用:清晰区分不同的组。
7.2 聚类统计信息
聚类大小
显示:
- 每个聚类的样本数
- 采样比例(如果进行了采样)
作用:了解聚类的规模。
聚类标签
显示:
- 聚类ID
- 聚类名称(如果已命名)
- 置信度信息
作用:识别和区分不同的聚类。
8. 图表选择指南
8.1 根据数据维度选择
一维数据
场景:单一变量,如特征重要性。
推荐图表:
- 棒棒糖图(排名数据)
- 水平条形图(对比数据)
- 点图(简洁展示)
二维数据
场景:两个变量,如相关性分析。
推荐图表:
- 散点图(探索关系)
- 热力图(相关性矩阵)
- 折线图(时间序列)
多维数据
场景:多个变量,如高维特征。
推荐图表:
- PCA降维散点图(全局结构)
- t-SNE降维散点图(局部结构)
- 平行坐标图(多变量对比)
8.2 根据目标选择
目标1:排名对比
场景:展示TopN特征重要性。
推荐图表:
- 棒棒糖图(最推荐)⭐
- 水平条形图
- 点图
选择原则:
- 需要视觉冲击力 → 棒棒糖图
- 需要简洁专业 → 点图
- 需要直观易懂 → 水平条形图
目标2:分布展示
场景:展示数据分布。
推荐图表:
- 直方图(单变量分布、频数)
- 箱线图(分布对比、快速了解)
- 密度图(平滑分布、对比)
- 小提琴图(完整分布形状、多峰检测)
选择原则:
- 快速了解 → 箱线图
- 查看频数 → 直方图
- 平滑曲线 → 密度图
- 深入了解形状 → 小提琴图
目标3:关系探索
场景:探索变量之间的关系。
推荐图表:
- 散点图(两个变量)
- 热力图(相关性矩阵)
- 散点图矩阵(多变量)
选择原则:
- 两个变量 → 散点图
- 多个变量相关性 → 热力图
- 多个变量关系 → 散点图矩阵
目标4:聚类可视化
场景:展示聚类结果。
推荐图表:
- PCA散点图(线性关系)
- t-SNE散点图(非线性关系)
- 带有聚类边界和中心的散点图
选择原则:
- 线性关系为主 → PCA散点图
- 复杂非线性关系 → t-SNE散点图
目标5:多维度对比
场景:同时对比多个维度。
推荐图表:
- 雷达图(≤6维)
- 平行坐标图(任意维度)
选择原则:
- 维度少(≤6维) → 雷达图
- 维度多(>6维) → 平行坐标图
目标6:趋势分析
场景:展示数据随时间的变化。
推荐图表:
- 折线图(时间序列)
- 条形图(离散时间点)
选择原则:
- 连续时间 → 折线图
- 离散时间点 → 条形图
8.3 图表对比总结
基础图表对比
| 图表类型 | 适用场景 | 优势 | 劣势 |
|---|---|---|---|
| 棒棒糖图 | 排名数据、特征重要性 | 视觉层次感强、专业美观 | 相对复杂 |
| 水平条形图 | 对比数据、长标签 | 直观易懂、适合长标签 | 可能误导(条形太长) |
| 点图 | 简洁展示、小数值 | 视觉简洁、专业感强 | 视觉冲击力较弱 |
| 散点图 | 关系探索、聚类可视化 | 发现模式、直观 | 不适合太多点 |
| 热力图 | 相关性矩阵、混淆矩阵 | 展示二维数据、发现模式 | 需要颜色映射理解 |
| 箱线图 | 分布对比、异常值检测 | 展示分布、识别异常值 | 不够直观 |
| 小提琴图 | 分布形状分析、多峰检测 | 显示完整分布形状、识别多峰 | 较复杂 |
| 直方图 | 频数分布分析 | 展示频数、发现模式 | 受区间划分影响 |
| 密度图 | 平滑分布展示、分布对比 | 平滑曲线、适合对比 | 不显示原始频数 |
| 折线图 | 趋势分析、时间序列 | 展示趋势、直观 | 不适合离散数据 |
高级图表对比
| 图表类型 | 适用场景 | 优势 | 劣势 |
|---|---|---|---|
| 雷达图 | 多维度对比、综合评估 | 多维度展示、发现模式 | 维度多时复杂 |
| 平行坐标图 | 高维数据探索、样本对比 | 高维可视化、发现模式 | 线条多时混乱 |
| 树状图 | 层次数据展示、特征分组 | 展示层次和数值 | 层次深时复杂 |
| 桑基图 | 流程可视化、数据流向 | 展示流向、清晰 | 复杂关系时混乱 |
分布展示图表对比
| 图表类型 | 显示内容 | 信息量 | 适用场景 |
|---|---|---|---|
| 箱线图 | 四分位数、中位数、异常值 | 中等 | 快速了解分布 |
| 直方图 | 频数分布 | 中等 | 了解频数分布 |
| 密度图 | 概率密度分布 | 中等 | 平滑分布曲线 |
| 小提琴图 | 完整分布形状 + 箱线图信息 | 高 | 深入了解分布 |
选择建议:
1
2
3
4
5
6
7
8
9
10
11
快速了解分布:
→ 使用箱线图
了解频数分布:
→ 使用直方图
查看平滑分布:
→ 使用密度图
深入了解分布形状:
→ 使用小提琴图
9. 最佳实践
9.1 图表设计原则
原则1:简洁清晰
要求:
- 去除不必要的装饰
- 突出重要信息
- 避免信息过载
例子:
1
2
3
4
5
6
7
8
9
不好的设计:
- 过多的颜色
- 过多的标记
- 混乱的布局
↓
好的设计:
- 清晰的颜色编码
- 必要的标记
- 整齐的布局
原则2:标注完整
要求:
- 标题清晰
- 坐标轴标签明确
- 图例完整
例子:
1
2
3
4
5
PCA散点图:
标题:"群体分布散点图(解释方差: 75%)"
X轴标签:"主成分1 (PC1)"
Y轴标签:"主成分2 (PC2)"
图例:显示每个聚类的颜色和名称
原则3:颜色使用
要求:
- 颜色有含义(如不同聚类用不同颜色)
- 颜色对比明显
- 考虑色盲友好
建议:
- 使用颜色区分不同的类别
- 使用深浅表示重要性或置信度
- 避免使用过多颜色
9.2 交互式图表
为什么需要交互?
优势:
- 可以放大缩小
- 可以查看详细信息
- 可以筛选数据
应用:
- 散点图:鼠标悬停显示详细信息
- 条形图:点击查看详情
- 热力图:放大查看细节
9.3 图表导出
导出格式
格式1:PNG
适用:静态展示、报告。
特点:高质量,文件小。
格式2:SVG
适用:可缩放图形、网页。
特点:矢量格式,无损缩放。
格式3:PDF
适用:正式报告、打印。
特点:高质量,保持格式。
9.4 性能优化
大数据量处理
问题:数据点太多,图表渲染慢。
解决方案:
- 采样:只展示部分数据点
- 聚合:将相近的点聚合
- 分层:先展示概览,再展示细节
例子:
1
2
3
4
5
6
7
8
聚类可视化:
原始数据:10000个样本
↓
采样:1000个样本(随机采样)
↓
展示采样后的数据
↓
标记实际样本数(1000 / 10000)
动态加载
问题:数据量大,初始加载慢。
解决方案:
- 先加载概览
- 按需加载详细信息
- 使用缓存
总结
本文深入介绍了机器学习中的数据可视化与统计展示技术。关键要点:
- 可视化的本质:将抽象数据转化为直观图形,帮助人类理解数据
- 统计指标:均值、中位数、标准差、解释方差等
- 基础图表:条形图、点图、散点图、折线图
- 高级图表:棒棒糖图、热力图、箱线图
- 降维可视化:PCA、t-SNE,及其解释方差
- 特征重要性可视化:棒棒糖图、SHAP值图表
- 聚类结果可视化:散点图、聚类中心和边界
- 图表选择:根据数据维度和目标选择合适的图表
通过数据可视化,我们可以:
- 直观理解数据的分布和特征
- 理解模型的决策过程和性能
- 向业务人员解释模型结果
- 发现模型和数据中的问题
选择合适的数据可视化技术,能够大大提高机器学习的可理解性和应用价值。
附录:图表类型快速参考
按数据维度分类
一维数据:
- 棒棒糖图:排名数据
- 水平条形图:对比数据
- 点图:简洁展示
- 直方图:频数分布
- 密度图:平滑分布
- 箱线图:快速了解分布
- 小提琴图:完整分布形状
二维数据:
- 散点图:关系探索
- 热力图:相关性矩阵
- 折线图:趋势分析
多维数据:
- PCA散点图:线性降维
- t-SNE散点图:非线性降维
- 雷达图:多维度对比(≤6维)
- 平行坐标图:高维数据探索
按目标分类
排名对比:
- 棒棒糖图(推荐)⭐
- 水平条形图
- 点图
分布展示:
- 箱线图(快速了解)
- 直方图(频数分布)
- 密度图(平滑分布)
- 小提琴图(完整形状)
关系探索:
- 散点图(两个变量)
- 热力图(相关性矩阵)
- 散点图矩阵(多变量)
聚类可视化:
- PCA散点图(线性)
- t-SNE散点图(非线性)
多维度对比:
- 雷达图(≤6维)
- 平行坐标图(任意维度)
趋势分析:
- 折线图(连续时间)
- 条形图(离散时间点)
图表选择决策树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
需要可视化什么?
↓
┌─────────────────────────────────────────┐
│ 是排名数据? │
│ ├─→ 是 → 棒棒糖图(推荐)或水平条形图 │
│ └─→ 否 → 继续 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 是分布数据? │
│ ├─→ 是 → 快速了解? │
│ │ ├─→ 是 → 箱线图 │
│ │ └─→ 否 → 完整形状? │
│ │ ├─→ 是 → 小提琴图 │
│ │ └─→ 否 → 直方图或密度图 │
│ └─→ 否 → 继续 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 是关系探索? │
│ ├─→ 是 → 两个变量? │
│ │ ├─→ 是 → 散点图 │
│ │ └─→ 否 → 多个变量? │
│ │ ├─→ 是 → 热力图 │
│ │ └─→ 否 → 继续 │
│ └─→ 否 → 继续 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 是聚类可视化? │
│ ├─→ 是 → 线性关系? │
│ │ ├─→ 是 → PCA散点图 │
│ │ └─→ 否 → t-SNE散点图 │
│ └─→ 否 → 继续 │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 是多维度对比? │
│ ├─→ 是 → 维度≤6? │
│ │ ├─→ 是 → 雷达图 │
│ │ └─→ 否 → 平行坐标图 │
│ └─→ 否 → 继续 │
└─────────────────────────────────────────┘
