第六章 样本相似性可视化课堂练习
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 显示的数值范围0-2可能是标准化后的结果,或者是某个特定品种/样本的值;原始iris数据集中这些特征的实际范围更大(如Petal.Length通常在1-7cm之间)
2.3 雷达图
- 采用
ggiraphExtra::ggRadar绘图
2.3.1 图形观察和代码编写的心得体会
#图形特征解读: 雷达图展示了三个品种在四个特征上的”轮廓” 每个轴代表一个花部特征,数值范围0-6 不同颜色的线代表不同品种的特征组合 品种差异观察: setosa:通常在Sepal.Width轴上突出,Petal相关特征较小 versicolor:各特征值中等,图形较为均衡 virginica:Petal相关特征明显较大,图形轮廓最宽广 -
3 星图和脸谱图
3.1 星图
采用
stars函数,对标准化数据绘制圆弧星图需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名;设置图例在合适位置,能完整显示;将图形分为10行。
3.1.1 图形观察和代码编写的心得体会
变量关系:在观察iris数据集图形时,可以注意到花瓣长度和花瓣宽度通常有较强的正相关关系,而萼片和花瓣特征之间的关系可能因鸢尾花品种不同而有所差异。 类别区分:通过散点图矩阵或成对散点图,可以清晰看到setosa、versicolor和virginica三个品种在这些特征上的分布差异,特别是setosa通常与其他两个品种有较明显区分。 分布特征:箱线图可以展示每个品种在各特征上的分布范围和中位数位置,有助于理解各品种的特性。 -
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 图形观察和代码编写的心得体会
3.3 setosa品种最容易与其他两个品种区分;versicolor和virginica在某些特征上有重叠,分类难度较大;花瓣特征(Petal.Length和Petal.Width)通常比萼片特征对分类更有区分力;多变量组合(如Petal.Length + Petal.Width)比单变量分类效果更好
4 聚类图和热图
4.1 系统聚类树状图
- 采用
factoextra::fviz_dend函数,对标准化后数据作图; - 需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名; - 要求分为3类,观察分类结果和
Species的差异;树状图的外观为圆形。
4.1.1 图形观察和代码编写的心得体会
数值范围特征: 控制台显示了0、10、20三个数值,可能代表某个变量的取值或坐标轴刻度 这种等距间隔表明观察的数据可能具有均匀或线性分布特征 图形类型推测: 提到”图形观察数据分布特征”,结合简单数值输出,可能是直方图、箱线图或散点图 数值间距规则,更可能是坐标轴刻度而非原始数据点 数据规模推断: 从0到20的范围看,可能是中等规模数据集的可视化 若为坐标轴,可能表示某个度量指标的范围 这次简短的观察提醒我:即使是基础的可视化,也能揭示数据的核心特征。在实际分析中,应该:先观察整体分布形态,检查数据的集中趋势和离散程度,注意可能的异常值或特殊模式,根据初步观察选择更深入的分析方法,完整的数据分析应该将图形观察与统计检验相结合,才能得出可靠的结论。
4.2 K-menas聚类主成分图
采用
factoextra::fviz_cluster函数,对标准化后数据作图;需要先将四个数值变量转化为矩阵,并将
1:150作为矩阵的行名;要求分为3类,类别轮廓为正态分布,观察哪些观察值比较异常。
4.2.1 图形观察和代码编写的心得体会
降维可视化: 图中显示”Dimi (74%)“和”Dimi (24.8%)“,这很可能是PCA降维后两个主成分的方差解释率 第一主成分解释了74%的方差,第二主成分解释了24.8%,两者合计达到98.8%,说明降维效果很好 聚类分布: 虽然具体图形未展示,但从上下文可以推测是K-means聚类在降维空间的可视化 分成3类的设定与鸢尾花数据集(Setosa, Versicolor, Virginica)的自然分类吻合
4.3 这次实践让我深刻认识到:优秀的分析需要将统计方法与可视化技术有机结合。K-means虽然简单,但配合适当的预处理和可视化,能产生极具洞察力的结果。同时,交互式可视化不仅提升了呈现效果,更成为了分析过程中不可或缺的探索工具。
4.4 热图
采用
gplots::heatmap.2函数,对原始数据绘制热力图需要先将四个数值变量转化为矩阵,并将
Species作为矩阵的行名;要求横轴和纵轴均添加聚类树状图
4.4.1 图形观察和代码编写的心得体会
图形观察数据分布特征: 数值部分显示”1 1 1”和”2 4 6”,可能表示某个变量的频数分布或聚类中心 这种分布表明数据存在明显的分组特征 变量信息: 涉及4个特征变量(Sepal.Length、PeialWidth、SepalWidth、Peial.Length) 注意”PeialWidth”和”Peial.Length”可能是”Petal.Width”和”Petal.Length”的拼写错误 分类标签: 包含3种鸢尾花种类(Setosa、Versicolo、Virginica) “Versicolo”应为”Versicolor”的标准拼写 各类别样本数量不等,Setosa出现5次,Versicolo/Versicolor出现6次,Virginica出现3次
通过这次分析,我深刻体会到数据可视化不仅是技术实现,更是数据理解的桥梁。好的图形能直观揭示数据内在结构,而严谨的代码则是可靠分析的基础。在实际工作中,数据质量检查和可视化探索应占分析过程的相当比重。