R

时间:2015-11-26 21:06:15

标签: r cluster-analysis

我想使用R中的kmeans对我的定性数据进行聚类。数据代表商品ID,交易对手名称,监管机构,产品类型和错误类型。所有这些值都不是数字,我知道kmeans只适用于数值。我想基于错误类型进行聚类,并想知道哪些对手和监管机构在一起。我拥有的数据如下:

Reported_USI    Counterparty    Regulator   Product_Type    Error  Code
ABC243              ABC           CSA       InterestRate    G1234   1
ABC111              ABC           CSA       InterestRate    G1234   1
TRE567              TRE           CSA         Equity        G5689   2
YTY111              YTY           CSA         Equity        G4523   3
DEF111              DEF           CSA       InterestRate    G1234   1
CBC111              CBC           CSA       InterestRate    G5689   2
TTT111              TTT           CFTC        Credit        G4523   3
PPP111              PPP           CFTC        Credit        G5555   4
GGG111              GGG           CFTC        Credit        G5555   4
RRR111              RRR           CFTC        Credit        G0000   5
EEE111              EEE           CFTC        Credit        G0000   5
SSS111              SSS           CSA      InterestRate     G0000   5
VVV111              VVV           CSA      ForeignExchange  G1234   1
BBB111              BBB           CSA      ForeignExchange  G5555   4
NNN111              NNN           CSA      InterestRate     G4523   3

以下是代码:

cluster_file<-read.csv("Sample_clustering.csv")
cluster_file<-as.data.frame(cluster_file,row.names = NULL)
clusters<-kmeans(cluster_file[,6],4)$cluster
clusters1<-names(clusters[clusters==1])

我从1-5中给出了错误的数字。我想看看Counterparty和USI属于哪个集群,然后使用图表来可视化它。如果有人能给我一个方向,我会非常感激。我提供的数据是来自非常庞大的数据集的子集。希望我已经清楚了。谢谢。

编辑:我把代码放了。当我继续拉出与集群关联的USI的名称时,它返回了一个空值。

1 个答案:

答案 0 :(得分:1)

不要期待魔法。 kmeans不能做魔术。

执行最小二乘优化。它假设您有连续变量。

拥有数据,这是正确的方法。

根据您的数据判断 k-means是错误的工具。如果我没有弄错,你试图只在最后一列上运行k-means,它只包含你的错误代码1,2,3,4,5的随机枚举? 您期望得到什么结果?!

事实上,我不认为任何群集会在您的数据集上产生统计上合理的结果,这也可能是随机字符串......

如果你不能证明最小二乘是一个合理的&#34;优化标准和均值是您数据集的合理代表,那么您就不应该使用k-means。

在你的情况下,在1,2,3,4,5错误代码上,这显然不能起作用。