Üksus 6 / 11

Mudeli koostamine: probleemi defineerimine, algoritmi valimine ja koolituse/testi jagamine

Kasu:

  • Võimalus määratleda probleemi tüüp (klassifikatsioon, regressioon, rühmitamine) ja edukriteeriumid vastavalt töö tegelikule maksumusele
  • Võimalus jagada andmeid ausalt (ilma testikomplekti puudutamata; kronoloogiliselt aegreas) ja luua lekkevaba hindamisbaas
  • Võimalus valida tõlgendatav mudel, alustades lihtsast baasjoonest ja lisades keerukust ainult siis, kui see seda väärib.

Seni oleme andmeid kogunud, puhastanud, uurinud ja loonud funktsioone. Nüüd jõuame tegeliku tööni, mudeli ehitamiseni. Mudel on matemaatiline struktuur, mis õpib andmetest mustri ja loob ennustusi uuteks olukordadeks. Kuid mudeli koostamise kõige kriitilisem osa ei ole kood ise, vaid kaks sellele eelnevat otsust: õige probleemi määratlemine ja andmete õige poolitamine. AI on võimas nõustaja algoritmi valimisel, koodi kirjutamisel ja parameetrite häälestamisel; kuid see on inimese enda otsustada, mida ennustada ja mida edu tähendab. Valesti määratletud probleem ei tööta isegi täiuslikult kirjutatud mudeli korral.

Probleemi määratlus kõigepealt: mida me ennustame

Iga modelleerimistöö algab küsimusega ja see küsimus määrab mudeli tüübi. Klassifikatsioon — väljundiks on kategooria: "Kas see klient lahkub või jääb?", "Kas see tehing on võlts?". Regressioon (inglise keeles regression – väljundiks on arv): "Kui palju see maja väärt on?", "Mitu tellimust tuleb järgmisel kuul?". Klasterdamine (märgistamata andmete jagamine loomulikeks rühmadeks): "Mitu loomulikku segmenti on minu kliendid jagatud?".

Probleemi püstituse teine ​​osa on edukriteerium: mida tähendab selle mudeli puhul olla "hea"? Pettuse mudelis on petturist ilmajäämine palju kallim kui ausa kliendi kogemata blokeerimine; Seetõttu ei tõuse esile mitte "üldine täpsus", vaid "petturite tabamise määr". Kui te seda kriteeriumi algusest peale koos ettevõtte omanikuga ei määratle, saate lõpuks "väga täpse" mudeli, mis ei tööta (mõõdikutega tutvume üksikasjalikumalt 7. üksuses).

Ettevaatust: "Täpsus" võib olla eksitav. Kui 10 tehingut 1000-st on petturlikud, annab rumal mudel, mis ütleb, et ükski pole pettus, 99% täpsust, kuid ei taba mitte ühtegi petturit. Valige edukriteeriumid, lähtudes probleemi tegelikust maksumusest.

Koolitus/testi jagamine: mudeli aus uurimine

Mudeli testimine õpitud andmetega on sama, mis õpilasele samade küsimuste esitamine, mida ta eksamil õppis; Ta saab kõrgeid hindeid, kuid ei näita välja, mida ta tegelikult teab. Seega jagame andmed kaheks (sageli kolmeks):

  • Treeningkomplekt (ingliskeelne koolituskomplekt, tavaliselt 70-80%): Modell õpib selle kohta.
  • Testkomplekt (testikomplekt, tavaliselt 20-30%): mudel ei näe seda üldse; siin mõõdetakse tegelikku jõudlust.
  • Valideerimiskomplekt: mudeli seadistamiseks kasutatav vahekomplekt (milline parameeter on parem); et hoida testikomplekt "puhas".

Kõige elementaarsem reegel: treeningu ajal ei puudutata testikomplekti kunagi. Skaleerimine, kodeerimine, funktsioonide valimine – kõik lihtsalt õpitakse koolituskomplektist, seejärel rakendatakse testimisel (lekkepõhimõte üksusest 5). Testikomplekt on esimene kord, kui mudel näeb pärismaailma; Kui lülitate selle liiga vara sisse, ei saa te kunagi tõelist jõudlust teada.

Aegridade erand: kui teie andmed sõltuvad ajast (müük, aktsiaturg, nõudlus), siis juhuslikku jagamist ei tehta. Kuna juhuslik poolitamine paneb mudeli nägema tulevikku ja ennustama minevikku - see on leke. Selle asemel jaga kronoloogiliselt: treeni vana perioodiga, testi uue perioodiga.

Algoritmi valik: lihtsast keerukani

Algajate levinum viga on alustada kõige keerulisemast mudelist. Õige lähenemine on vastupidine: kõigepealt määrake lihtne lähtejoon. "arva alati ära enamusklass" klassifikatsioonis; "hinnake alati keskmist" regressioonis. See rumal mudel annab lähtetaseme; Kui teie tegelik mudel ei suuda seda läbida, on probleem. Seejärel liikuge edasi lihtsate ja tõlgendatavate mudelite juurde.

mudel

Probleemi tüüp

tugev külg

nõrkus

Algtase (enamus/keskmine)

mõlemad

Annab võrdlusaluse

ei õpi

Logistiline regressioon

Klassifikatsioon

Lihtne, tõlgendatav

Ainult lineaarne suhe

Lineaarne regressioon

regressioon

Lihtne, kiire

lineaarne eeldus

otsustuspuu

mõlemad

tõlgendatav

Lihtne meeldejätmine

juhuslik mets

mõlemad

Tugev, vastupidav

Vähem tõlgendatav

Gradiendi võimendamine (XGBoost jne)

mõlemad

väga tugev

Raske kohandada, meeldejäämise oht

Reegel: vali kõige lihtsam "piisavalt hea" mudel. Tõlgendatavus on enamikus ärikontekstides väärtuslikum kui võim; Parem on selgitada laenu tagasilükkamist "sest teie võlgade ja sissetulekute suhe on kõrge" kui "kuna must kast seda ütles".

kolm minikarpi

1. juhtum – probleemi vale määratlus. Meeskond koostas klassifitseerimismudeli, mis põhines "kas klient on rahul", kuid valis edukriteeriumiks "täpsuse". Andmetes oli rahul 88% klientidest; Modell saavutas 88% täpsuse, nimetades kõiki "rahulolevateks" ja ei tabanud rahulolematuid kunagi — kuigi tegelik eesmärk oli neid leida. Õppetund: valige edukriteeriumid tegeliku eesmärgi alusel.

Juhtum 2 – ajaleke sektsioonis. Nõudluse prognoosimise projektis jagati andmed juhuslikult. Mudel andis 93% täpsust, kuid kukkus tootmises, sest koolitusel oli detsembri andmetega ennustanud jaanuari, seejärel novembrit – see oli tulevikku näinud. Kui läksime üle kronoloogilisele jaotusele, tõusis tegelik jõudlus 74% -ni. Õppetund: kronoloogiline jaotus aegridades.

Juhtum 3 – tarbetu keerukus. Üks analüütik alustas otse sügava närvivõrguga, häälestas seda nädalaid ja sai 81% täpsuse. Siis sai kolleeg 80% 20 logistilise regressioonireaga – palju kiirem, tõlgendatav ja hõlpsamini hooldatav. Õppetund: alustage lähtejoonest ja lihtsast mudelist, lisage keerukust, kui see seda väärib.

Neli kopeeritavat malli

1) Probleemi määratluse täpsustamine:

Sinu roll: modellinõustaja. Aidake mul seda tööd määratleda: "Soovin vähendada klientide vähenemist." Küsige ja selgitage: (1) kas see on klassifikatsioon või regressioon, (2) mis täpselt on sihtmuutuja ja kuidas seda määratleda, (3) millised peaksid olema edukriteeriumid ja miks. Otsus on minu; esitate küsimused ja valikud.

2) Ohutu treening-/katseruum:

Jaga minu df treeninguks/testimiseks 80%/20%. Säilitada klassijaotus (kihistada).random_state=42. See EI OLE AJASARJA (sõltumatud vaatlused). Pärast jagamist printige iga komplekti klasside suhe. Lihtsalt andke testkomplektile poolituskood ilma transformatsiooni rakendamata.

3) Aegridade kronoloogiline jaotus:

Andmed sõltuvad ajast (kuupäeva veerg: order_date). EI ole juhuslik, jaga kronoloogiliselt: vanim 80% treening, uusim 20% testimine. Printige välja koolituse ja testimise kuupäevavahemikud, et saaksin kontrollida, kas tulevik pole lekkinud.

4) Algtaseme määramine:

Mul on klassifitseerimisprobleem (sihtmärk: churn 0/1). Esmalt määrake lähtejoon: mõõtke treeningu/testimise täpsust DummyClassifieriga, mis ennustab alati enamuse klassi. Seejärel treenige lihtsat logistilist regressiooni ja võrrelge, kas see ületab baasjoone. Näidake nende kahe mõõdikuid kõrvuti.

Nõrk viip / Tugev viip

Nõrk viip:

Looge nende andmete põhjal parim mudel.

"Parim" on määratlemata; Puudub probleemitüüp, eesmärk, edukriteeriumid ja jagunemisstrateegia. AI genereerib juhusliku mustri, mis võib olla lekkiv.

Võimas viip:

Sinu roll: modelli assistent. Probleem: klassifikatsioon, siht "churn" (0/1), esineb klasside tasakaalustamatus (~12% churn). Edukriteerium: esmatähtis on tagasi kutsuda need, kes segavad. Andmetest sõltumatu vaatlus (mitte aegread). Ülesanne: (1) 80/20% kihiline jaotus, (2) DummyClassifieri baasjoon, (3) logistiline regressioon, kõik teisendused on töös ja õpitud ainult koolitusest. Ärge puudutage testkomplekti enne poolitamist.

Siin on probleemi tüüp, tasakaalustamatus, kriteerium ja lekke mõõt selged.

Levinud vead

  • Ei vali edukriteeriume tegeliku eesmärgi järgi. Tasakaalustamata andmete "täpsus" on eksitav; Kui tahad tabada vähemusklassi, tuleb meelde tuletamine.
  • Testikomplekti puudutamine treeningu ajal. Enne jagamist skaleerimine/kodeerimine on lekkiv ja varjab tegelikku jõudlust.
  • Juhuslik poolitamine aegridades. Mudel näeb tulevikku, kukub tootmises kokku; Kronoloogiline jaotus on hädavajalik.
  • Hüppamine keerukasse mudelisse ilma baasjoont kehtestamata. Ilma võrdlusnäitajateta ei saa te teada, kas mudel on tõesti hea või mitte.
  • Tõlgendatavuse ignoreerimine. Äriotsuste puhul on lihtne seletatav mudel sageli väärtuslikum kui must kast.
Näpunäide. Enne mudeli loomise alustamist kirjutage üks lause: "See mudel ennustab _____, selle edukust mõõdetakse mõõdikuga _____, sest töö tegelik maksumus on _____." Kui te ei saa seda lauset täita, pole te veel koodi kirjutamiseks valmis.

Kokkuvõttes

Mudeli koostamise juures pole kõige kriitilisem kood, vaid sellele eelnevad otsused: õige probleemi määratlemine (klassifikatsioon või regressioon, mis on eesmärk, mis on edukriteerium) ja andmete õiglane poolitamine (ilma testikomplekti puudutamata; kronoloogiline aegreas). Alustage alati lihtsast lähtejoonest ja lisage keerukust ainult siis, kui see seda väärib; tõlgendatavust hinnatakse enamikus ärikontekstides üle võimu. AI on võimas nõuandja algoritmi valimisel ja koodide osas, kuid inimene otsustab, mida te ennustate ja miks.

Rakenduse ülesanne

Määratlege ennustusprobleem ja täitke kirjalikult järgmine lause: "See mudel ennustab ___ (klassifikatsioon/regressioon), sihtmärk on ___, edukriteerium on ___, kuna ___." Seejärel jagage andmed õige strateegiaga (kronoloogiline, kui see on aegrida), määrake lähtejoon ja mõõtke, kas lihtne muster rikub selle lähtejoone.

kontrollnimekiri

  • [ ] Kas ma olen selgelt määratlenud probleemi tüübi (klassifikatsioon/regressioon) ja eesmärgi?
  • [ ] Kas olen valinud edukriteeriumid lähtuvalt töö tegelikust maksumusest?
  • [ ] Kas ma jätsin treeningu ajal testikomplekti puutumata?
  • [ ] Kui tegemist on aegreaga, kas jagasin selle kronoloogiliselt?
  • [ ] Kas olen loonud baasjoone enne keerulise mudeli juurde asumist?