Mivel a jelenlegi adathalmaz elég kicsinek mondható, így nem olyan egyszerű olyan kísérletet összeállítani ami hozza az elvárt precizitást, megbízható eredményt szolgáltat (fontos néhány alkalmazás tekintetében, hogy a felhasználó mit kap vissza válaszként), ugyanakkor nagy mértékben csökkenti a magolás bekövetkezését. Ezért megnézzük a tanulás eredményét abban az esetben, ha az adatokat egy kicsit felturbózzuk (mármint példányszámban).
Monthly Archives: June 2016
Komponensek sebességtesztje
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.
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.
Birthmarks data #5 – training
Az anyajegyek adatait tartalmazó adathalmazunk első körben készen áll arra, hogy felhasználjuk tanulásra. Elkészítettem pár osztályozó algoritmus modelljét, amiket majd összehasonlítási alapként fogok használni a további finomhangolás és egyebek után. A folyamat végén majd valamikor végül a legjobban működő modellt fogjuk kiválasztani, amiből elkészül a web service.
Birthmarks data #4 – normalization
Az előző bejegyzésben eljutottam addig, hogy megvan a tisztán csak feature selection modul által javasolt feature listám. Ez rendben is van. Ebben a bejegyzésben viszont egy kis kitérőt fogok tenni, amiben csak annyit szeretnék elvégezni, hogy a rendelkezésre álló adatokat normalizáljuk (elsősorban azért, mert mint említettem egy kis utána olvasás után és nálam komolyabban a témához értő emberek iránymutatása azt az eredményt adta nekem, hogy a leginkább célravezető feature selection method ilyen esetben az a mutual information, amihez – és egyébként is – jobb a normalizált adathalmaz).