Klaszterezés a Studioban

Az előző posztomban foglalkoztam a klaszterezéssel általában, most nézzük meg, hogy konkrétan milyen lehetőségünk van erre a Studioban.

Jelenleg mindössze egyetlen egy megoldás áll rendelkezésünkre, méghozzá egy centroid alapú, a k-means (k-közép) algoritmus. Ez ugye központi vektorokkal választja el egymástól a klasztereket. n megfigyelést k klaszterbe partícionál az átlaguk alapján, ezáltal Voronoj-cellákat hoz létre. Iteratív algoritmus, optimalizálást hajt végre. Ez egy NP-nehéz probléma, amit jelenlegi tudásunk (és technológiánk) szerint nem tudunk megoldani belátható idő alatt, még szuperszámítógépekkel sem. Azonban léteznek heurisztikus algoritmusok, amik elég hamar konvergálnak a lokális optimumhoz. Ezek használatával gyorsan elérhetjük a kívánt eredményt.

Continue reading

Klaszteranalízis

Ahogy már korábban is írtam, létezik felügyelt, és felügyelet nélküli tanulás is. Most a másodikkal fogok foglalkozni.

A klaszterezés lényege, hogy az egyes egyedeket csoportokba osztja.
Fontos különbség az osztályozással szemben, hogy itt az adat belső struktúrájának a felfedése a lényeg, és nem pedig az egyes elemek pozíciója.

Continue reading

Algoritmus választása az ML Studioban

1catRengeteg algoritmus megtalálható a Studioban, így sokszor az adhatja a legnagyobb fejtörést, hogy melyiket válasszuk ezek közül.

Először azt kell kitalálni, hogy milyen típusú a problémánk, majd azon belül kell választani egy megfelelő algoritmust.
Megpróbálok egy kicsit segíteni a választásban az alábbi leírással:
Continue reading

Predikciós kísérletünk tesztelése

Először is létrehoztam egy példa kísérletet, amit tesztelhetünk. A próba egy mérleget szimulál. Meg lehet adni, hogy mekkora súlyt rakunk a bal és a jobb oldalra, illetve azt, hogy ezek milyen messze vannak a középponttól. Végül a program megmondja, hogy a mérleg balra (L) vagy jobbra (R) dől, esetleg egyensúlyban (B) van.

1experiment

Continue reading

Saját algoritmus írása az ML Studioban

Időnként szükséges lehet, hogy egyedi transzformációkat hajtsunk végre az adatokon. Ilyenkor lehet hasznos valamelyik támogatott nyelven implementálni.

R nyelven:

Execute R Script:

Segítségével elvégezhetünk egyedi transzformációkat az adatainkon, a saját metrikáink szerint építhetjük fel, illetve értékelhetjük ki a modelleket. Continue reading

Adatok transzformálása a Studioban

1normA Normalize Data modul segítségével az adatainkat azonos volumenűre hozhatjuk. Erre akkor van szükség, ha nagyságrendbeli különbségek vannak köztük. A kisebb skálájú adatokat kevésbé veszik fontosnak az algoritmusok, hiszen ott jóval kisebb eltérés van, így hajlamosak szinte „megfeledkezni” róluk. A normalizálással viszont azonos mértékűre hozhatjuk az egyes adatokat, így azonos lesz a „súlyuk” is.

Continue reading

Azure ML Studio

ML Studio

A gépi tanulásra a Microsoft megoldása az ML Studio. Teljes mértékben a felhőben futó alkalmazás, így semmiféle telepítést nem igényel, bárhonnan elérhetjük a https://studio.azureml.net címen.

Nagyban megkönnyíti a munkát, hogy az egyes modulokat csak behúzzuk a munkaasztalunkra, és összekötjük őket, nem kell időt fecsérelni sok programozásra. Rengeteg gyakran használt összetevő készen van, csak paraméterezni kell őket:
Adat bemenet/kimenet, szűrők, szétválasztók, skálázók, illetve természetesen algoritmusok osztályozásra, regresszióra, klaszterizálásra, anomáliák felfedezésére.

Körbenézhetünk a Cortana Analytics Gallery-ben, ahol kész megoldásokat találhatunk gyakori problémákra:
arcfelismerés, lemorzsolódás, kézíráselemzés…

Természetesen, ha úgy érezzük, hogy nincsen számunkra megfelelő eszköz, mert egyedi dologra van szükségünk, bővíthetjük a programunkat R és Python szkriptekkel.

A továbbiakban megnézzük, hogyan lehet egy kísérletet megcsinálni elejétől a végéig, milyen alap egységeket lehet felhasználni a sikeres jóslás érdekében.

Continue reading