2016-08-09 5 views
-4

私はkmeansのクラスタリングメソッドの新機能です。私はPythonで1次元の文字列配列データをクラスタリングしようとします。Pythonのkmeansの文字列

expertise=[' 
Bioactive Surfaces and Scaffolds for Regenerative Medicine', 
'Drug/gene delivery science', 
'RNA nanomedicine', 'Immuno/bio/nano-engineering', 'Biomaterials', 'Nanomedicine', 
'Biobased Chemicals and Polymers', 
'Membranes Science & Technology', 
'Modeling of Infectious and Lifestyle-related Diseases'] 

km = KMeans(n_clusters=2) 
km.fit(expertise) 

と私はValueErrorをを得る:

以下

は私のデータで浮くように文字列を変換できませんでした:

ので、私は変更することができますどのような方法を文字列データに関数kmeansを適用する方法を疑問に思うかあります2次元へのデータ?

+3

文字列のクラスタとはどういう意味ですか? – polku

+0

私はkmeans上で座標データを試してみて、それは完全に動作します。だから私はストリングデータの仕事かどうかは不思議です – AAron

+0

これはまさに「文字列データ」ではなく文字列です。ハミング距離などを使ってデータを取得する方法を見つけたら、「弦のクラスタ」を作成することは可能ですが、Sklearnはそれを行うことはできません。NLTKにはそういうものがあるかもしれません。 – polku

答えて

0

まず、データをどのようにクラスタ化するかを定義する必要があります。 scikit-learnのシンプルなKMeansクラスタリングは、数字を扱うように設計されています。しかし、scikit-learnは語彙のアプローチを使用してトピックごとにドキュメントをクラスタ化するためにも使用できます。 http://scikit-learn.org/stable/auto_examples/text/document_clustering.html

0

ほとんど意味はあなたがやろうとしているものではありません。これはscipy.sparse行列の代わりに、標準numpyのアレイここに与えられているデモ例の

つを使用して特徴を抽出することによって行われます。 2つのクラスタ化されたグループはどのように見えると思いますか?

データをプロットできない場合は、データをクラスタ化できません。数値的な方法で文字列を表示する方法(たとえば、長さ、取得したいものに応じた文字の出現)を探し、この数値データをクラスタ化します。