Uzlabojiet biznesa lēmumus, izmantojot trīs mašīnmācīšanās interpretācijas rīkus

Mašīnmācīšanās interpretācija ir ļoti aktuāla pētniecības tēma, un katru nedēļu tiek publicēti jauni zinātniskie raksti un raksti par šo tēmu. Šajā rakstā ir aplūkoti trīs papildinošie rīki, kas sedz lielāko daļu no mūsu mašīnmācīšanās interpretācijas vajadzībām ManoMano, kur mēs katru dienu vairāk nekā miljonam eiropiešu palīdzam atrast to, ko viņi vēlas mūsu 3 miljonu DIY un dārzkopības preču katalogā:

  1. Funkcijas nozīme: kuras funkcijas modelis izmanto visvairāk?
  2. Daļēja atkarības diagramma: kā modelī tiek izmantots īpašs mainīgais?
  3. Funkcijas ieguldījums: kāpēc modelis izteica šo īpašo prognozi?
xkcd

Kāpēc mums būtu jāinterpretē mūsu mašīnmācīšanās modeļi?

  • Izprotiet savu biznesu: kuri faktori ietekmē vietnes reklāmguvumu līmeni? Kāda ir piegādes cenas ietekme uz to?
  • Radiet uzticību biznesa partneriem: Kāpēc šī pārdošanas prognožu prognoze ir tik augsta? Tā kā produkts pagājušajā nedēļā tika pārdots 157 reizes, un sezonalitāte šai kategorijai pieaug.
  • Veiciet attiecīgas darbības, lai atrisinātu problēmu: Kāpēc šis klients, iespējams, kuļ? Tāpēc, ka viņam pagājušajā mēnesī bija kvalitātes problēmas.
  • Atkļūdot / uzlabot modeli: Kāpēc šī pārdošanas prognožu prognoze ir tik augsta? Trūkst vērtības ražošanas datu kopā. Kāpēc mēs tik ļoti pareģojām? Šī produkta pārdošanas apjomi bija zemi, jo tas nebija pieejams, un mēs to nebijām pamanījuši.
Paredzamā jauda salīdzinājumā ar interpretācijas dilemmu (© ManoMano)

Izmantošanas gadījums: reklāmguvumu līmeņa modelēšana, izmantojot gradienta palielināšanas kokus

Lai ilustrētu trīs rīkus, mēs koncentrējamies uz produkta konvertēšanas līmeņa modelēšanu. Lūk, kā izskatās mūsu apmācības datu kopa:

Mēs cenšamies paredzēt produkta reklāmguvumu līmeni noteiktā dienā atkarībā no produkta īpašībām (cena, vērtējumi, piegādes laiks utt.) Un nedēļas dienu. Lai vienkāršotu turpmāko analīzi, mēs mākslīgi atlasām mūsu datu kopu, lai vidējais reklāmguvumu līmenis būtu 10%.

Mēs izmantojam ļoti spēcīgu ansambļa modeli LightGBM, kurā tiek izmantoti koki. Šis rīks tiek plaši izmantots datu zinātnes konkursos.

Funkcijas nozīme

Funkcijas nozīme ir rīks, kas ļauj aprēķināt un ātri iztēloties, cik noderīga ir katra mūsu modeļa funkcija. Šo rīku parasti izmanto ansambļu modeļos, piemēram, Random Forest vai Gradient Boosting Trees. Jo vairāk šī funkcija tiek izmantota galveno lēmumu pieņemšanā ar lēmumu pieņemšanas kokiem, jo ​​augstāka ir tā relatīvā nozīme. Lai iegūtu papildinformāciju par to, kā tiek aprēķināta funkcijas nozīme, varat atsaukties uz šo emuāra ziņu. Vizualizēsim mūsu jutīgā modeļa funkcijas svarīguma diagrammu:

Saskaņā ar šo joslu diagrammu vissvarīgākās funkcijas, lai prognozētu reklāmguvumu līmeņus, ir produkta cena, nosūtīšanas cena, vērtējumi un nosūtīšanas laiks. Tas sakrīt ar mūsu biznesa intuīciju, kas ir lieliski.

Trūkstošo vērtību ietekme

Izmēģināsim citu iestatīšanu, iedomājamies, ka mums ir datu kvalitātes problēma, un kaut kādu iemeslu dēļ trūka 90% no cenu vērtībām. Pēc modeļa pārkvalifikācijas mēs to iegūstam:

Mēs varētu pieņemt, ka cena nav svarīga iezīme, kas ir pilnīgi nepareizi. Mums drīzāk vajadzētu tērēt laiku datu kvalitātes uzlabošanai, lai uzlabotu mūsu modeli. Starp citu, trūkstošajās vērtībās var būt arī informācija. Piemēram, ja trūkst vidējā reitinga, tas vienkārši nozīmē, ka nav vērtējumu un ka produkts nav populārs vai jauns.

Korelēto mainīgo ietekme

Pievienosim trīs savstarpēji saistītas (un trokšņainas) cenu funkcijas un redzēsim, kas notiek:

Šeit mūsu funkcijas “cena” nozīme samazinājās no 38% līdz 24%. Šī mainīgā lielums tika sadalīts starp tā korelētajiem mainīgajiem. Turklāt trokšņainu funkciju pievienošana palielina atmiņu un CPU izmantošanu un palielina pārmērīgas uzstādīšanas risku. Tāpēc svarīga funkcija, kas paredzēta šim rīkam, var nebūt nepieciešama.

Funkcijas svarīgums plusos un mīnusos

  • (+) Ļoti vienkārša ieviešana, tas ir dažas koda rindiņas
  • (+) Ātri sniedz labu ieskatu signālā
  • (+) Efektīvs rīks datu kvalitātes problēmu noteikšanai apmācības datu kopā
  • (-) Jutīga pret pazīmju korelācijām
  • (-) Jutīgs pret trūkstošajām vērtībām
  • (-) nenodrošina saikni starp funkciju un mērķa funkciju (mūsu piemērā mēs zinām, ka cena ir ļoti korelēta ar mērķi, bet mēs nezinām, kurā virzienā)

Daļējas atkarības parauglaukumi

Daļējas atkarības diagrammas ir noderīgas, lai vizualizētu objekta ietekmi uz paredzamo mērķi, atstumjot visu citu pazīmju vērtības. Šāds rīks palīdz izprast korelāciju starp mērķi un objektu, visām pārējām lietām esot vienādām. Pilnīgu matemātisko demonstrāciju var atrast šajā nodaļā “Statistiskās mācīšanās elementi”. Daļēju atkarības grafiku var izmantot katram mašīnmācīšanās modelim. Mēs iesakām izmantot ļoti pilnīgu PDPBox python paketi.

Lai ilustrētu daļēju atkarību, ņemsim reālās dzīves piemēru, kas saistīts ar mūsu lietošanas gadījumu. Pieņemsim, ka uzņēmumu īpašnieki vēlas uzzināt, kā kuģniecības cenas ietekmē reklāmguvumu līmeni. Zinot, ka nosūtīšanas cena ir ļoti saistīta ar produkta cenu, mēs vispirms sākam aprēķināt funkciju ship_ratio, kas ir attiecība starp preces nosūtīšanas cenu un tās kopējo cenu:

Veiksim vienvērtīgu analīzi, vidējo reklāmguvumu līmeni aprēķinot ar ship_ratio atkritumu tvertni:

Iegūtā diagramma ir diezgan skaidra: reklāmguvumu līmenis ir pozitīvi korelēts ar ratio_shipping funkciju! Vai mēs sazināsimies ar uzņēmumu īpašniekiem un iesakām viņiem paaugstināt visu mūsu produktu nosūtīšanas cenas, lai paaugstinātu konversijas likmi? Protams, nē, jo korelācija nenozīmē cēloņsakarību. Veiksim daļēju atkarības analīzi no tā paša mainīgā un novērojam atšķirību:

Kā gaidīts, un, ja ņemam vērā visas pārējās prognozes modeļa izmantotās funkcijas, ship_ratio funkcija ir negatīvi korelēta ar paredzamo reklāmguvumu līmeni. Ņemiet vērā, ka mēs joprojām neredzam reālu cēloņsakarību, bet no citām funkcijām koriģētu korelāciju.

Daļējas atkarības zemes gabalu plusi un mīnusi

  • (+) Parāda saikni starp objektu un mūsu interesējošo mainīgo
  • (+) Ļauj saskatīt objekta nekorelēto ietekmi uz citu, salīdzinot ar standarta viendimensionālo analīzi
  • (-) Laikietilpīgs lielām datu kopām
  • (-) Tikai divdimensiju parauglaukumos
  • (-) Jutīga pret pazīmju korelācijām

Funkcijas ieguldījums

Funkcijas ieguldījums aprēķina katras funkcijas ietekmi uz noteikto prognozi. Tas dod mikro izpratni par katru paredzējumu. Līdzīgi kā daļējas atkarības diagrammas, funkcijas ieguldījumu var aprēķināt neatkarīgi no izmantotā mašīnmācīšanās modeļa. Varat atsaukties uz šo emuāra ierakstu, ja vēlaties uzzināt, kā tas tiek aprēķināts Random Forests. Prognozēšanas funkcija LightGBM nodrošina parametru, lai tos tieši aprēķinātu. Paredzēsim vienu no populārākajiem “ManoMano” produktiem - urbumu no Makita - un novērojam katras funkcijas ieguldījumu:

Šim produktam ir daudz labu vērtējumu (644 vērtējumi ar vidējo vērtību 4,69 / 5). Tāpēc reitingu skaita ieguldījums prognozētajā konversijas likmē ir + 12%. Tomēr tā cena (167.99 €) pārsniedz vidējo. Dārgiem izstrādājumiem parasti ir zemāks reklāmguvumu līmenis. Tāpēc tās ieguldījums prognozētajā konversijas likmē ir -7,5%. Ņemiet vērā, ka iemaksu summa ir vienāda ar prognozēto konversijas likmi (summai jāpieskaita arī pārtveršana).

Mēs varam atkārtot šo procesu citam produktam un novērot atšķirības:

Pat ja šim produktam ir prognozēts maiņas kurss, kas līdzīgs iepriekšējam Makita sējmašīnai, tam ir cits “profils”: tas ir daudz lētāks (34,2 €) un ir labi novērtēts, bet nosūtīšanas laiks un cena ir preventīvi (6,9 € par nosūtīšanu laikā 8 dienas).

Līdzīgi kā abas iepriekšējās metodes, objekta ieguldījums ir jutīgs pret pazīmju korelāciju: ja barojat modeli ar divām ļoti savstarpēji saistītām pazīmēm, prognozēšanas ieguldījums tiks mākslīgi dalīts ar diviem.

Funkcijas ieguldījuma plusi un mīnusi

  • (+) Mikroizskaidrojums par prognozi kā elementu iemaksu summu
  • (+) Palīdz izpētīt prognozes, lai galu galā priekšlaicīgi atklātu modeļa kļūdas vai datu kvalitātes problēmas
  • (+) Veidojiet uzticību uzņēmumu īpašniekiem, izskaidrojot viņiem, kā darbojas algoritms
  • (+) Atļaut preskriptīvu modelēšanu (prediktīvo modelēšanu): izskaidrojums, kāpēc klients var uzmācīties, palīdz veikt pareizās darbības
  • (-) Jutīga pret pazīmju korelācijām

Secinājumi

Mēs esam prezentējuši trīs rīkus, kas aptver lielāko daļu mūsu interpretācijas vajadzību vietnē ManoMano. Daži brīdinājumi, ja tos izmantojat ārpus kastes:

  • Mašīnapmācības interpretācijas traucēklis ir ļoti savstarpēji saistītas. Pirms mēģināt interpretēt savu modeli, jums no tiem ir jāatbrīvojas.
  • Mēģināt interpretēt modeļus ar ļoti zemu paredzamo veiktspēju (piemēram, 0,51 AUC) nav jēgas. Interpretācijas lietderība ir tieši saistīta ar modeļa uztverto jutīgo signālu.

Paturiet prātā, ka pastāv arī citi interpretācijas rīki (LIME, Shapley vērtības, ICE diagrammas utt.) Lai iegūtu papildinformāciju un matemātisko informāciju par šiem rīkiem, skatiet Christoph Molnar pilnīgu rokasgrāmatu.

Mēs ceram, ka šis raksts jums būs noderīgs un, izmantojot jaudīgas mašīnmācīšanās metodes, interpretācijas problēmas vairs nebūs problēma!

Raksta Žaks Pīters un Romēns Airess.

Pateicības

Alexandre Cazé, Yohan Grember, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec un visi mūsu lieliski kolēģi ManoMano.

Pievienojies mums

Mēs meklējam jaunus kolēģus ManoMano, ieskatieties mūsu darba piedāvājumos!