Kada koristiti različite algoritme strojnog učenja: jednostavan vodič

Ako se dovoljno dugo bavite strojnim učenjem, znate da postoji princip "nema besplatnog ručka" - ne postoji jedinstveni algoritam koji će vam pomoći riješiti svaki problem i riješiti svaki skup podataka.

Radim za odskočnu dasku - puno smo istraživanja istraživali u obuci i resursima za strojno učenje. Na Springboardu nudimo prvi internetski tečaj s jamstvom posla za strojno učenje.

Ono što puno pomaže kada se suočite s novim problemom je da imate početni vodič za algoritam koji bi mogao najbolje odgovarati određenim situacijama. Ovdje razgovaramo o različitim problemima i vrstama podataka i raspravljamo o tome koji bi mogao biti najučinkovitiji algoritam za svaki od njih, zajedno s resursom koji vam može pomoći u implementaciji tog određenog modela.

Zapamtite: dokaz je u pudingu: najbolji pristup vašim podacima je model koji vam empirijski daje najbolje rezultate. Ovaj je vodič namijenjen brušenju vaših prvih instinkta i pomoći će vam da se sjetite koji bi modeli mogli biti najučinkovitiji za svaki problem, a koji bi bili nepraktični za upotrebu.

Krenimo od razgovora o varijablama koje moramo uzeti u obzir.

U nsupervised učenje vs nadziranog učenja

Nenadgledano učenje je mjesto gdje algoritmu strojnog učenja dopuštate da započne s učenjem i izbaci rezultat bez ikakve eksplicitne ljudske obrade podataka prije toga.

Nadzirano učenje uključuje prethodno označavanje i obradu podataka o obuci kako bi se strukturirali za obradu.

Vrsta učenja koje možete izvesti bit će jako važna kad započnete raditi s različitim algoritmima strojnog učenja.

S tempo i vrijeme razmatranja

Za svaki algoritam strojnog učenja postoje razmatranja prostora i vremena . Iako ćete u praksi vjerojatno raditi s optimiziranim verzijama svakog algoritma upakiranog u okvir, dobro je razmotriti kako algoritmi koje odaberete mogu utjecati na izvedbu.

Izlaz

Treće, i možda najvažnije, je izlaz koji želite dobiti . Pokušavate li kategorizirati podatke? Koristite ga za predviđanje budućih podatkovnih točaka? Ono što želite dobiti kao rezultat i što želite učiniti sa svojim podacima uvelike će odrediti algoritamske pristupe koje biste trebali poduzeti.

Neki primjeri

Želite izgraditi jednostavan prediktivni model s dobro strukturiranim skupom podataka bez previše komplikacija.

Ovdje je vaša najbolja opklada vjerojatno linearna regresija, nešto što može uzeti čitav niz čimbenika, a zatim vam dati prediktivni rezultat s jednostavnim objašnjenjem stope pogrešaka i jednostavnim objašnjenjem koji faktori doprinose predviđanju. Za pokretanje linearne regresije ne treba puno računske snage.

Izvor : Linearna regresija - detaljan prikaz

Želite klasificirati podatke koji su već označeni u dvije ili više oštro različitih vrsta oznaka (npr., Pokušavajući utvrditi jesu li djeca vjerojatno muškarci ili žene na temelju njihove težine i visine) u nadziranom okruženju.

Prvi instinkt koji biste trebali imati kad vidite ovakvu situaciju je primjena modela logističke regresije . Nakon pokretanja modela, vidjet ćete da on prisiljava svaku podatkovnu točku u dvije različite kategorije, što vam omogućuje da lako iznesete koja točka pripada kojoj kategoriji. Logistički model regresije također se lako može generalizirati za rad s više ciljnih i rezultatskih klasa ako to vaš problem zahtijeva.

Resurs : Izgradnja logističke regresije

Tražite neoznačene kontinuirane podatke smjestiti u različite skupine (npr. Stavljanje kupaca s određenim zabilježenim osobinama i pokušaj otkrivanja kategorija / grupa kojima mogu pripadati).

Prvo prirodno uklapanje u ovaj problem je algoritam grupiranja K-Means, koji će grupirati i grupirati podatke mjerenjem udaljenosti između svake točke. Zatim postoje razni algoritmi klasteriranja, kao što je prostorno klasteriranje aplikacija s šumom i algoritmi srednjeg pomicanja zasnovano na gustoći.

Resurs : 5 algoritama klasteriranja koje znanstvenici podataka trebaju znati

Želite predvidjeti spada li niz znakova ili grupa osobina u jednu ili drugu kategoriju podataka (nadzirana klasifikacija teksta) - npr. Je li recenzija pozitivna ili negativna.

Ovdje je vaš najbolji ulog vjerojatno Naive Bayes, koji je jednostavan, ali moćan model koji se može koristiti za klasifikaciju teksta. Uz određenu prethodnu obradu i čišćenje teksta (posebno pažljivo uklanjajući riječi za zaustavljanje punila poput "i" koje bi mogle dodati šum vašem skupu podataka), možete dobiti izvanredan skup rezultata s vrlo jednostavnim modelom.

Sljedeća pristojna oklada je logistička regresija, što je jednostavan model za shvatiti i objasniti, a manje je težak za izdvajanje od Naivnog Bayesa (koji će vjerojatnosti često dodijeliti riječ po riječ, umjesto da holistički označi isječak teksta kao dio jedne ili druge skupine ).

Prelazeći na nešto moćnije, algoritam Linear Support Vector Machine vjerojatno će vam poboljšati performanse. Ako ovdje želite preskočiti, možete (premda predlažem da isprobate oba modela i usporedite koji od njih najbolje funkcionira - Naive Bayes ima apsurdno jednostavnu implementaciju na okvire poput scikit-learna i nije previše računski skup pa si možete priuštiti za testiranje oboje).

Na kraju, analiza vreće riječi također bi mogla uspjeti - razmislite o tome da napravite niz različitih metoda i testirate sve ove metode jedna protiv druge, ovisno o dotičnom skupu podataka.

Izvor : Usporedba i odabir modela klasifikacije teksta u više klasa

Tražite nestrukturirano učenje na velikim skupovima podataka o slikama ili video zapisima (npr. Klasifikacija slika).

Najbolji algoritam za rješavanje prolaska različitih slika je konvolucijska neuronska mreža koja je organizirana slično onome kako se analiziraju životinjski korteksi.

Mjerena učinkom (smanjenom stopom pogrešaka) u natjecanju ImageNet, arhitektura SE-Resnet izlazi na prvo mjesto, premda se to polje još uvijek razvija, gotovo svakodnevno izlaze novi pomaci.

Međutim, trebali biste biti svjesni da su konvolucijske neuronske mreže guste i da zahtijevaju puno računske snage - zato budite sigurni da imate hardversku sposobnost za pokretanje ovih modela na velikim skupovima podataka.

Izvor : Pregled algoritama za dubinsko učenje za klasifikaciju slika

Želite klasificirati bodove rezultata koji proizilaze iz dobro definiranog procesa (npr .: broj angažiranih osoba iz unaprijed uspostavljenog postupka razgovora, pri čemu znate ili možete računati zaključiti vjerojatnosti svakog događaja).

Najbolja opcija za to je vjerojatno algoritam stabla odlučivanja koji će jasno objasniti koje su točke razdvajanja između razvrstavanja nečega u jednu ili drugu skupinu.

Resurs : Stabla odlučivanja u strojnom učenju

Želite napraviti analizu vremenskih serija s dobro definiranim, nadziranim podacima (npr. Predviđanje cijena dionica na temelju povijesnih obrazaca na burzi raspoređenih na kronološkoj osnovi od prošlosti do danas).

Ponavljajuća se neuronska mreža postavlja za analizu sekvenci sadržavanjem ugrađene interne memorije podataka koje obrađuje, omogućujući joj da uzme u obzir odnos između podataka i vremenskog horizonta i redoslijed u kojem je raspoređena.

Izvor : Ponavljajuće se neuronske mreže i LSTM

Završavati

Uzmite gore navedene preporuke i resurse i primijenite ih kao svojevrsni prvi instinkt za modeliranje - to će vam pomoći da uskočite u bilo koji posao koji radite samo malo brže. Ako ste zainteresirani za mentorstvo stručnjaka za strojno učenje u učenju kako dalje trenirati svoje instinkte, pogledajte Springboardovu AI / stazu za karijerno učenje.