Statistiques
| Branche: | Tag: | Révision :

dockonsurf / modules / clustering.py @ 86112fec

Historique | Voir | Annoter | Télécharger (962 octet)

1 86112fec Marti Aliod Carles
#!/usr/bin/env python
2 86112fec Marti Aliod Carles
# -*- coding: utf-8 -*-
3 86112fec Marti Aliod Carles
4 86112fec Marti Aliod Carles
import sys
5 86112fec Marti Aliod Carles
import numpy as np
6 86112fec Marti Aliod Carles
import sklearn
7 86112fec Marti Aliod Carles
from sklearn import cluster
8 86112fec Marti Aliod Carles
from sklearn.cluster import AffinityPropagation
9 86112fec Marti Aliod Carles
10 86112fec Marti Aliod Carles
matrice = sys.argv[1]
11 86112fec Marti Aliod Carles
12 86112fec Marti Aliod Carles
X = np.loadtxt(matrice) # lecture de la matrice à partir d'un fichier
13 86112fec Marti Aliod Carles
14 86112fec Marti Aliod Carles
if len(X.shape)==0:
15 86112fec Marti Aliod Carles
    print 'Number of clusters: 1'
16 86112fec Marti Aliod Carles
    print 'Cluster centers:'
17 86112fec Marti Aliod Carles
    print '0'
18 86112fec Marti Aliod Carles
    print 'Cluster groups:'
19 86112fec Marti Aliod Carles
    print '0'
20 86112fec Marti Aliod Carles
21 86112fec Marti Aliod Carles
else:
22 86112fec Marti Aliod Carles
    af = AffinityPropagation(affinity='precomputed').fit(X)
23 86112fec Marti Aliod Carles
24 86112fec Marti Aliod Carles
    cluster_centers_indices = af.cluster_centers_indices_
25 86112fec Marti Aliod Carles
    labels = af.labels_
26 86112fec Marti Aliod Carles
    n_clusters_ = len(cluster_centers_indices)
27 86112fec Marti Aliod Carles
28 86112fec Marti Aliod Carles
29 86112fec Marti Aliod Carles
    print('Number of clusters: %d' % n_clusters_)
30 86112fec Marti Aliod Carles
    print 'Cluster centers:' 
31 86112fec Marti Aliod Carles
    print cluster_centers_indices
32 86112fec Marti Aliod Carles
33 86112fec Marti Aliod Carles
    def ClusterIndicesNumpy(clustNum, labels_array): #numpy 
34 86112fec Marti Aliod Carles
            return np.where(labels_array == clustNum)[0]
35 86112fec Marti Aliod Carles
36 86112fec Marti Aliod Carles
    print 'Cluster groups:'
37 86112fec Marti Aliod Carles
38 86112fec Marti Aliod Carles
    for i in range(0,n_clusters_) :
39 86112fec Marti Aliod Carles
        a = ClusterIndicesNumpy(i, labels)
40 86112fec Marti Aliod Carles
        print a
41 86112fec Marti Aliod Carles