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

Author

221527135徐锦辉

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

  • 折线图清晰展示不同id在4个指标上的数值变化,Species颜色分组突显类别差异。

  • geom_point标记数据位置,geom_line连接趋势,避免纯折线的视觉单调性。

  • 横向多行图例(nrow=8)节省空间,灰色背景(fill="grey90")提升可读性。

  • geom_linegeom_point,避免点被线遮挡。

2.2 雷达图

  • 采用ggiraphExtra::ggRadar 绘图

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

3 星图和脸谱图

3.1 星图

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

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

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

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

  • 圆弧星图展示 iris 标准化特征,每样本一个星图,清晰对比三种鸢尾花的特征分布。

  • stars 函数快速生成圆弧星图,适合多变量展示

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

  • 脸谱图将 iris 三个 Species 的四特征均值(标准化后)映射为面部特征,直观展示类别差异。

  • faces 映射特征到脸谱,face.type = 1 经典风格,mfrow = c(1, 12) 满足布局。

4 聚类图和热图

4.1 系统聚类树状图

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

       
cluster setosa versicolor virginica
      1     49          0         0
      2      1         27         2
      3      0         23        48

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

  • 圆形树状图展示 iris 150 个样本(Species 行名)的层次聚类(欧几里得距离,Ward.D2,3 类)。

4.2 K-menas聚类主成分图

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

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

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

   
    setosa versicolor virginica
  1     50          0         0
  2      0         39        14
  3      0         11        36

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

  • fviz_cluster 展示 K-means 聚类(3 类),150 个样本(行名 1:150)投影二维,ellipse.type = “norm” 划正态轮廓

  • Set1 美观,repel 和 labelsize 优化标签。

4.3 热图

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

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

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

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

  • 热力图展示 iris 150 个样本(Species 行名)在四特征上的原始值,颜色从蓝(低)到红(高)。