【问题标题】:K-means clustering KDDcup99 data set errorK-means聚类KDDcup99数据集错误
【发布时间】:2018-04-22 21:32:56
【问题描述】:

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

Kmeans 不能接受复杂的数据!

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

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

【问题讨论】:

  • 那么 42' 列是名义变量吗? Kmeans 不适用。
  • 停止使用 KDDcup99 数据集。这很糟糕。

标签: matlab k-means


【解决方案1】:

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

数据,指定为数值矩阵。 X 的行对应于 观测值,列对应变量。

如果 X 是数值向量,则 kmeans 将其视为 n×1 数据 矩阵,不管它的方向。

数据类型:单个 |双重

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

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

不管它是否需要剥离第 42 列,如果还没有,则可能转换为数字矩阵。

【讨论】:

  • 谢谢亲爱的:例如这是1行数据库:0 /tcp/http/SF /181 /5450/0/0 /0/0/0/1/0 /0/0 /0/0/0 /0/0/0/0/8 /8/0.00/0.00/0.00/0.00 /1.00/0.00/0.00/9/9/1.00/0.00/0.11/0.00/0.00/0.00/0.00 /0.00/正常。 whit 41 特征和数据库有 145586 条这样的记录。我的基础文章用于研究,使用 kmeans 聚类并说在聚类后数据库从 145586 减少到 116266,它是工作的紧凑数据集,但我不知道他们是如何做到的,在文章中说 dat 因为数据库有 5 个类,我们对数据进行聚类分成5个集群,请帮帮我
猜你喜欢
  • 2013-02-07
  • 2018-02-10
  • 2015-04-11
  • 1970-01-01
  • 2020-10-01
  • 2011-08-13
  • 2013-08-08
  • 2013-02-14
  • 2018-01-14
相关资源
最近更新 更多