ML algoritmi

Tutorijal-praktikum za mašinsko učenje, podatke, regresiju, klasifikaciju, klasterovanje, stabla odlučivanja, ansamble, evaluaciju modela, metrike i praktičnu primenu algoritama
ML algoritmi – uvod u mašinsko učenje, podatke, regresiju, klasifikaciju, klasterovanje, stabla odlučivanja, ansamble i evaluaciju modela
Uvod

ML algoritmi, odnosno algoritmi mašinskog učenja, predstavljaju skup metoda pomoću kojih računar iz podataka uči obrasce, odnose i pravilnosti. Umesto da svako pravilo unapred napišemo ručno, model dobija podatke, pronalazi zakonitosti u njima i koristi naučeno znanje za predviđanje, klasifikaciju, grupisanje ili donošenje preporuka.

Mašinsko učenje je jedna od najvažnijih oblasti računarske inteligencije. Ono povezuje matematiku, statistiku, programiranje, podatke, algoritme i razumevanje realnog problema. Dobar ML model nije samo kod koji se pokreće u Python-u, već spoj kvalitetnih podataka, pažljivo izabranog algoritma, dobre evaluacije i odgovornog tumačenja rezultata.

Kada govorimo o ML algoritmima, važno je razumeti da oni nisu magija. Oni ne znaju ništa izvan podataka koje dobiju i načina na koji su ti podaci predstavljeni. Ako su podaci loši, pristrasni, nepotpuni ili pogrešno pripremljeni, i najbolji algoritam može dati loš rezultat.

Zato se u mašinskom učenju često kaže da je priprema podataka jednako važna kao i izbor modela. Pre nego što algoritam počne da uči, potrebno je razumeti podatke, očistiti ih, proveriti nedostajuće vrednosti, ukloniti očigledne greške, pravilno predstaviti kategorije, skalirati numeričke vrednosti i odvojiti podatke za trening i testiranje.

Osnovni pojmovi koje ćemo stalno koristiti su feature i label. Feature predstavlja ulaznu osobinu, odnosno podatak koji model koristi da bi nešto naučio. Label predstavlja ciljnu vrednost koju model pokušava da predvidi. Na primer, ako model predviđa cenu stana, feature-i mogu biti kvadratura, lokacija, sprat i broj soba, a label je cena.

U nadgledanom učenju model uči iz primera koji već imaju poznat tačan odgovor. To znači da za svaki red podataka imamo ulazne osobine i poznatu ciljnu vrednost. Nadgledano učenje se najčešće deli na regresiju i klasifikaciju.

Regresija se koristi kada želimo da predvidimo brojčanu vrednost. To može biti cena, temperatura, potrošnja energije, opterećenje servera, prihod, vreme isporuke ili bilo koja kontinuirana veličina. Linearna regresija je jedan od najjednostavnijih i najkorisnijih početnih algoritama za razumevanje ove oblasti.

Klasifikacija se koristi kada želimo da podatak svrstamo u neku kategoriju. Na primer, email može biti spam ili nije spam, korisnik može biti rizičan ili nerizičan, transakcija može biti regularna ili sumnjiva, a slika može pripadati jednoj od više klasa.

Nenadgledano učenje koristi se kada nemamo unapred zadatu labelu. Model tada pokušava da sam pronađe strukturu u podacima. Najpoznatiji primer je klasterovanje, gde algoritam grupiše slične podatke. Takav pristup se često koristi za segmentaciju korisnika, otkrivanje obrazaca ponašanja i istraživačku analizu podataka.

Postoji i pojačano učenje, gde agent uči kroz interakciju sa okruženjem, nagrade i kazne. Iako je to važna oblast veštačke inteligencije, ovaj praktikum se najviše bavi osnovnim algoritmima koji su temelj razumevanja klasičnog mašinskog učenja.

Jedan od prvih koraka u ML procesu jeste podela podataka na trening i test skup. Model se uči na trening podacima, a zatim se proverava na test podacima koje nije video tokom učenja. Ova podela je važna zato što nas ne zanima samo koliko je model zapamtio podatke, već koliko dobro može da radi na novim primerima.

Overfitting nastaje kada model previše dobro nauči trening podatke, uključujući šum i slučajne detalje, ali loše radi na novim podacima. Underfitting nastaje kada je model suviše jednostavan i ne uspeva da uhvati važne obrasce. Dobar ML rad stalno traži ravnotežu između ova dva problema.

Evaluacija modela pomaže nam da izmerimo koliko je model dobar. Za klasifikaciju često koristimo tačnost, preciznost, odziv, F1 meru i confusion matrix. Za regresiju koristimo metrike kao što su MAE, MSE, RMSE i R². Važno je izabrati metriku koja odgovara stvarnom problemu.

Linearna regresija pokazuje kako model može naučiti vezu između ulaznih promenljivih i brojčane vrednosti. Ona je jednostavna, razumljiva i veoma korisna za početak, jer uvodi ideju greške, optimizacije, koeficijenata i predviđanja.

Logistička regresija, iako u imenu ima reč regresija, najčešće se koristi za klasifikaciju. Ona procenjuje verovatnoću pripadanja određenoj klasi. Zbog svoje jednostavnosti i interpretabilnosti često se koristi kao početni model za binarne klasifikacione probleme.

KNN, odnosno algoritam najbližih suseda, zasniva se na ideji da su slični primeri blizu jedni drugima. Ako želimo da klasifikujemo novi primer, posmatramo njegove najbliže susede i donosimo odluku na osnovu njihove klase. Ovaj algoritam je intuitivan, ali može biti zahtevan kada skup podataka postane veliki.

Naivni Bajes koristi verovatnoće i pretpostavku uslovne nezavisnosti osobina. Iako je ta pretpostavka često pojednostavljenje, algoritam ume da bude veoma efikasan, naročito u tekstualnoj klasifikaciji, prepoznavanju spam poruka i problemima gde su podaci visokodimenzionalni.

SVM, odnosno Support Vector Machine, traži granicu koja najbolje razdvaja klase. Njegova osnovna ideja je maksimalna margina između grupa podataka. SVM može biti veoma moćan, posebno kada se koristi sa kernel metodama, ali zahteva pažljivo podešavanje i razumevanje podataka.

Stabla odlučivanja predstavljaju algoritme koji odluke donose kroz niz pitanja. Na svakom čvoru stablo deli podatke prema nekoj osobini, sve dok ne dođe do zaključka. Njihova prednost je razumljivost, jer se odluke mogu pratiti kroz grane stabla.

Random Forest koristi više stabala odlučivanja i kombinuje njihove rezultate. Na taj način model postaje stabilniji i manje sklon preteranom prilagođavanju jednom skupu podataka. Ansambl pristupi su važni zato što često daju bolje rezultate od pojedinačnih modela.

Gradient Boosting predstavlja pristup u kome se modeli grade jedan za drugim, tako da svaki novi model pokušava da popravi greške prethodnih. Iz ove porodice potiču veoma popularne ideje kao što su XGBoost, LightGBM i CatBoost, koje se često koriste u takmičenjima i praktičnim data science projektima.

Klasterovanje je centralna tema nenadgledanog učenja. K-means pokušava da podeli podatke u unapred zadat broj grupa. Hijerarhijsko klasterovanje pravi strukturu sličnosti, a DBSCAN može pronaći klastere različitih oblika i odvojiti šum. Svaki pristup ima svoje prednosti i ograničenja.

Redukcija dimenzionalnosti koristi se kada imamo mnogo promenljivih i želimo da podatke prikažemo jednostavnije ili efikasnije. PCA, odnosno analiza glavnih komponenti, pomaže da se pronađu pravci u kojima podaci nose najviše informacija. To može pomoći u vizuelizaciji, ubrzanju modela i smanjenju šuma.

Feature selection, odnosno izbor osobina, pomaže da se iz skupa podataka izdvoje promenljive koje zaista doprinose modelu. Previše osobina može povećati složenost, usporiti učenje i pogoršati generalizaciju. Dobro izabrane osobine često znače bolji, jednostavniji i razumljiviji model.

Interpretabilnost modela postaje sve važnija. Nije dovoljno da model samo da rezultat; često moramo razumeti zašto je taj rezultat nastao. U poslovnim, medicinskim, finansijskim i sigurnosnim sistemima objašnjivost je važna za poverenje, kontrolu i odgovornost.

Etika u mašinskom učenju nije dodatak na kraju, već deo celog procesa. Modeli mogu naslediti pristrasnost iz podataka, pogrešno tretirati određene grupe, davati samouverene ali pogrešne rezultate ili biti korišćeni van konteksta za koji su napravljeni. Zato svaki ML rezultat treba tumačiti pažljivo.

Cross-validation pomaže da procena modela bude pouzdanija. Umesto jedne podele na trening i test skup, podaci se dele na više delova, pa se model trenira i proverava više puta. Tako dobijamo bolju sliku o stabilnosti modela.

Hyperparameter tuning predstavlja podešavanje parametara koji nisu naučeni direktno iz podataka, već određuju ponašanje algoritma. To mogu biti broj suseda kod KNN-a, dubina stabla, broj stabala u Random Forest-u, regularizacija ili stopa učenja kod boosting metoda.

ML pipeline povezuje pripremu podataka, transformacije, izbor modela, trening i evaluaciju u jedan organizovan tok. Pipeline je važan zato što smanjuje greške, čini proces ponovljivim i priprema nas za ozbiljniji rad sa MLOps-om i produkcionom upotrebom modela.

U ovom tutorijalu ML algoritme nećemo posmatrati samo kao formule ili gotove funkcije iz biblioteka. Posmatraćemo ih kao načine razmišljanja. Svaki algoritam ima svoje pitanje koje postavlja podacima, svoje pretpostavke, svoje granice i svoje tipične greške.

Cilj nije da naučimo napamet što više naziva algoritama. Cilj je da razumemo kada se koristi regresija, kada klasifikacija, kada klasterovanje, kada jednostavan model ima prednost, a kada je potreban složeniji ansambl. Dobar inženjer ili analitičar ne bira model po modi, već po problemu.

Kroz lekcije ćemo postepeno graditi praktičnu sliku. Počećemo od osnovnih pojmova mašinskog učenja, podataka, feature-a, label-a, treninga, testiranja i metrika. Zatim ćemo preći na regresione i klasifikacione algoritme, stabla odlučivanja, ansamble, klasterovanje, redukciju dimenzionalnosti i interpretaciju.

U završnim lekcijama radićemo mini projekte. Jedan će biti posvećen klasifikaciji podataka od pripreme do evaluacije, a drugi poređenju regresije, klasterovanja i različitih ML pristupa. Cilj je da algoritmi ne ostanu teorijski spisak, već praktičan alat za rad sa realnim podacima.

ML algoritmi su temelj za dalje oblasti: neuralne mreže, duboko učenje, MLOps, AIOps, obradu jezika, preporučivačke sisteme i inteligentne aplikacije. Kada razumemo osnovne algoritme, mnogo lakše razumemo i savremene AI sisteme, jer vidimo kako se iz podataka gradi znanje.

Zato ovaj praktikum ima dvostruki cilj. Prvi je praktičan: da čitalac ume da pripremi podatke, izabere algoritam, istrenira model, izmeri rezultat i protumači grešku. Drugi je dublji: da razvije osećaj za podatke, modele, ograničenja i odgovornost u radu sa računarskom inteligencijom.

Mašinsko učenje je najkorisnije kada se koristi sa razumevanjem. Algoritam može pronaći obrazac, ali čovek mora znati šta taj obrazac znači, da li je rezultat smislen, da li je podatak pouzdan i da li se model može odgovorno primeniti. U tome je prava vrednost učenja ML algoritama.

Povratak na sadržaj Sledeća lekcija →