第六章 样本相似性可视化课堂练习
1 案例数据
1.1 iris:鸢尾花数据集
- R语言内置的
iris
数据集(鸢尾花数据集)是统计学和机器学习领域最经典的案例数据集之一,由英国统计学家 Ronald Fisher 在1936年首次提出。它包含了3种鸢尾花的测量数据,每个类别有50个样本,共150行数据。
变量名 | 数据类型 | 单位 | 说明 |
---|---|---|---|
Sepal.Length | numeric | cm | 花萼(萼片)长度,即花朵最外层绿色叶状结构的长度 |
Sepal.Width | numeric | cm | 花萼(萼片)宽度 |
Petal.Length | numeric | cm | 花瓣长度,即花朵内部彩色叶状结构的长度 |
Petal.Width | numeric | cm | 花瓣宽度 |
Species | factor | - | 鸢尾花种类(分类标签),包含3个水平: • setosa 山鸢尾• versicolor 变色鸢尾• virginica 维吉尼亚鸢尾 |
setosa
类的花通常较小,花瓣短而宽,与其他两类差异明显;versicolor
和virginica
在部分特征上有重叠,分类难度更高。
2 平行坐标图和雷达图
2.1 平行坐标图
ggplot(group=id)+geom_line+geom_point
绘图Species
映射为颜色
2.1.1 图形观察和代码编写的心得体会
- 蓝线和绿线在相邻轴间呈现相似斜率,可能存在正相关关系,密集的平行线簇表明数据子集具有相似特征,红线明显偏离主线的折线可能代表异常数据。
2.2 雷达图
- 采用
ggiraphExtra::ggRadar
绘图
2.2.1 图形观察和代码编写的心得体会
- 雷达图可以直观地展现优劣势,便于发现各维度上的强弱分布,蓝线最为突出,所以该数值比较高,维度表现较强,其次是绿线、红线,这种图形适合较少对象的多维数据
3 星图和脸谱图
3.1 星图
采用
stars
函数,对标准化数据绘制圆弧星图需要先将四个数值变量转化为矩阵,并将
Species
作为矩阵的行名;设置图例在合适位置,能完整显示;将图形分为10行。
3.1.1 图形观察和代码编写的心得体会
- 在同一图中同时显示5-10个维度的数据,适合快速比较多个指标,通过叠加多个星图,直接比较不同对象的表现。
3.2 脸谱图
- 采用
aplpack::faces
函数,作Species
三个类别的脸谱图 - 需要先将四个数值变量转化为矩阵,并将
Species
作为矩阵的行名; - 设置图例在合适位置,能完整显示;将图形分为3列。
effect of variables:
modified item Var
"height of face " "Sepal.Length"
"width of face " "Sepal.Width"
"structure of face" "Petal.Length"
"height of mouth " "Petal.Width"
"width of mouth " "Sepal.Length"
"smiling " "Sepal.Width"
"height of eyes " "Petal.Length"
"width of eyes " "Petal.Width"
"height of hair " "Sepal.Length"
"width of hair " "Sepal.Width"
"style of hair " "Petal.Length"
"height of nose " "Petal.Width"
"width of nose " "Sepal.Length"
"width of ear " "Sepal.Width"
"height of ear " "Petal.Length"
3.2.1 图形观察和代码编写的心得体会
- 脸谱图是一种多变量数据可视化方法,通过人脸特征(如眼睛大小、嘴巴弧度、鼻子长度等)编码不同维度的数据,利用人类对面部表情的敏感识别能力,帮助直观感知复杂数据的模式与异常。
4 聚类图和热图
4.1 系统聚类树状图
- 采用
factoextra::fviz_dend
函数,对标准化后数据作图; - 需要先将四个数值变量转化为矩阵,并将
Species
作为矩阵的行名; - 要求分为3类,观察分类结果和
Species
的差异;树状图的外观为圆形。
4.1.1 图形观察和代码编写的心得体会
- 通过树状分支表示数据点或类别的逐级合并过程
4.2 K-menas聚类主成分图
采用
factoextra::fviz_cluster
函数,对标准化后数据作图;需要先将四个数值变量转化为矩阵,并将
1:150
作为矩阵的行名;要求分为3类,类别轮廓为正态分布,观察哪些观察值比较异常。
4.2.1 图形观察和代码编写的心得体会
- K-menas聚类主成分图辅助判断K-means的合理性,快速观察高维数据的潜在分组。
4.3 热图
采用
gplots::heatmap.2
函数,对原始数据绘制热力图需要先将四个数值变量转化为矩阵,并将
Species
作为矩阵的行名;要求横轴和纵轴均添加聚类树状图
4.3.1 图形观察和代码编写的心得体会
- 热图是一种通过颜色编码矩阵数据的可视化工具,将数值大小转化为颜色梯度,直观反映数据分布,整合多维度信息。