Ma egy kicsit utánanéztem a Studio sebességének: néhány modult megírtam R-ben, majd lemértem, hogy melyik mennyi idő alatt fut le.
Author Archives: Péter Paluska
Windows 10 és a Machine Learning
Most az általam készített kísérletből webszervízt csinálok, és felhasználnom azt egy Universal Windows Platform programban, majd kipróbálom – telefonon és asztali számítógépen is.
Szöveg és képfeldolgozás gépi tanulással
Ezidáig csak olyan adathalmazokat használtunk, amikben lebegőpontos/egész számok, binárisok, osztálycímkék voltak. Most próbáljunk ki valami mást!
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.
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.
Algoritmus választása az ML Studioban
Rengeteg 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.
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
A 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.
Azure 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.