Hierarchisches clustering von Zeitreihen in Python-scipy/numpy/pandas?

Ich habe einen DataFrame mit einigen Zeitreihen. Ich erstellte eine Korrelationsmatrix aus jener Zeit, der Serie und ich würde gerne zum erstellen einer hierarchischen clustering auf dieser Korrelations-matrix. Wie kann ich das tun?

#
# let't pretend this DataFrame contains some time series
#
df = pd.DataFrame((np.random.randn(150)).reshape(10,15))

         0         1         2               13           14    
0  0.369746  0.093882 -0.656211 ....  -0.596936  0  0.095960  
1  0.641457  1.120405 -0.468639 ....  -2.070802  1 -1.254159  
2  0.360756 -0.222554  0.367893 ....   0.566299  2  0.932898  
3  0.733130  0.666270 -0.624351 ....  -0.377017  3  0.340360  
4 -0.263967  1.143818  0.554947 ....   0.220406  4 -0.585353  
5  0.082964 -0.311667  1.323161 ....  -1.190672  5 -0.828039  
6  0.173685  0.719818 -0.881854 ....  -1.048066  6 -1.388395  
7  0.118301 -0.268945  0.909022 ....   0.094301  7  1.111376  
8 -1.341381  0.599435 -0.318425 ....   1.053272  8 -0.763416  
9 -1.146692  0.453125  0.150241 ....   0.454584  9  1.506249

#
# I can create a correlation matrix like this 
#
correlation_matrix = df.corr(method='spearman')

          0         1  ...          13         14 
0   1.000000 -0.139394 ...    0.090909   0.309091 
1  -0.139394  1.000000 ...   -0.636364   0.115152 
2   0.175758  0.733333 ...   -0.515152  -0.163636 
3   0.309091  0.163636 ...   -0.248485  -0.127273 
4   0.600000 -0.103030 ...    0.151515   0.175758 
5  -0.078788  0.054545 ...   -0.296970  -0.187879 
6  -0.175758 -0.272727 ...    0.151515  -0.139394 
7   0.163636 -0.042424 ...    0.187879   0.248485 
8   0.030303  0.915152 ...   -0.430303   0.296970 
9  -0.696970  0.321212 ...   -0.236364  -0.151515 
10  0.163636  0.115152 ...   -0.163636   0.381818 
11  0.321212 -0.236364 ...   -0.127273  -0.224242 
12 -0.054545 -0.200000 ...    0.078788   0.236364 
13  0.090909 -0.636364 ...    1.000000   0.381818 
14  0.309091  0.115152 ...    0.381818   1.000000 

Nun, wie bauen die Hierarchischen clustering auf dieser matrix?

  • Ich denke, diese Frage ist teilweise verwandt stackoverflow.com/questions/2907919/..., aber ich habe nicht ganz verstanden, die Antwort
  • Sie müssen um genauer zu sein über das, was Sie Fragen, die nicht beantwortet, die andere Frage.
  • Danke BrenBarn. Lesen Sie die Antwort der verlinkten Frage, ist das richtig, wenn ich "Z=Verknüpfung(correlation_matrix, 'single', 'Korrelations -')" um das clustering?
  • Wie die Antwort auf die andere Frage, die sagt, Sie würde anrufen linkage auf Ihre ursprüngliche DF, nicht auf die Korrelationsmatrix. (Durch die übergabe der 'correlation' argument, Sie sagen, dass die Korrelation Metrik als Teil der Berechnung der Cluster.)
  • Dank BrenBarn, jetzt macht es Sinn.
InformationsquelleAutor luca | 2016-01-22
Schreibe einen Kommentar