PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

本文档使用{ggplot2}和解释了 PCA、聚类、LFDA 和 MDS 相关绘图{ggfortify}

绘制 PCA(主成分分析)

{ggfortify}让我们{ggplot2}知道如何解释 PCA 对象。加载后{ggfortify},您可以ggplot2::autoplotstats::prcompstats::princomp对象使用函数。

library(ggfortify)
df <- iris[1:4]
pca_res <- prcomp(df, scale. = TRUE)

autoplot(pca_res)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

PCA 结果应仅包含数值。如果要通过原始数据具有的非数字值进行着色,请使用data关键字传递原始数据,然后通过colour关键字指定列名。使用help(autoplot.prcomp)(或help(autoplot.*)用于任何其他对象)检查可用选项。

autoplot(pca_res, data = iris, colour = 'Species')

 

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

 

传递使用label = TRUE绘制每个数据标签rownames

autoplot(pca_res, data = iris, colour = 'Species', label = TRUE, label.size = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

通过shape = FALSE使情节没有分。在这种情况下,label除非另有说明,否则将打开。

autoplot(pca_res, data = iris, colour = 'Species', shape = FALSE, label.size = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

 

通过loadings = TRUE绘制特征向量。

autoplot(pca_res, data = iris, colour = 'Species', loadings = TRUE)

 PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

您可以附加特征向量标签并更改一些选项。

autoplot(pca_res, data = iris, colour = 'Species',
         loadings = TRUE, loadings.colour = 'blue',
         loadings.label = TRUE, loadings.label.size = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

默认情况下,每个组件的缩放比例都与标准相同biplot。您可以通过指定禁用缩放scale = 0

autoplot(pca_res, scale = 0)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘图因子分析

{ggfortify}stats::factanal以与 PCA 相同的方式支持对象。可用选项与 PCA 相同。

重要提示您必须scores在调用计算factanal疮口时指定选项(默认scores = NULL)。否则,绘图将失败。

d.factanal <- factanal(state.x77, factors = 3, scores = 'regression')
autoplot(d.factanal, data = state.x77, colour = 'Income')

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

autoplot(d.factanal, label = TRUE, label.size = 3,
         loadings = TRUE, loadings.label = TRUE, loadings.label.size  = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘制 K 均值

{ggfortify}支持stats::kmeans类。您必须autoplot通过data关键字显式地将原始数据传递给函数。因为kmeans对象不存储原始数据。结果将按分类聚类自动着色。

set.seed(1)
autoplot(kmeans(USArrests, 3), data = USArrests)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

autoplot(kmeans(USArrests, 3), data = USArrests, label = TRUE, label.size = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘制集群包

{ggfortify}支持cluster::claracluster::fanny,cluster::pam以及cluster::silhouette类。因为这些实例应该在其属性中包含原始数据,所以不需要显式传递原始数据。

library(cluster)
autoplot(clara(iris[-5], 3))

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

指定frame = TRUEautoplotstats::kmeanscluster::*为每个群集平凸形的。

autoplot(fanny(iris[-5], 3), frame = TRUE)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

如果需要概率椭圆,{ggplot2}则需要 1.0.0 或更高版本。通过选项指定ggplot2::stat_ellipse'stype关键字中支持的任何内容frame.type

autoplot(pam(iris[-5], 3), frame = TRUE, frame.type = 'norm')

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

如果您想要一个轮廓图,请将一个轮廓对象传递给autoplot函数。

autoplot(silhouette(pam(iris[-5], 3L)))

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

有关轮廓图及其使用方法的更多信息,请参阅 基础 R 示例、 scikit-learn 示例和 原始论文

使用{lfda}包绘制局部 Fisher 判别分析

{lfda}包支持一组本地Fisher判别分析方法。您可以使用autoplot与 PCA 相同的方式绘制分析结果。

library(lfda)

# Local Fisher Discriminant Analysis (LFDA)
model <- lfda(iris[-5], iris[, 5], r = 3, metric="plain")
autoplot(model, data = iris, frame = TRUE, frame.colour = 'Species')

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

# Semi-supervised Local Fisher Discriminant Analysis (SELF)
model <- self(iris[-5], iris[, 5], beta = 0.1, r = 3, metric="plain")
autoplot(model, data = iris, frame = TRUE, frame.colour = 'Species')

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘制多维缩放

绘图前

即使 MDS 函数返回matrixor list(非特定类),{ggfortify}也可以从list属性推断背景类并执行autoplot.

注意matrix不支持推断自。

NOTE {ggfortify}可以将stats::dist实例绘制为热图。

autoplot(eurodist)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘制经典(公制)多维缩放

stats::cmdscale执行 Classical MDS 并返回点坐标为matrix,因此autoplot在这种情况下您不能使用。然而,无论是eig = TRUEadd = True还是x.ret = True被指定,stats::cmdscale返回list代替matrix。在这些情况下,{ggfortify}可以推断如何通过autoplot. 请参阅以help(cmdscale)检查这些选项是什么。

autoplot(cmdscale(eurodist, eig = TRUE))

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

指定label = TRUE绘制标签。

autoplot(cmdscale(eurodist, eig = TRUE), label = TRUE, label.size = 3)

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

绘制非度量多维缩放

MASS::isoMDSMASS::sammon执行非度量 MDS 并返回list包含点坐标。因此,autoplot可以使用。

注意在背景上,autoplot.matrix被调用以绘制 MDS。请参阅help(autoplot.matrix)以检查可用选项。

library(MASS)
autoplot(isoMDS(eurodist), colour = 'orange', size = 4, shape = 3)
## initial  value 7.505733 
## final  value 7.505688 
## converged

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

通过shape = FALSE使情节没有分。在这种情况下,label除非另有说明,否则将打开。

autoplot(sammon(eurodist), shape = FALSE, label.colour = 'blue', label.size = 3)
## Initial stress        : 0.01705
## stress after  10 iters: 0.00951, magic = 0.500
## stress after  20 iters: 0.00941, magic = 0.500

PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

 

上一篇:机器学习调用代码


下一篇:去掉facebook twitter等网站的登陆提醒代码