Dobici:
- Sposobnost definiranja tipa problema (klasifikacija, regresija, grupiranje) i kriterija uspješnosti prema stvarnoj cijeni posla
- Sposobnost poštene podjele podataka (bez dodirivanja testnog skupa; hronološki u vremenskoj seriji) i uspostavljanja osnove za procjenu bez curenja
- Sposobnost odabira modela koji se može interpretirati počevši od jednostavne osnove i dodavanjem složenosti samo kada to zaslužuje.
Do sada smo prikupili podatke, očistili ih, istražili i proizveli karakteristike. Sada dolazimo do pravog posla, izgradnje modela. Model je matematička struktura koja uči obrazac iz podataka i proizvodi predviđanja za nove situacije. Ali najkritičniji dio izgradnje modela nije sam kod, već dvije odluke koje mu prethode: definiranje pravog problema i ispravna podjela podataka. AI je moćan savjetnik u odabiru algoritama, pisanju koda i podešavanju parametara; ali na jednom je da odluči šta da predvidi i šta uspeh znači. Loše definisan problem neće raditi čak ni sa savršeno napisanim modelom.
Prvo definicija problema: šta predviđamo
Svaki posao modeliranja počinje pitanjem, a ovo pitanje određuje tip modela. Klasifikacija — izlaz je kategorija: "Hoće li ovaj kupac otići ili ostati?", "Da li je ova transakcija lažna?". Regresija (na engleskom regression - izlaz je broj): "Koliko vrijedi ova kuća?", "Koliko će narudžbi doći sljedećeg mjeseca?". Grupiranje (podjela neoznačenih podataka u prirodne grupe): "Na koliko prirodnih segmenata su podijeljeni moji kupci?".
Drugi dio iskaza problema je kriterij uspjeha: šta znači da ovaj model bude „dobar“? U modelu prevare, propuštanje prevaranta je mnogo skuplje nego slučajno blokiranje poštenog kupca; Dakle, ne dolazi do izražaja "opšta tačnost", već "stopa hvatanja prevaranata". Ako ovaj kriterijum ne definišete od početka, zajedno sa vlasnikom preduzeća, na kraju ćete dobiti „veoma tačan“ model koji ne funkcioniše (ući ćemo dublje u metriku u jedinici 7).
Oprez: "Preciznost" može dovesti u zabludu. Ako je 10 od 1000 transakcija lažno, glupi model koji kaže "nijedna nije lažna" će dati 99% tačnosti, ali neće uhvatiti nijednog prevaranta. Odaberite kriterij uspjeha na osnovu stvarne cijene problema.
Podjela obuke/testiranja: pošteno ispitivanje modela
Testiranje modela sa podacima koje je naučio je kao da studentu postavljate ista pitanja koja je proučavao na ispitu; Dobiva visoke ocjene, ali ne pokazuje šta zaista zna. Stoga smo podijelili podatke na dva (često tri):
- Set za obuku (set za obuku na engleskom, obično 70-80%): model uči na ovome.
- Testni set (testni set, obično 20-30%): model to uopšte ne vidi; ovdje se mjeri stvarni učinak.
- Set za validaciju: srednji skup koji se koristi za podešavanje modela (koji je parametar bolji); da bi test set bio "čist".
Najosnovnije pravilo: test set se nikada ne dira tokom treninga. Skaliranje, kodiranje, odabir karakteristika — sve se jednostavno uči iz skupa za obuku, a zatim se primjenjuje na testiranje (princip curenja iz jedinice 5). Testni set je prvi put da model vidi stvarni svijet; Ako ga uključite prerano, nikada nećete saznati pravi učinak.
Izuzetak vremenske serije: Ako vaši podaci ovise o vremenu (prodaja, berza, potražnja), ne vrši se nasumično podjele. Budući da nasumično cijepanje uzrokuje da model vidi budućnost i predvidi prošlost – to je curenje. Umjesto toga, podijelite hronološki: trenirajte sa starim periodom, testirajte s novim periodom.
Izbor algoritma: od jednostavnog do složenog
Najčešća greška početnika je da počnu sa najsloženijim modelom. Ispravan pristup je suprotan: prvo uspostavite jednostavnu osnovu. "uvijek pogodi većinsku klasu" u klasifikaciji; "uvijek procijeni srednju vrijednost" u regresiji. Ovaj glupi model daje osnovu; Ako vaš stvarni model ne može proći ovo, postoji problem. Zatim prijeđite na jednostavne i razumljive modele.
model
Vrsta problema
jaka tačka
slabost
Polazna linija (većina/prosjek)
oboje
Daje benchmark
ne uči
Logistička regresija
Klasifikacija
Jednostavno, razumljivo
Samo linearni odnos
Linearna regresija
regresija
Jednostavno, brzo
linearna pretpostavka
drvo odlučivanja
oboje
interpretable
Lako pamćenje
slučajna šuma
oboje
Jaka, izdržljiva
Manje interpretabilno
Pojačavanje gradijenta (XGBoost itd.)
oboje
veoma jaka
Teško se prilagođava, postoji rizik od pamćenja
Pravilo: izaberite najjednostavniji "dovoljno dobar" model. Interpretabilnost je vrednija od moći u većini poslovnih konteksta; Bolje je objasniti odbijanje kredita "jer je vaš odnos duga i prihoda visok" nego "zato što je to rekla crna kutija".
tri mini kofera
Slučaj 1 — Netačna definicija problema. Tim je napravio model klasifikacije zasnovan na "da li je kupac zadovoljan", ali je izabrao "tačnost" kao kriterijum uspeha. U podacima, 88% kupaca je bilo zadovoljno; Model je dobio 88% tačnosti tako što je sve nazvao "zadovoljnim" i nikada nije uhvatio nezadovoljne ljude — iako je pravi cilj bio pronaći ih. Lekcija: birajte kriterijume uspeha na osnovu stvarne svrhe.
Slučaj 2 — Curenje vremena u odjeljku. U projektu predviđanja potražnje, podaci su nasumično podijeljeni. Model je dao 93% tačnosti, ali je pao u proizvodnji jer je tokom obuke predvideo januar, pa novembar, sa podacima iz decembra - video je budućnost. Kada smo prešli na kronološku podjelu, stvarni učinak je povećan na 74%. Lekcija: hronološka podjela u vremenskim serijama.
Slučaj 3 — Nepotrebna složenost. Jedan analitičar je počeo direktno sa dubokom neuronskom mrežom, podešavao je nedeljama i dobio 81% tačnosti. Zatim je kolega dobio 80% sa 20 linija logističke regresije — mnogo brže, razumljivo i lakše za održavanje. Lekcija: počnite s osnovnom linijom i jednostavnim modelom, dodajte složenost kada to zaslužuje.
Četiri šablona za kopiranje
1) Pojašnjavanje definicije problema:
Vaša uloga: konsultant za modeliranje. Pomozite mi da definiram ovaj posao: "Želim smanjiti odljev kupaca." Pitajte me i pojasnite: (1) da li je ovo klasifikacija ili regresija, (2) šta je tačno ciljna varijabla i kako je treba definisati, (3) koji bi trebalo da budu kriterijumi uspeha i zašto. Odluka je moja; predstavljate pitanja i opcije.
2) Sigurno odjeljak za obuku/testiranje:
Podijelite moj df na trening/testiranje 80%/20%. Održavanje distribucije klasa (stratify).random_state=42. Ovo NIJE VREMENSKA SERIJA (nezavisna zapažanja). Ispišite omjer klasa svakog skupa nakon dijeljenja. Samo dajte kod za razdvajanje testnom skupu bez primjene ikakve transformacije.
3) Hronološka podjela vremenskih serija:
Podaci ovise o vremenu (stupac datuma: order_date). NE nasumično, podijelite hronološki: najstariji 80% trening, najnoviji 20% testiranje. Odštampajte raspon datuma obuke i testiranja kako bih mogao provjeriti da budućnost nije procurila.
4) Postavljanje osnovne linije:
Imam problem sa klasifikacijom (cilj: odljev 0/1). Prvo uspostavite osnovnu liniju: mjerite tačnost treninga/testiranja pomoću DummyClassifier-a, koji uvijek predviđa klasu većine. Zatim trenirajte jednostavnu logističku regresiju i uporedite da li nadmašuje osnovnu liniju. Pokažite metriku ova dva uporedo.
Slaba prompt / Jaka prompt
Slab upit:
Izgradite najbolji model sa ovim podacima.
"Najbolji" je nedefinisan; Nema vrste problema, nema cilja, nema kriterija uspjeha i nema strategije podjele. AI generira nasumični uzorak, možda propuštajući.
Snažan upit:
Vaša uloga: asistent modelinga. Problem: klasifikacija, ciljni "odliv" (0/1), postoji neravnoteža klasa (~12% odljeva). Kriterijum uspjeha: Pozivanje onih koji odbacuju je prioritet. Podaci nezavisno posmatranje (ne vremenske serije). Zadatak: (1) 80/20% stratificirana podjela, (2) DummyClassifier osnovna linija, (3) logistička regresija, sve transformacije u toku i naučeno samo iz obuke. Ne dirajte test set prije razdvajanja.
Ovdje su jasni tip problema, neravnoteža, kriterij i mjera curenja.
Uobičajene greške
- Ne biranje kriterija uspjeha prema stvarnoj svrsi. "Tačnost" u neuravnoteženim podacima je obmanjujuća; Ako želite da uhvatite manjinsku klasu, opoziv dolazi u prvi plan.
- Dodirivanje testnog seta tokom treninga. Skaliranje/kodiranje prije razdvajanja propušta i skriva stvarne performanse.
- Slučajno dijeljenje u vremenskim serijama. Model vidi budućnost, kolapsira u proizvodnji; Hronološka podjela je neophodna.
- Uskakanje u složeni model bez uspostavljanja osnovne linije. Bez benčmarka ne možete znati da li je model zaista dobar ili ne.
- Ignoriranje interpretabilnosti. U poslovnim odlukama, jednostavan objašnjiv model je često vredniji od crne kutije.
Savjet: Pre nego što počnete da pravite model, napišite jednu rečenicu: „Ovaj model će predvideti _____, njegov uspeh će se meriti metrikom _____, jer je prava cena posla _____. Ako ne možete popuniti ovu rečenicu, još niste spremni za pisanje koda.
Ukratko
Najkritičniji dio izgradnje modela nije kod, već odluke koje mu prethode: definiranje pravog problema (klasifikacija ili regresija, šta je cilj, koji je kriterij uspjeha) i pravedno podjele podataka (bez dodirivanja testnog skupa; hronološki u vremenskoj seriji). Uvijek počnite s jednostavnom osnovnom linijom i dodajte složenost samo kada to zaslužuje; interpretabilnost se vrednuje iznad moći u većini poslovnih konteksta. AI je moćan savjetnik u odabiru algoritama i kodu, ali čovjek odlučuje šta predviđate i zašto.
Zadatak aplikacije
Definišite problem predviđanja i pismeno dovršite sljedeću rečenicu: “Ovaj model će predvidjeti ___ (klasifikacija/regresija), cilj je ___, kriterij uspjeha je ___ jer ___.” Zatim podijelite podatke s pravom strategijom (hronološki ako se radi o vremenskoj seriji), uspostavite osnovnu liniju i izmjerite da li jednostavan obrazac krši tu osnovnu liniju.
kontrolna lista
- [ ] Da li sam jasno definisao tip problema (klasifikacija/regresija) i cilj?
- [ ] Jesam li odabrao kriterij uspjeha na osnovu stvarne cijene posla?
- [ ] Da li sam ostavio test set netaknut tokom treninga?
- [ ] Ako je u pitanju vremenska serija, da li sam je podelio hronološki?
- [ ] Jesam li uspostavio osnovnu liniju prije prelaska na složeni model?