K-means聚类KDDcup99数据集错误

时间:2017-11-09 18:52:18

标签: matlab k-means

我正在使用idx = kmeans(kddcup,5);进行kmeans聚类。 145586条记录包含41个kddcup99特性,10%数据库子集分为5个集群,但MATLAB r2017a给出了这个错误:

  

Kmeans无法接受复杂的数据!

我在MATLAB中加载了一个有42列而不是41列的数据库,这意味着第42列用于行类型(攻击,正常,...)并且不是一个功能,我不知道是否我应保留第42行或删除它。

我不知道我的工作是否正确或该代码是否有错误。

1 个答案:

答案 0 :(得分:0)

idx = kmeans(X,k)see documentation需要X的数字输入。

  

数据,指定为数字矩阵。 X行对应   观察,列对应变量。

     

如果X是数字向量,则kmeans将其视为n-by-1数据   矩阵,无论其方向如何。

     

数据类型:单个|双

您无需将kddcup的第42列传递给kmeans

既然你说kddcup包含(攻击,正常,...)那些char?那么,什么数据类型是kddcup

无论是否需要剥离第42列,如果还没有,可能会转换为数字矩阵。