/ / Klastrovanie v Matlabe - matlab, zlúčenie, klastrovanie, klaster-analýza, prepojenie

Klastrovanie v systéme Matlab - matlab, zlúčenie, klastrové výpočty, analýza klastrov, prepojenie

Ahoj, snažím sa klastrovať pomocou prepojenia (). Tu je kód, ktorý sa snažím ..

 Y = pdist(data);
Z = linkage(Y);
T = cluster(Z,"maxclust",4096);

Dostávam chybu nasledovne

The number of elements exceeds the maximum allowed size in
MATLAB.
Error in ==> linkage at 135
Z = linkagemex(Y,method);

veľkosť údajov je 56710 * 128. Ako môžem použiť kód na malé kúsky údajov a potom optimálne zlúčiť tieto zoskupenia? Alebo akékoľvek iné riešenie problému.

odpovede:

0 pre odpoveď č. 1

Matlab pravdepodobne nedokáže zoskupiť týchto veľa objektov s týmto algoritmom.

S najväčšou pravdepodobnosťou používajú vo svojich maticiach vzdialenostiimplementácie. Matica vzdialeností pre objekty 56710 potrebuje 56710 * 56709/2 = 1 607 983 695 záznamov alebo približne 12 GB pamäte RAM; s najväčšou pravdepodobnosťou je potrebná aj jeho pracovná kópia. Je pravdepodobné, že predvolené dátové štruktúry Matlabu nie sú pripravené zvládnuť toto množstvo údajov (a vy nechcete čakať ani na dokončenie algoritmu; pravdepodobne to je dôvod, prečo „umožňujú“ iba určité množstvo).

Skúste použiť podmnožinu a pozrite sa, ako dobre sa prispôsobuje. Ak použijete 1 000 prípadov, funguje to? Ako dlho trvá výpočet? Ak sa zvýšite na 2 000, o koľko dlhšie to trvá?