第六章 样本相似性可视化课堂练习

Author

kaka

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 类的花通常较小,花瓣短而宽,与其他两类差异明显;versicolorvirginica 在部分特征上有重叠,分类难度更高。

2 平行坐标图和雷达图

2.1 平行坐标图

  • ggplot(group=id)+geom_line+geom_point 绘图
  • Species 映射为颜色

2.1.1 图形观察和代码编写的心得体会

  1. 直观展示多变量:平行坐标图通过多条平行线展示鸢尾花数据集中不同物种在四个测量指标上的分布,清晰呈现了每个样本在多变量下的特征。

  2. 类别区分明显:不同颜色线条代表不同物种,setosa类别在花瓣长度和宽度上明显偏低,与其他两类形成鲜明对比,versicolorvirginica在部分指标上存在交叉,显示出部分相似性。

  3. 揭示特征差异:图形有效揭示了物种间的特征差异,为后续分析提供了直观依据。

2.2 雷达图

  • 采用ggiraphExtra::ggRadar 绘图

2.2.1 图形观察和代码编写的心得体会

  1. 综合表现展示:雷达图通过多边形面积展示鸢尾花数据集中每个物种在四个测量指标上的综合表现,直观呈现了物种间的特征差异。

  2. 形状与面积差异:不同物种的多边形形状和面积差异显著,setosa的多边形较为紧凑,virginica在某些指标上延伸较长,显示出更大的值。

  3. 直观对比:图形直观地展示了物种间的特征差异和相似性,便于快速识别。

3 星图和脸谱图

3.1 星图

  • 采用stars 函数,对标准化数据绘制圆弧星图

  • 需要先将四个数值变量转化为矩阵,并将Species 作为矩阵的行名;

  • 设置图例在合适位置,能完整显示;将图形分为10行。

3.1.1 图形观察和代码编写的心得体会

  1. 圆弧展示特征:星图通过圆弧展示鸢尾花数据集中每个样本在四个测量指标上的分布,圆弧长度和形状各异,直观呈现了样本间的特征差异。

  2. 圆形布局方便对比:圆形布局使得对比更加方便,不同样本的圆弧在图形中清晰可见。

  3. 揭示样本间差异:图形揭示了样本间的特征差异,为进一步分析提供了直观依据。

3.2 脸谱图

  • 采用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.2.1 图形观察和代码编写的心得体会

  1. 面部特征展示:脸谱图通过面部特征展示鸢尾花数据集中每个样本在四个测量指标上的分布,面部特征各异,直观呈现了样本间的特征差异。

  2. 类别特征集中setosa类别的脸谱图面部特征较为集中,而virginica在某些特征上更为突出,显示了类别间的差异。

  3. 有趣且直观:图形既有趣又直观,有助于快速识别样本间的区别。

4 聚类图和热图

4.1 系统聚类树状图

  • 采用factoextra::fviz_dend 函数,对标准化后数据作图;
  • 需要先将四个数值变量转化为矩阵,并将Species 作为矩阵的行名;
  • 要求分为3类,观察分类结果和Species 的差异;树状图的外观为圆形。

4.1.1 图形观察和代码编写的心得体会

  1. 层次结构展示:系统聚类树状图通过层次结构展示鸢尾花数据集中样本的相似性和差异性,圆形树状图清晰地展示了样本被分为三个主要类别。

  2. 分支长度与层次:树状图的分支长度和层次结构揭示了样本间的聚类关系,为进一步分析提供了直观依据。

  3. 直观对比类别:图形直观地展示了类别间的差异和相似性,便于快速识别。

4.1.2 K-menas聚类主成分图

  • 采用factoextra::fviz_cluster 函数,对标准化后数据作图;

  • 需要先将四个数值变量转化为矩阵,并将1:150 作为矩阵的行名;

  • 要求分为3类,类别轮廓为正态分布,观察哪些观察值比较异常。

4.1.3 图形观察和代码编写的心得体会

  1. 主成分展示聚类:K-means聚类主成分图通过第一和第二主成分展示鸢尾花数据集中样本的聚类结果,图中可以清晰地看到三个主要类别。

  2. 正态置信椭圆:正态置信椭圆展示了每个类别的分布范围,有助于识别异常值,为进一步分析提供了直观依据。

  3. 直观对比聚类效果:图形直观地展示了聚类效果,便于快速评估聚类质量。

4.2 热图

4.2.1 heatmap

  • 采用gplots::heatmap.2 函数,对原始数据绘制热力图

  • 需要先将四个数值变量转化为矩阵,并将Species 作为矩阵的行名;

  • 要求横轴和纵轴均添加聚类树状图

4.2.2 图形观察和代码编写的心得体会

  1. 颜色深浅展示数据:热图通过颜色深浅展示鸢尾花数据集中四个测量指标的分布,图中可以清晰地看到样本间的相似性和差异性。

  2. 聚类树状图辅助分析:聚类树状图在横轴和纵轴上展示了样本和指标的层次聚类结果,为进一步分析提供了直观依据。

  3. 直观展示多变量:热图在展示多变量数据时,既直观又富有信息量,便于快速识别数据特征。