Poboljšajte poslovne odluke pomoću tri alata za interpretaciju strojnog učenja

Tumačenje strojnog učenja vrlo je vruća istraživačka tema i novi se znanstveni radovi i članci na ovu temu objavljuju svaki tjedan. Ovaj članak predstavlja tri komplementarna alata koji pokrivaju većinu naših potreba za strojnim učenjem u ManoManu-u gdje svakodnevno pomažemo više od milion Europljana da pronađu ono što žele u našem katalogu od 3 milijuna proizvoda za samostalno usavršavanje i bašte:

  1. Značajke značajke: koje značajke najviše koristi model?
  2. Djelomična parcela ovisnosti: kako model koristi određenu varijablu?
  3. Doprinos značajki: zašto je model dao ovo specifično predviđanje?
xkcd

Zašto trebamo tumačiti naše modele strojnog učenja?

  • Shvatite svoje poslovanje: Koji čimbenici utječu na stopu konverzije web mjesta? Kakav je utjecaj cijene otpreme na nju?
  • Stvorite povjerenje kod poslovnih kolega: Zašto je ovo predviđanje predviđanja prodaje toliko visoko? Budući da je proizvod prošlog tjedna prodat 157 puta, a sezonalnost za njegovu kategoriju raste.
  • Poduzmite odgovarajuće radnje da riješite problem: Zašto se ovaj kupac vjerojatno raspada? Jer je imao problema s kvalitetom prošlog mjeseca.
  • Otklanjanje pogrešaka / poboljšanja modela: Zašto je ovo predviđanje predviđanja prodaje tako visoko? Nedostaju vrijednosti u proizvodnom skupu podataka. Zašto smo toliko podcijenili? Prodaja ovog proizvoda bila je niska jer je bio na skladištu, a nismo primijetili.
Prediktivna snaga nasuprot dilemi tumačenja (© ManoMano)

Upotrijebite slučaj: modernizacija stope pretvorbe pomoću drveća za poticanje gradijenta

Kako bismo ilustrirali tri alata, usredotočili smo se na modelizaciju stope pretvorbe proizvoda. Evo kako izgleda naš skup treninga:

Pokušavamo predvidjeti stopu konverzije proizvoda za određeni dan, ovisno o značajkama na temelju proizvoda (cijena, ocjene, vrijeme otpreme itd.) I danu u tjednu. Da bismo pojednostavili sljedeću analizu, umjetno smo uzorkovali naš skup podataka kako bi imali prosječnu stopu konverzije od 10%.

Koristimo LightGBM, izuzetno moćan model ansambla koji koristi stabla. Ovaj se alat široko koristi u natjecanjima Data Science.

Značajka značajki

Važnost značajke je alat za izračunavanje i brzu predodžbu o korisnosti svake značajke u našem modelu. Ovaj se alat obično koristi u modelima ansambla poput Random Forest ili Gradient Boosting Drveća. Što se više značajka koristi za donošenje ključnih odluka s stablima odluka, to je veća relativna važnost. Više pojedinosti o tome kako se izračunava značajka značajki možete potražiti u ovom postu na blogu. Zamislimo grafikon važnosti značajke za naš prediktivni model:

Prema ovoj trakovnoj shemi, najvažnije značajke za predviđanje stope konverzije su cijena proizvoda, cijena otpreme, ocjene i vrijeme otpreme. To se poklapa s našim poslovnim intuicijama, što je sjajno.

Utjecaj vrijednosti koje nedostaju

Pokušajmo s drugim postavljanjem, zamislimo da imamo problem s kvalitetom podataka, a iz nekog razloga je nedostajalo 90% vrijednosti cijena. Nakon što smo prekvalificirali model, evo što dobivamo:

Mogli bismo pretpostaviti da cijena nije bitna značajka, što je potpuno pogrešno. Radije bismo trebali trošiti vrijeme na poboljšanje kvalitete podataka da bismo poboljšali svoj model. Usput, vrijednosti koje nedostaju također mogu sadržavati informacije. Na primjer, nedostatak prosječne ocjene jednostavno znači da nema ocjene i da proizvod nije popularan ili nov.

Utjecaj koreliranih varijabli

Dodajmo tri povezane (i bučne) cjenovne značajke i pogledajte što se događa:

Ovdje se važnost naše „cijene“ smanjila s 38% na 24%. Važnost ove varijable bila je raspodijeljena među njenim koreliranim varijablama. Štoviše, dodavanje bučnih značajki povećava potrošnju memorije i CPU-a i povećava rizik od prekomjernog namještanja. Zbog toga važna značajka u skladu s ovim alatom možda neće biti potrebna.

Za i protiv značajnih značajki

  • (+) Vrlo jednostavno za implementaciju, to je nekoliko redaka koda
  • (+) Brzo daje dobar uvid u signal
  • (+) Učinkovit alat za otkrivanje problema s kvalitetom podataka u skupu podataka o obuci
  • (-) korelacije osjetljive na značajke
  • (-) Osjetljivo na vrijednosti koje nedostaju
  • (-) Ne pruža odnos između značajke i ciljane funkcije (u našem primjeru znamo da je cijena vrlo povezana s ciljem, ali ne znamo u kojem smjeru)

Parcele djelomične ovisnosti

Parcele djelomične ovisnosti korisne su za vizualiziranje utjecaja značajke na predviđeni cilj, marginalizirajući vrijednosti svih ostalih značajki. Takav alat pomaže razumjeti povezanost cilja i značajke, a sve su ostale jednake. Za potpunu matematičku demonstraciju pogledajte ovo poglavlje Elementi statističkog učenja. Parcele djelomične ovisnosti mogu se koristiti sa svim modelima strojnog učenja. Preporučujemo korištenje vrlo kompletnog PDPBox python paketa.

Da ilustriramo djelomičnu ovisnost, uzmimo primjer iz stvarnog života vezan za naš slučaj upotrebe. Pretpostavimo da vlasnici tvrtki žele znati utjecaj cijena otpreme na stopu konverzije. Znajući da je cijena otpreme jako povezana s cijenom proizvoda, započinjemo izračunavanjem značajke shipping_ratio koja je omjer između cijene otpreme proizvoda i njegove ukupne cijene:

Napravimo univarijantnu analizu izračunavanjem prosječne stope pretvorbe po kanti otpreme_ratio:

Rezultirajući graf prilično je jasan: stopa pretvorbe pozitivno je povezana sa značajkom ratio_shipping! Moramo li komunicirati s vlasnicima tvrtki i savjetovati ih da povećaju cijene otpreme svih naših proizvoda kako bi se povećala stopa pretvorbe? Naravno da ne, jer povezanost ne podrazumijeva uzročno-posljedičnu vezu. Napravimo djelomičnu analizu ovisnosti o istoj varijabli i uočimo razliku:

Kao što se očekivalo i kad uzmemo u obzir sve ostale značajke koje koristi prediktivni model, značajka shipping_ratio negativno je povezana s predviđenom stopom konverzije. Imajte na umu da još uvijek ne vidimo stvarnu uzročno stanje, ali korelaciju koreliranu iz drugih značajki.

Za i protiv djelomičnih parcela ovisnosti

  • (+) Prikazuje odnos između značajke i naše varijable interesa
  • (+) Omogućuje vam da vidite neusklađeni utjecaj značajke na drugoga, u usporedbi sa standardnom univarijantnom analizom
  • (-) Za velike skupove podataka potrebno je puno vremena
  • (-) Ograničeno na dvodimenzionalne crteže
  • (-) korelacije osjetljive na značajke

Prilog o značajkama

Doprinos značajki izračunava utjecaj svake značajke na dano predviđanje. Daje mikro razumijevanje svakog predviđanja. Kao i parcele djelomične ovisnosti, doprinos značajkama može se izračunati bez obzira na model strojnog učenja. Možete se uputiti na ovaj blog blog ako želite znati kako se izračunava za slučajne šume. Funkcija predviđanja LightGBM pruža parametar za njihovo izravno izračunavanje. Predvidimo jedan od najpopularnijih proizvoda na ManoManu - Makilinu vježbu - i promatramo doprinos svake značajke:

Ovaj proizvod ima puno dobrih ocjena (644 ocjena, sa 4,69 / 5 prosječne vrijednosti). Stoga je doprinos broja ocjena procijenjenoj stopi konverzije + 12%. Međutim, njegova cijena (167,99 €) je iznad prosjeka. Skupi proizvodi imaju nižu stopu konverzije. Stoga njegov doprinos predviđenoj stopi konverzije iznosi -7,5%. Imajte na umu da je zbroj doprinosa jednak predviđenoj stopi pretvorbe (tremu također moramo dodati presretač).

Ovaj postupak možemo ponoviti za drugi proizvod i primijetiti razlike:

Čak i ako ovaj proizvod ima predviđenu stopu konverzije sličnu prethodnoj Makito bušilici, ima drugi "profil": mnogo je jeftiniji (34,2 €) i dobro je ocijenjen, ali vrijeme i cijena otpreme su odvraćajući (6,9 € za otpremu u roku 8 dana).

Kao i dvije prethodne metode, doprinos značajkama osjetljiv je na korelacije značajki: ako model hranite s dvije vrlo povezane značajke, doprinos predviđanja će biti umjetno podijeljen s dvije.

Za i protiv doprinosa značajkama

  • (+) Mikro objašnjenje predviđanja kao zbroj doprinosa značajki
  • (+) Pomaže u istraživanju predviđanja radi eventualnog preventivnog otkrivanja pogrešaka modela ili problema s kvalitetom podataka
  • (+) Izgradite povjerenje s vlasnicima tvrtki objasnivši im kako se algoritam ponaša
  • (+) Dopusti modeliranje recepta (vs prediktivno modeliranje): objašnjenje zašto kupac može prebiti pomaže poduzeti ispravne radnje
  • (-) korelacije osjetljive na značajke

Zaključci

Predstavili smo tri alata koji pokrivaju većinu naših potreba za interpretacijom na ManoManu. Neka upozorenja ako ih koristite izvan okvira:

  • Visoko povezane funkcije predstavljaju smetnju za interpretaciju strojnog učenja. Morate ih se riješiti prije nego što pokušate protumačiti svoj model.
  • Pokušaj tumačenja modela s vrlo lošim prediktivnim performansama (npr. 0,51 AUC) nema smisla. Korisnost interpretacije izravno je povezana s prediktivnim signalom snimljenim modelom.

Imajte na umu da postoje i drugi alati za interpretaciju (LIME, Shapley vrijednosti, ICE-crteži, itd.) Više informacija i matematičkih detalja o tim alatima potražite u potpunom vodiču Christopha Molnara.

Nadamo se da će ovaj članak biti koristan za vas i da brige o tumačenju više neće predstavljati problem prilikom korištenja moćnih tehnika strojnog učenja!

Napisali Jacques Peeters i Romain Ayres.

Zahvale

Alexandre Cazé, Yohan Grember, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec i svi naši veliki kolege u ManoManu.

Pridruži nam se

Tražimo nove kolege u ManoManu, pogledajte naše ponude za posao!