第六章 样本相似性可视化课堂练习
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 图形观察和代码编写的心得体会
setosa在Petal相关指标上明显低于其他两类。versicolor和virginica在Sepal指标上有部分重叠,但在Petal指标上可以较好区分。Sepal.Width的区分能力较弱(线条混杂较多)。
2.2 雷达图
- 采用
ggiraphExtra::ggRadar绘图
2.2.1 图形观察和代码编写的心得体会
Setosa:在
Petal.Length(花瓣长度)和Petal.Width(花瓣宽度)上显著低于其他两类(多边形明显内缩),说明其花瓣较小。Virginica:在
Petal相关指标上数值最高,花瓣显著更大。Versicolor:特征值介于两者之间,但更接近
Virginica。
3 星图和脸谱图
3.1 星图
采用
stars函数,对标准化数据绘制圆弧星图需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名;设置图例在合适位置,能完整显示;将图形分为10行。
3.1.1 图形观察和代码编写的心得体会
每个星图的多边形形状直观反映各物种(Setosa/Versicolor/Virginica)的特征组合模式。Setosa 的花瓣特征(Petal)轴明显短于其他两类。同一颜色的多个星图形状若高度一致,说明该物种个体间特征相似(如Setosa通常高度一致)。若某轴上不同物种的星图完全分离(如 Petal.Width),则该特征对分类最重要。某物种中个别星图形状与其他同色星图差异显著时,可能是异常样本。
#脸谱图
- 采用
aplpack::faces函数,作Species三个类别的脸谱图 - 需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名; - 设置图例在合适位置,能完整显示;将图形分为12列。
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.1.2 图形观察和代码编写的心得体会
- Setosa的花瓣较短,可能被比喻为较短的鼻子或耳朵,而Versicolor和Virginica的花瓣较长,可能被比喻为较长的鼻子或耳朵。
4 聚类图和热图
4.1 系统聚类树状图
- 采用
factoextra::fviz_dend函数,对标准化后数据作图; - 需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名; - 要求分为3类,观察分类结果和
Species的差异;树状图的外观为圆形。
4.1.1 图形观察和代码编写的心得体会
- 三种颜色,分别代表三种不同的鸢尾花种类:Setosa(红色)、Versicolor(绿色)、Virginica(蓝色)。这表明聚类分析成功地将数据分为三类,与实际的物种分类相匹配。
4.2 K-menas聚类主成分图
采用
factoextra::fviz_cluster函数,对标准化后数据作图;需要先将四个数值变量转化为矩阵,并将
1:150作为矩阵的行名;要求分为3类,类别轮廓为正态分布,观察哪些观察值比较异常。
4.2.1 图形观察和代码编写的心得体会
- 图的两个轴分别代表两个主成分,这两个主成分解释了数据的大部分变异。Dim1解释了74%的变异,而Dim2解释了24.8%的变异 ,这说明大部分信息可以通过这两个主成分来表示
4.3 热图
采用
gplots::heatmap.2函数,对原始数据绘制热力图需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名;要求横轴和纵轴均添加聚类树状图
4.3.1 图形观察和代码编写的心得体会
- 右侧的颜色条显示了不同物种的分类,其中Setosa(红色)、Versicolor(绿色)、Virginica(蓝色)在热图中以不同的颜色块表示,这可以直观地看出不同物种在各个特征上的分布差异。