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 |