Dobici:
- Sposobnost definiranja tipa problema (klasifikacija, regresija, grupiranje) i kriterija uspjeha prema stvarnoj cijeni posla
- Sposobnost poštene podjele podataka (bez diranja testnog skupa; kronološki u vremenskoj seriji) i uspostavljanja baze za procjenu bez curenja
- Sposobnost odabira interpretabilnog modela počevši od jednostavne osnovne linije i dodajući složenost samo kada to zaslužuje.
Do sada smo prikupljali podatke, čistili ih, istraživali i proizvodili značajke. 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 ispravno dijeljenje podataka. AI je moćan savjetnik u odabiru algoritama, pisanju koda i podešavanju parametara; ali na čovjeku je da odluči što će predvidjeti i što znači uspjeh. Loše definiran problem neće funkcionirati čak ni sa savršeno napisanim modelom.
Prvo definicija problema: što predviđamo
Svaki manekenski posao počinje pitanjem, a to pitanje određuje vrstu modela. Klasifikacija — izlaz je kategorija: "Hoće li ovaj kupac otići ili ostati?", "Je li ova transakcija lažna?". Regresija (na engleskom regression - izlaz je broj): "Koliko vrijedi ova kuća?", "Koliko će narudžbi doći sljedeći mjesec?". Grupiranje (dijeljenje neoznačenih podataka u prirodne skupine): "Na koliko prirodnih segmenata su podijeljeni moji kupci?".
Drugi dio iskaza problema je kriterij uspjeha: što znači da je ovaj model "dobar"? U modelu prijevare, propuštanje prevaranta puno je skuplje od slučajnog blokiranja poštenog kupca; Stoga u prvi plan dolazi ne "opća točnost", već "stopa hvatanja prevaranata". Ako ovaj kriterij ne definirate od početka, zajedno s vlasnikom tvrtke, dobit ćete "vrlo precizan" model koji ne funkcionira (ući ćemo dublje u metriku u jedinici 7).
Oprez: "Točnost" može dovesti u zabludu. Ako je 10 od 1000 transakcija lažno, glupi model koji kaže "nijedna nije lažna" dat će 99% točnosti, ali neće uhvatiti niti jednog prevaranta. Odaberite kriterije uspjeha na temelju stvarne cijene problema.
Podjela treninga/testiranja: iskreno ispitivanje modela
Testiranje modela s podacima koje je naučio je kao da studentu postavljate ista pitanja koja je učio/la na ispitu; Dobiva visoke ocjene, ali ne pokazuje ono što stvarno zna. Dakle, podatke dijelimo na dva (često tri):
- Skup za obuku (set za obuku na engleskom, obično 70-80%): Model uči na ovome.
- Test set (test set, obično 20-30%): Model to uopće ne vidi; ovdje se mjeri pravi učinak.
- Skup za provjeru valjanosti: Međuskup koji se koristi za postavljanje modela (koji je parametar bolji); kako bi testni set bio "čist".
Najosnovnije pravilo: ispitni set se nikada ne dira tijekom treninga. Skaliranje, kodiranje, odabir značajki — sve se jednostavno uči iz skupa za obuku, zatim se primjenjuje na testiranje (načelo curenja iz jedinice 5). Testni set je prvi put da model vidi stvarni svijet; Uključite li ga prerano, nikada nećete saznati pravi učinak.
Iznimka vremenske serije: ako vaši podaci ovise o vremenu (prodaja, burza, potražnja), nasumično dijeljenje se ne radi. Budući da nasumično dijeljenje uzrokuje da model vidi budućnost i predvidi prošlost — ovo je curenje. Umjesto toga, podijelite kronološki: trenirajte sa starim razdobljem, testirajte s novim razdobljem.
Izbor algoritma: od jednostavnog do složenog
Najčešća pogreška početnika je započeti s 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 to ne može proći, postoji problem. Zatim prijeđite na jednostavne i razumljive modele.
model
Vrsta problema
jaka točka
slabost
Osnovna vrijednost (većina/prosjek)
oboje
Daje mjerilo
ne uči
Logistička regresija
Klasifikacija
Jednostavno, razumljivo
Samo linearni odnos
Linearna regresija
regresija
Jednostavno, brzo
linearna pretpostavka
stablo odlučivanja
oboje
interpretabilan
Lagano pamćenje
slučajna šuma
oboje
Snažan, izdržljiv
Manje interpretabilan
Pojačavanje gradijenta (XGBoost itd.)
oboje
vrlo jaka
Teško se prilagoditi, postoji opasnost od pamćenja
Pravilo: odaberite najjednostavniji "dovoljno dobar" model. Interpretabilnost je u većini poslovnih konteksta vrjednija od moći; Bolje je objasniti odbijanje kredita "jer je vaš omjer duga i prihoda visok" nego "jer je crna kutija tako rekla".
tri mini kućišta
Slučaj 1 — Netočna definicija problema. Tim je izradio model klasifikacije na temelju "je li kupac zadovoljan", ali je odabrao "točnost" kao kriterij uspjeha. Prema podacima, 88% kupaca bilo je zadovoljno; Model je postigao 88% točnosti nazivajući sve "zadovoljnima" i nikada nije uhvatio nezadovoljne ljude — iako je pravi cilj bio pronaći ih. Lekcija: odaberite kriterije uspjeha na temelju stvarne svrhe.
Slučaj 2 — Curenje vremena u odjeljku. U projektu predviđanja potražnje, podaci su nasumično podijeljeni. Model je dao 93% točnosti, ali se srušio u proizvodnji jer je u obuci predvidio siječanj, zatim studeni, s podacima za prosinac - vidio je budućnost. Kada smo prešli na kronološku podjelu, stvarna izvedba je porasla na 74%. Lekcija: kronološka podjela na vremenske nizove.
Slučaj 3 — Nepotrebna složenost. Jedan analitičar započeo je izravno s dubokom neuronskom mrežom, podešavao ju je tjednima i dobio 81% točnosti. Zatim je kolega dobio 80% s 20 redaka 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 predloška za kopiranje
1) Pojašnjavanje definicije problema:
Vaša uloga: savjetnik za modeling. Pomozite mi definirati ovaj posao: "Želim smanjiti odljev kupaca." Pitajte me i razjasnite: (1) je li to klasifikacija ili regresija, (2) što je točno ciljana varijabla i kako bi je trebalo definirati, (3) koji bi trebali biti kriteriji uspjeha i zašto. Odluka je moja; predstavljate pitanja i mogućnosti.
2) Siguran odjeljak za obuku/ispitivanje:
Podijeli moj df na trening/testiranje 80%/20%. Održavati raspodjelu klasa (stratificirati).random_state=42. Ovo NIJE VREMENSKI NIZ (neovisna opažanja). Ispiši omjer klasa svakog skupa nakon dijeljenja. Samo dajte kod za dijeljenje testnom skupu bez primjene bilo kakve transformacije.
3) Kronološka podjela vremenskog niza:
Podaci ovise o vremenu (stupac datuma: datum_narudžbe). NIJE nasumično, podijelite kronološki: najstarije 80% obuke, najnovije 20% testiranja. Ispišite raspone datuma obuke i testiranja kako bih mogao provjeriti da budućnost nije procurila.
4) Postavljanje osnovne linije:
Imam problem s klasifikacijom (cilj: odljev 0/1). Najprije uspostavite osnovnu liniju: izmjerite točnost obuke/testiranja s DummyClassifierom, koji uvijek predviđa većinsku klasu. Zatim trenirajte jednostavnu logističku regresiju i usporedite je li bolja od osnovne vrijednosti. Pokažite metriku to dvoje jednu pored druge.
Slab upit / Jak upit
Slab upit:
Izgradite najbolji model s ovim podacima.
"Najbolji" je nedefiniran; Ne postoji tip problema, cilj, kriteriji uspjeha i strategija podjele. AI generira nasumični uzorak, koji je možda nepropusn.
Snažan upit:
Vaša uloga: asistent modela. Problem: klasifikacija, ciljani "odljev" (0/1), postoji neravnoteža klase (~12% odljeva). Kriterij uspjeha: Prioritet je opoziv onih koji odustaju. Promatranje neovisno o podacima (ne vremenske serije). Zadatak: (1) 80/20% stratificirana podjela, (2) DummyClassifier osnovna linija, (3) logistička regresija, sve transformacije u cjevovodu i naučene samo iz obuke. Ne dirajte set za testiranje prije cijepanja.
Ovdje su vrsta problema, neravnoteža, kriterij i mjera curenja jasni.
Uobičajene greške
- Ne birajući kriterije uspjeha prema pravoj svrsi. "Točnost" u neuravnoteženim podacima dovodi u zabludu; Ako želite uhvatiti manjinsku klasu, opoziv dolazi u prvi plan.
- Dodirivanje testnog seta tijekom treninga. Provođenje skaliranja/kodiranja prije razdvajanja je nepropusno i skriva stvarnu izvedbu.
- Slučajno dijeljenje u vremenskoj seriji. Model vidi budućnost, kolaps u proizvodnji; Bitna je kronološka podjela.
- Uskakanje u složeni model bez uspostavljanja osnovne linije. Bez mjerila ne možete znati je li model stvarno dobar ili nije.
- Ignoriranje interpretabilnosti. U poslovnim odlukama, jednostavan objašnjiv model često je vrjedniji od crne kutije.
Savjet: Prije nego počnete graditi model, napišite jednu rečenicu: "Ovaj model će predvidjeti _____, njegov uspjeh će se mjeriti metrikom _____, jer je stvarna cijena posla _____." Ako ne možete ispuniti ovu rečenicu, još niste spremni napisati kod.
Ukratko
Najkritičniji dio izgradnje modela nije kod, već odluke koje mu prethode: definiranje pravog problema (klasifikacija ili regresija, što je cilj, što je kriterij uspjeha) i pravedna podjela podataka (bez diranja testnog skupa; kronološki u vremenskoj seriji). Uvijek započnite s jednostavnom osnovnom linijom i dodajte složenost samo kada to zaslužuje; interpretabilnost se u većini poslovnih konteksta cijeni više od moći. AI je moćan savjetnik u odabiru algoritama i koda, ali čovjek odlučuje što predviđate i zašto.
Zadatak aplikacije
Definirajte 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 (kronološkom ako se radi o vremenskoj seriji), uspostavite osnovnu liniju i izmjerite krši li jednostavan obrazac tu osnovnu liniju.
popis za provjeru
- [ ] Jesam li jasno definirao vrstu problema (klasifikacija/regresija) i cilj?
- [ ] Jesam li odabrao kriterij uspjeha na temelju stvarne cijene posla?
- [ ] Jesam li ostavio ispitni set netaknut tijekom treninga?
- [ ] Ako se radi o vremenskoj seriji, jesam li je podijelio kronološki?
- [ ] Jesam li uspostavio osnovnu liniju prije prelaska na složeni model?