Am folosit statistica GAP pentru a estima k clustere în R. Cu toate acestea, nu sunt sigur dacă îl interpretez bine.
Din graficul de mai sus presupun că ar trebui să folosesc 3 clustere.
Din al doilea complot ar trebui să aleg 6 clustere. Este o interpretare corectă a statisticii GAP?
Aș fi recunoscător pentru orice explicație.
Comentarii
Răspuns
Pentru a obține un cluster ideal, ar trebui să selectați $ k $ astfel încât să maximizați statistica decalajului. Iată exemplul dat de Tibshirani și colab. (2001) în lucrarea lor, complotul format din date artificiale cu 2 clustere. După cum puteți vedea, 2 este în mod clar $ k $ ideal, deoarece statistica decalajului este maximizată la $ k = 2 $:
Cu toate acestea , în multe seturi de date din lumea reală, clusterele nu sunt la fel de bine definite și dorim să putem echilibra maximizarea statisticii decalajului cu parsimonia modelului. Caz la punct: prima imagine a OP. Dacă maximizăm statistica decalajului singuri , atunci ar trebui să alegem modelul cu 30 de clustere (sau chiar mai multe!). Presupunând că acel complot va continua să crească, desigur, rezultatele sunt mai puțin utile. Deci, Tibshirani sugerează metoda 1-standard-error :
Alegeți dimensiunea clusterului $ \ hat {k} $ pentru a fi cel mai mic $ k $ astfel încât $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Care este în mod informal identificarea punctului în care rata de creștere a statisticii decalajului începe să „încetinească”.
Deci, în prima imagine a OP, dacă considerăm că barele de eroare roșii sunt erori standard, atunci 3 este cel mai mic $ k $ care îndeplinește acest criteriu:
Cu toate acestea, pentru a doua imagine a OP, veți vedea că statistica decalajului scade imediat pentru $ k > 1 $. Deci, primul $ k $ care îndeplinește criteriul 1 eroare standard este $ 1 $. Acesta este modul în care complotul spune că datele nu trebuie grupate.
După cum se dovedește, există modalități suplimentare de a alege $ k $ optim. Metoda implicită a funcției R clusGap
, de exemplu, caută întotdeauna maximul local al graficului și selectează cel mai mic $ k $ într-o singură eroare standard din valoarea maximă locală. Folosind această metodă firstSEmax
, am selecta $ k = 30 $ și $ k = 19 $ pentru graficele 1 și respectiv 2 ale OP. După cum am spus, totuși, acest lucru pare să sufere de o problemă de complexitate.
Comentarii
- Când se estimează valoarea $ k $ din statistica gap , cum pot calcula / estima probabilitatea ca $ k $ să fie adevăratul număr de clustere? Sau întrebarea mea este lipsită de sens?
- Vă mulțumim că ați arătat schimbul dintre maximizarea statisticii decalajului și obținerea parcimoniei modelului
clusGap
pe baza globalmax, nu ' nu știam cum să implementez maxSE.