R 中的 caret 包旨在简化应用机器学习的过程。
解决数据问题的关键在于理解您拥有的数据。您可以通过数据可视化快速总结属性来做到这一点。
R 中有很多用于汇总数据的包和函数,这可能会让人不知所措。对于应用机器学习而言,caret 包提供了一些关键工具,可以快速为您提供数据的摘要。
在本帖中,您将发现 caret R 包中可用的数据可视化工具。
使用我的新书 Machine Learning Mastery With R 快速启动您的项目,其中包含分步教程和所有示例的R 源代码文件。
让我们开始吧。
Caret 包
Caret 包主要用于简化模型训练、模型性能评估和调优。它还具有许多方便的数据可视化工具,可以快速让您了解正在处理的数据。
在本文中,我们将介绍以下 4 种数据可视化方法:
- 散点图矩阵:用于在成对图中比较实值属性的分布。
- 密度图:用于比较属性的概率密度函数。
- 箱线图:用于汇总和展示属性的分布情况。
每个示例都是独立的,因此您可以将其复制并粘贴到您自己的项目中,并根据您的需求进行调整。所有示例都将使用 R 自带的鸢尾花数据集。这是一个分类数据集,提供了三种鸢尾花及其花瓣和萼片测量值(厘米)的 150 个观测值。
需要更多关于R机器学习的帮助吗?
参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
散点图矩阵
散点图矩阵显示一个散点图网格,其中每个属性都与其他所有属性进行绘制。它可以按列或行读取,每个图都会出现两次,允许您从两个角度考虑空间关系。
比仅绘制散点图更进一步的是,还可以包含类别信息。这通常通过按类别值给每个散点图中的点着色来实现。
下面的示例显示了鸢尾花数据集的散点图矩阵,包含所有四个属性的成对散点图,并且散点图中的点按类别属性着色。
1 2 3 4 5 6 |
# 加载库 library(caret) # 加载数据 data(iris) # 所有 4 个属性的成对图,点按类别着色 featurePlot(x=iris[,1:4], y=iris[,5], plot="pairs", auto.key=list(columns=3)) |
密度图
密度估计图(简称密度图)用于总结数据的分布。与直方图类似,它总结了属性值与观测数量之间的关系,但不是频率,而是将关系总结为连续的概率密度函数 (PDF)。这是给定观测值具有给定值的概率。
通过按观测值的类别值分隔每个属性,可以进一步改进密度图。这有助于理解单属性与类别值之间的关系,并突出显示将属性值区分到类别的有用结构,例如线性可分性。
下面的示例显示了鸢尾花数据集的密度图,展示了每个属性与每个类别值关系的 PDF。
1 2 3 4 5 6 |
# 加载库 library(caret) # 加载数据 data(iris) # 按类别值划分的每个属性的密度图 featurePlot(x=iris[,1:4], y=iris[,5], plot="density", scales=list(x=list(relation="free"), y=list(relation="free")), auto.key=list(columns=3)) |
箱线图
箱线图(简称箱图)通过显示第 25 和第 75 百分位数的箱体、第 50 百分位数(中位数)的箱体内的线以及均值的点来总结给定属性的分布。须线显示箱体高度的 1.5 倍(称为四分位距),这表示数据的预期范围,而超出须线的任何数据都被假定为异常值并用点标记。
同样,每个属性都可以根据其观察到的类别值进行汇总,让您了解属性值与类别值之间的关系,这与密度图非常相似。
下面的示例显示了鸢尾花数据集的箱线图,为给定属性的每个类别值显示一个单独的箱体。
1 2 3 4 5 6 |
# 加载库 library(caret) # 加载数据 data(iris) # 每个属性按类别值的箱线图 featurePlot(x=iris[,1:4], y=iris[,5], plot="box", scales=list(x=list(relation="free"), y=list(relation="free")), auto.key=list(columns=3)) |
总结
在本帖中,您了解了使用 caret R 包的三个快速数据可视化方法,这些方法可以帮助您理解您的分类数据集。
每个示例都是独立的,您可以将其复制并粘贴到您自己的项目中,并针对您的问题进行调整。
感谢这篇文章,我发现它非常有帮助。对于大型数据集,您可能希望移除密度图中的 rug(pch = “”)以加快绘图速度。
我有一个关于变量顺序/序列的问题。我能否让它们按照属性在数据集中存储的顺序出现?
我解决了:使用了 lattice 图形的属性来更改 featurePlot() 函数。