2016-08-09 12 views
1

こんにちは、私は化学指紋に選択のn化学指紋のクラスタ

をクラスタ化しようとしています、問題は、私はので、私は13個のクラスターを持つようにしたいクラスタの番号を知っているということです私はここに

scikit

と谷本の類似性スコアに基づいた方法をkmean使用していますことは、私のコードです:

smiles = [] 
molFin = [] 
fps = [] 
np_fps = [] 

#mol["idx"] contain the name of the molecules 
for x in mol["idx"]: 
    res = cs.search(x) 
    #get the smiles code of a molecule 
    smi = res[0].smiles 

    #get the fingerprint of the molecule 
    fp = Chem.MolFromSmiles(str(smi)) 
    fp = FingerprintMols.FingerprintMol(fp) 
    fps.append(fp) 


#compute the similarity score (end up with a cross molecule matrix where each occurence correspond to the taminoto score) 

dists = [] 
nfps = len(fps) 
for i in range(0,nfps): 
    sims = DataStructs.BulkTanimotoSimilarity(fps[i],fps) 
    dists.append(sims) 

#store the value on a data frame and apply kmean 
mol_dist = pd.DataFrame(dists) 

k_means = cluster.KMeans(n_clusters=13) 
k1 = k_means.fit_predict(mol_dist) 
mol["cluster"] = k1 

#get the result 
final = mol[["idx","cluster"]] 

クラスタリングの方法で動作しているようですが、私たちは、化学指紋のためのクラスタリングを行う方法見当がつかない、我々はcを適用しなければならない代わりに指紋の上に直接光沢のアルゴリズムを教えてください?

答えて

0

私は、クラスタリングにおける問題は、適切なk個を選択する方法だと思います。問題は次のように解決される可能性があります。

  1. 適切なkクラスタ番号を決定します。あなたが得られたkクラスタと一緒に適切な機能は、あなたのデータセットとの評価をクラスタリング選択し、K-番号を持つ後https://datasciencelab.wordpress.com/2013/12/27/finding-the-k-in-k-means-clustering

  2. - あなたは は、以下のリンクを参照してください...、などエルボーなどのいくつかのメソッドを使用することができます。

+0

私は地面の真実を持っていると私はちょうどこのGTとの化学構造のクラスタリングを比較したいので、私は、私は比較を行うために必要なクラスタの番号を知って、私はちょうどそれを行うには良い練習があるかどうかを知りたいです化学構造のためのこの方法 –