2017-05-14 2 views
0

Ich versuche, einen K-Mittelwert-Algorithmus durchzuführen, um die niedrigsten Kosten zu erhalten, die zu einer KxN-Matrix führen würden. Der Wert von K wird durch die Anzahl der Cluster bestimmt, die der Algorithmus mit optimalen Kosten erstellt. Zum Beispiel würde K = 2 2 Cluster (oder 2 Zentroide) implizieren, während N die Anzahl der Features ist. Der K-Mittelwert wird in einer Schleife für K = 1 bis 10 durchlaufen, und die Schleife stoppt, wenn die besten optimalen Kosten für einen bestimmten Wert von K erhalten werden. Wenn beispielsweise optimale Kosten für K = 2 erhalten werden, würde der zurückgegebene Schwerpunkt sein eine 2xN-Matrix. Ich möchte alle von der Schleife zurückgegebenen Zentroide in einer Liste speichern. Bitte beachten Sie, dass sich in jedem Inkrement der Schleife der Wert von K um k = K + 1 ändern würde. Daher würde mein zurückgegebener Zentroid die Größe 1xN, 2xN, 3xN haben.
Wie dies in eine Liste zu speichern, so dass ich so etwas wie diese bekommen: -Erstellen einer Liste von (kxn) Matrix

List= [[10,12,13], [[10,20,30],[1,2,3]], [[5,6,9],[4,12,20],[40,50,60]],... 

Mit jeder Schleife kehre ich eine KXN Matrix, die ich es in eine Liste gespeichert werden soll. Ich möchte später auf die Liste zugreifen, sagen wir List [i], um die KxN-Matrix abzurufen. Ich arbeite meistens mit numpy. irgendwelche Vorschläge wären eine große Hilfe.

+0

Diese Frage ist zu weit. Bitte denken Sie daran, es zu bearbeiten, Sie haben keine spezifische Frage zu einem bestimmten Problem gestellt. – snb

+0

Ich gab eine Erklärung, warum ich eine KxN-Matrix in einer Liste speichern muss, in der K variabel ist, während N konstant ist. Entschuldigung, wenn es sich breit und allgemein anhört. Unter dem Strich muss ich KxN-Matrizen in einer Liste speichern – sunny

+0

Dann sollten Sie diese Frage stellen (die an sich ein Duplikat ist), überprüfen Sie die verwandten Fragen, Ihre Antwort wird da sein. Stellen Sie auch sicher, dass Sie das nächste Mal Ihren Versuch zeigen, gerade jetzt sieht es so aus, als würden Sie uns bitten, alles für Sie zu tun. – snb

Antwort

0
N = 5 
lst = [] 
for K in range(1,11): 
    lst.append(np.empty((K,N)))