Reši data imbalance problem bez brisanja važnih podataka
Prestanite brisati redove: Zašto je undersampling najbrži put do glupog modela
Prestanite kupovati priče da je rješenje za nebalansirane podatke jednostavno brisanje redova iz većinske klase. To je marketinška laž koja će ubiti preciznost vašeg modela u šest mjeseci. Ako želite da vaš algoritam preživi realne uslove, morate prestati bacati dragocjene informacije samo zato što se ne uklapaju u savršen omjer 50/50. Vi trebate podatke, a ne sterilnu bazu bez duše. Zamislite da gradite kuću i bacite pola cigli jer su ‘previše obične’ – vaša kuća će se srušiti. Istu stvar radite svom modelu kada koristite nasumični undersampling.
Kada radite sa podacima gdje je odnos klasa 1:100, recimo kod detekcije prevara u bankarstvu, vaš najveći neprijatelj nije manjak podataka, već vaša lijenost da ih pravilno obradite. Ako izbrišete 9900 validnih transakcija da biste ih uparili sa 100 prevara, izgubili ste sve varijacije koje definišu ‘normalno’ ponašanje. Rezultat? Model koji vrišti ‘prevara’ na svaku sitnicu. Vaš zadatak je da zadržite svaki bajt informacija, ali da natjerate algoritam da ‘osjeti’ težinu manjine.
Zašto accuracy laže kao pas i kako to popraviti odmah
Accuracy (tačnost) je metrika za amatere. Ako 99% tvojih podataka pripada jednoj klasi, tvoj model može biti 99% tačan tako što će jednostavno pogađati tu jednu klasu svaki put. To je smeće, a ne nauka. Prva stvar koju moraš uraditi je promijeniti način na koji mjeriš uspjeh. Fokusiraj se na F1-score, Precision i Recall. Bez toga, tvoj model je samo skupi generator lažne sigurnosti. 
Alatnica za balansiranje: SMOTE, ADASYN i težinska magija
Umjesto sjekire (brisanja), koristi hirurški nož. SMOTE (Synthetic Minority Over-sampling Technique) nije magija, to je čista geometrija. On ne kopira podatke – to bi dovelo do overfittinga koji miriše na zagorjelu elektroniku. SMOTE stvara nove, sintetičke primjere tako što pronalazi linije između postojećih tačaka u vektorskom prostoru. Ali budi oprezan: ako ga pustiš da radi bez kontrole, stvorićeš ‘duhove’ u podacima koji nemaju veze sa stvarnošću. Uvijek prvo uradi pravilno splitovanje podataka prije nego što uopšte dotakneš SMOTE, inače ćeš imati curenje podataka (data leakage) koje će obesmisliti sav tvoj trud.
Druga opcija je ADASYN. On je pametniji brat SMOTE-a. On fokusira generisanje podataka na one tačke koje je teško klasifikovati – tamo gdje je granica između klasa mutna kao prljavo vjetrobransko staklo. ADASYN ‘vidi’ gdje tvoj model griješi i tu ubacuje pojačanje. Ako tvoj model ne prepoznaje rubne slučajeve, ADASYN je alat koji ti treba.
Šta ako ne želim izmišljati podatke? Class Weights metoda
Ponekad je najbolje rješenje najjednostavnije: reci algoritmu da je greška na manjinskoj klasi deset puta skuplja. Većina modernih biblioteka poput Scikit-learn ili XGBoost ima parametar class_weight. Postavi ga tako da manjina ima veći ‘moment’. To je kao da jače zategneš šaraf na onom dijelu mašine koji stalno popušta. Ovim pristupom ne mijenjaš bazu, već mijenjaš fokus modela. Čisto, legalno i bez rizika od izmišljanja podataka koji ne postoje.
UPOZORENJE: Kod implementacije SMOTE-a, nikada, ali nikada ne primjenjuj oversampling na testni set podataka. Testni set mora ostati netaknut i odražavati realnu distribuciju svijeta. Ako to uradiš, tvoji rezultati će biti lažno visoki, a tvoj šef će te otpustiti kad model padne na prvom testu uživo.
Zašto itko i dalje briše podatke? Zabluda o brzini
Mnogi kažu: ‘Ali moj model se predugo trenira’. To je izgovor za one koji ne znaju optimizovati kod. Radije investiraj vrijeme u feature engineering nego što ćeš osakati svoju bazu. Ako imaš milione redova, koristi napredne algoritme kao što je LightGBM koji rukuje velikim podacima dok ti ispijaš kafu. Brisanje podataka zbog brzine je kao da skidaš kočnice sa auta da bi bio lakši – brži si, ali ćeš završiti u jarku.
Da li moram koristiti SMOTE za svaki projekat?
Ne. Ako je tvoj debalans blag (npr. 1:10), često je dovoljno samo koristiti bolji algoritam ili prilagoditi prag odlučivanja (threshold). SMOTE i ADASYN su za ekstremne slučajeve gdje manjina skoro da ne postoji u šumu podataka. Provjeri svoje metrike za AI model prije nego što kreneš sa teškom artiljerijom.
Anatomija katastrofe: Kako smo uništili model detekcije raka
Prije par godina, jedan tim je radio na modelu za detekciju rijetkih bolesti. Imali su ogroman debalans. Odlučili su se za undersampling većinske klase (zdravi pacijenti). Model je na papiru bio savršen. Ali u bolnici, model je počeo prijavljivati rak kod svakog drugog pacijenta. Zašto? Zato što su brisanjem zdravih pacijenata izbrisali i sve varijacije normalnih nalaza koji liče na bolest, ali to nisu. Izbrisali su ‘sivu zonu’. To je bila skupa lekcija. Nauči iz nje: podaci koji ti se čine ‘dosadnim’ često su oni koji sprečavaju lažne uzbune.
Zaključak: Majstorski pristup podacima
Rješavanje data imbalance problema nije u tome da napraviš savršen balans u bazi, već da napraviš balans u odlučivanju. Koristi SMOTE kad moraš, ADASYN kad je teško, a težinske klase kad god možeš. I zapamti, tvoj posao nije da ugodiš algoritmu, već da on služi stvarnom svijetu. Nemoj biti lijen. Ne briši podatke. Slather the logic on thick – don't be shy. Tvoj model će ti biti zahvalan kad prvi put uoči onu jednu kritičnu anomaliju u moru običnosti. Drži se koda, drži se etike i ne dopusti da tvoj bot postane žrtva tvoje želje za brzim rezultatima. Sretno u radionici.


![Kreiraj virtuelnu šetnju stanom u 5 minuta [DIY]](https://aiskola.org/wp-content/uploads/2026/02/Kreiraj-virtuelnu-setnju-stanom-u-5-minuta-DIY.jpeg)