2017-11-09 27 views
0

kmeansクラスタリングにidx = kmeans(kddcup,5);を使用しています。 145586件の5つのクラスタにkddcup99の41の機能、データベースの10%の部分集合を持つレコードが、MATLABのr2017aこのエラーを与える:K平均クラスタリングKDDcup99データセットエラー

Kmeans cannot accept complex data!

Iは、第42回ことを意味する、42列の代わりに41を有しているMATLABでデータベースをロード列は行のタイプ(攻撃、正常、...)のためのものであり、機能ではありません。42行目を保持するか削除するかはわかりません。

私の仕事が正しいかどうか、そのコードに間違いがあるかどうかわかりません。

+0

したがって、42 '列は名目上の変数ですか? Kmeansはそれで動作しません。 –

+0

KDDcup99データセットの使用を停止します。これは悪いです。 –

答えて

0

IDX =関数kmeans(X、k)はsee documentationはあなたがkmeanskddcupの第42列を渡していないする必要がありますX.

Data, specified as a numeric matrix. The rows of X correspond to observations, and the columns correspond to variables.

If X is a numeric vector, then kmeans treats it as an n-by-1 data matrix, regardless of its orientation.

Data Types: single | double

のための数値入力が必要です。

kddcupには(攻撃、通常、...)が含まれていると言われているので、char?したがって、どのデータ型がkddcupですか?

42番目の列を取り除く必要がありますが、数値行列に変換されていない場合は、可能であれば数値行列に変換される可能性があります。

+0

ありがとうございます。たとえば、これはデータベースの1行です:0 \t/tcp/http/SF /181 \t/5450/0/0 \t/0/0/0/1/0 \t/0/0/0/0/0 \t/0/0/0/0/8 \t /8/0.00/0.00/0.00/0.00 \t /1.00/0.00/0.00/9/9/1.00/0.00/0.11/0.00/0.00/0.00/ 0.00/0.00 /正常。ウィット41のフィーチャーとデータベースは、そのような145586レコードを持っています。研究のための私の基本記事、kmeansのクラスタリングを使用し、データベースをクラスタリングした後、145586から116266に縮小し、それは仕事のためのコンパクトなデータセットですが、私は彼らがそれを行う方法はわかりません。 5クラスタに、私を助けてください –

関連する問題