R中的K均值聚类

时间:2017-03-15 08:28:59

标签: r k-means

我是R的初学者,我跟着this tutorial进行K-means聚类。但是,我试图在真实数据上运行此算法。我选择了:http://exoplanet.eu/catalog/

我已加载数据:

d <- read.csv2(
    "exoplanet.eu_catalog.csv",
    header = TRUE,
    sep = ","
)

使用此代码:

plot(
    x = log(as.numeric(as.character(d$semi_major_axis))),
    y = log(as.numeric(as.character(d$mass))),
    xlab = "Star-exoplanet distance (log(UA))",
    ylab = "Mass of exoplanets (log(M[Jupiter]))"
)

我有以下图片:

Graphic

我想在此图形上运行K-means聚类算法以显示三个颜色的聚类,但我不知道如何在R中进行。我想我必须从以下开始:

y = log(as.numeric(as.character(d$mass)))
y <- y[!is.na(y)]
x = log(as.numeric(as.character(d$semi_major_axis)))
x <- x[!is.na(x)]

但我不知道如何将数据格式化为矩阵以运行kmeans(matrix, 3, nstart = 20)。有什么线索吗?

1 个答案:

答案 0 :(得分:0)

因为您使用

阅读了文件
d <- read.csv2("exoplanet.eu_catalog.csv",
header = TRUE,
sep = ",")

您的数据采用数据框格式,您需要转换为矩阵

使用此代码将数据框转换为矩阵

inMatrixForm <- data.matrix(d)