K-znamená; EWSTranslate

  • Prečítajte si papier K-means (PS) alebo K-means paper (PDF) .
  • Poznámka: Nedávno sme boli upozornení na podobný výsledok, hoci je nezávislý. Pred našou prácou. Na záver si môžete prečítať aj toto.
  • Prečítajte si papier X (PS) alebo papier X (PDF) .
  • Implementácia X-means a K-means v binárnej forme je teraz k dispozícii na stiahnutie! V súčasnosti existujú verzie pre Linux, OS X a MS-Windows. Distribuujú sa za nasledujúcich podmienok:
    • Softvér sa môže používať iba na experimentálne a výskumné účely.
    • Softvér nemusí byť distribuovaný nikomu a nesmie sa predávať úplne ani čiastočne vo väčšom softvérovom produkte, či už v zdrojovej alebo binárnej podobe.
    Ak si ho chcete stiahnuť, jednoducho si ho stiahnite v sekcii na stiahnutie .
  • X-means je k dispozícii výskumníkom v zdrojovej forme. Kód je v štandarde C a je možné ho spustiť nezávisle alebo prostredníctvom balíka MATLAB. Kompilácia v rámci GCC (na systémoch Linux, Cygwin, OS X, Solaris a FreeBSD) a MSVC je známa ++.
    • Okrem prostriedkov X tento kód obsahuje aj rýchlu podporu prostriedkov K. Zrýchli aplikáciu K-mean za predpokladu, že:
      • Vaše údaje nie sú väčšie ako 15 veľkostí. Tento kód však môžete získať a použiť, ak to tak nie je, ale neočakávajte, že bude obzvlášť rýchly. Tento kód obsahuje jednoduchú implementáciu prostriedkov K, ktoré nepoužívajú stromy KD.
      • Môžete vypočítať euklidovskú vzdialenosť medzi jedným z dvoch dátových bodov a táto vzdialenosť je pre vás nejakým spôsobom významná. To je vlastne nevyhnutný predpoklad pre akýkoľvek algoritmus K-means.
    • Ak chcete získať prístup, vyplňte nevyplnené polia v tejto licenčnej zmluve a pošlite ich späť Danovi Pellegovi (áno, je tam znamienko plus, nechajte ho a slová pred a po - funguje). V podstate sa hovorí len o tom, že tento komerčný program nemôžete použiť. Môžete o ňu požiadať - už sme udelili asi 800 licencií ľuďom z čo najväčšieho počtu inštitúcií a vždy som rád, že mám viac používateľov. Nebudem predávať, prenajímať, distribuovať ani inak používať vašu e-mailovú adresu na iné účely, ako je poskytovanie pokynov na stiahnutie.
    • K dispozícii je tiež zoznam adries K-means a zoznam adries X-means .
  • Ďalej sme pripravili „karikatúrneho sprievodcu“ pre K-means:

Tu je súbor údajov v 2 dimenziách, ktorý obsahuje 8000 bodov. Spustíme na ňom 5 prostriedkov (K-znamená s K = 5). Okrem bodov, ktoré vidíme, vybral K-means 5 náhodných bodov pre centrá triedy. Sú to bodky modrej, zelenej, červenej, čiernej a fialovej. Všimnite si, že podľa všetkého nezodpovedajú Gaussovcom (v skutočnosti som musel program prinútiť, aby vytvoril tieto „prvé“ východiskové body - je celkom dobré dostávať „správne“ východiskové body) .

Teraz program prechádza dátovými bodmi a každý z nich spája s najbližším triednym centrom. Bodky, ktoré vidíte, sú zafarbené podľa stredu, v ktorom sú spojené. Všimnite si modrozelené ohraničenie v pravom hornom rohu. Táto (teoretická) línia bodov, ktoré sú rovnako vzdialené od zeleného a modrého stredu, určuje, kam patria.

Ďalším krokom algoritmu je zmena polohy stredov triedy. Zelený stred bude umiestnený v strede tabuľky všetkých zelených bodov atď. Ako sa ukáže, zelený stred sa posunie doprava a hore. Ukazuje to čierna čiara vychádzajúca zo zeleného stredu. Všimnite si, že čierne a červené stredy zdieľajú každý polovicu Gaussian zľava (a asi polovicu Gaussian, v ktorej sú), takže sa obaja „pýtajú“ doľava. Pohyb fialového stredu je veľmi malý.

Kliknutím na obrázok zobrazíte jeho väčšiu verziu. Môžete ho otvoriť v novom okne prehliadača, aby ste mohli pokračovať v čítaní textu.

Zeleno-fialový okraj sa pohybuje nahor a doprava; ukazuje, že zelená bude mať iba „svoje body“ a fialová bude mať dvoch Gaussovcov. V ľavom dolnom rohu to vyzerá, že červená prehrala s čiernou (čierna je viac vľavo).

Červená šla doprava. Získal teda viac fialových bodov. Pretože všetky fialové bodky sú vpravo, tento efekt sa zosilňuje. V dôsledku toho fialová stráca body na červené a pohybuje sa tiež doprava (a hore).

Úvod do stromov KD

Opäť náš 8 000-bodový dátový súbor generovaný náhodne z 5-Gaussovej distribúcie. Mali by ste vidieť skrytých Gaussovcov. Modré orámovanie označuje „koreňový“ uzol kd. Zahŕňa všetky body.

Teraz vidíte starých rodičov koreňa. Každá z nich je rozdelením svojej materskej lode, tentokrát pozdĺž osi X.

Tu je prvých sedem vrstiev stromu KD, všetko na jednej fotografii.

Urobiť K-rýchlo znamená so stromami KD

Všetky vysvetlenia v ukážke K-means vyššie platili pre tradičné K prostriedky. „Tradičné“ znamená, že keď idete von a rozhodujete sa, ktorý stred je najbližšie ku každému bodu (napríklad určte farby), urobte naivný: pre každý bod vypočítajte vzdialenosti od všetkých stredov a nájdite minimum. Náš program je potom oveľa inteligentnejší. Najskôr postavte kd-strom pre body (ten, ktorý ste videli skôr). Teraz predpokladajme, že uzol kd je v úplnom vlastníctve centra. To znamená, že nasledujúci centrálny pohyb bude ovplyvnený ťažiskom bodov v tomto uzle kd (a ich počtom). Takže predbežným výpočtom ťažiska každého uzla kd a jeho uložením v uzle môžeme ušetriť veľa vecí. [ukazujúci, že uzol je v úplnom vlastníctve centra, sa dá urobiť aj efektívne - viď rýchly papier K-prostriedky].

Tento typ rýchleho výpočtu prebiehal v zákulisí počas ukážky. Kedykoľvek sa ukázalo, že uzol je v úplnom vlastníctve centra, program nakreslil obdĺžnik uzla. Pre vizualizačné účely prilákalo aj body v jeho vnútri, nie je však potrebný „skutočný“ program. Na výpočet účinku, ktorý bude mať určitý uzol kd, použite len veľmi malý konštantný počet aritmetických operácií. To je v protiklade so súčtom súradníc každého bodu vo vnútri tohto obdĺžnika, tj s cenou, ktorá je lineárna v počte bodov v obdĺžniku.

Všimnite si, aké ľahké bolo vypočítať čierne a modré ťažiská. Black vzal iba dva uzly a ďalších asi 50 ďalších bodov. Modrá trvala 5 uzlov, plus asi 10 bodov. Porovnajte to s približne 8000/5 = 1600 bodmi, ktoré každý z nich získal (a za každý urobil 5 vzdialeností!).

Ďalšou zaujímavou vecou je, ako sa tieto obdĺžniky zmenšujú, keď sa blížime k teoretickej hraničnej čiare, o ktorej sme hovorili predtým. Choďte po červeno-fialovom okraji. Keď sa k tomu priblížime, je čoraz ťažšie, keď veľké a tučné uzly drží celý červený alebo fialový. Ak o nich premýšľate, nemôže ich úplne vlastniť žiadne z centier, ak ich pretína tento limit. Takže čím sme bližšie k hranici, tým menšie sú obdĺžniky. A existuje veľa jednotlivých bodov veľmi blízko hranice.

Tento materiál je založený na práci podporenej grantom č. 0121671 od National Science Foundation.