2017-01-01 8 views
0

2つの密行列(titlepara)があります。私は親和性伝播アルゴリズムを使用してそれらをクラスター化してから、クラスターをプロットしたいと思います。2つのフィーチャとプロット結果のクラスタ

私は次のコードを書いています。これらのコードは、1つの機能に基づいています。どのようにこれを両方の機能のクラスターに適応させ、結果をプロットすることができますか?

import os 
import time 
import string 
import pickle 
import matplotlib.pyplot as plt 
from sklearn.cluster import AffinityPropagation 
from sklearn import metrics 
import matplotlib.pyplot as plt 
from itertools import cycle 

#from sklearn.ensemble import RandomForestClassifier 

#Opens and stores preprocessed data. 
filepath = '...' 
with open((filepath + 'para.dat'), 'rb') as infile: 
    para = pickle.load(infile) 
with open(filepath + 'title.dat', 'rb') as infile: 
    title = pickle.load(infile) 
with open(filepath + 'y.dat', 'rb') as infile: 
    y = pickle.load(infile) 

af = AffinityPropagation().fit(para) 
cluster_centers_indices = af.cluster_centers_indices_ 
labels = af.labels_ 
n_clusters_= len(cluster_centers_indices) 

これは、データセット全体がクラスタとクラスタの重心は、訓練データセット代表を生成するトレーニングデータセットが形成されるIは、クラスタリングにより、クエリを実装するためにこれを使用してい能動学習アプローチの一部でありますデータセット全体

答えて

0

無限に多くの方法がありますが(もちろん有限数の結果のみ)、最適な結果がより正確である必要があります。

はたとえば、あなたが

alpha * para + (1 - alpha) * title 
+0

目的を明確にするために編集した質問があります。 – user7347576

+0

この場合、それらは等しく重み付けされていませんか? – user7347576

+0

これはおそらく比較できないため、アルファを0.5に設定しても同じ影響はありません。 –

0

に親和性の伝播を適用することができます彼らはすべて一緒にあなたができる一つの方法をクラスタ化することができるようにあなたが一つの大きな配列にあなたが持っている配列を結合されてやりたいです今、彼らが組み合わされていることを、彼らは組み合わせ、それらの中心を見つけるために、クラスタ化することができます

X = np.append(title, para, axis =0) 
af = AffinityPropagation().fit(X) 

:それはnumphyのアペンドライブラリExzampleを使用することです。

関連する問題