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.
- 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 .
- Okrem prostriedkov X tento kód obsahuje aj rýchlu podporu prostriedkov K. Zrýchli aplikáciu K-mean za predpokladu, že:
- Ď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.
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.
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.