Pagerinkite verslo sprendimus naudodamiesi trimis mašininio mokymosi aiškinimo įrankiais

Mašinų mokymosi aiškinamumas yra labai aktuali tyrimų tema, todėl nauji moksliniai straipsniai ir straipsniai šia tema skelbiami kiekvieną savaitę. Šiame straipsnyje pateikiami trys papildomi įrankiai, tenkinantys didžiąją dalį „ManoMano“ mokymosi, susijusio su mašinomis, aiškinimo, kur mes kasdien padedame daugiau nei milijonui europiečių rasti tai, ko jie nori, iš 3 milijonų „pasidaryk pats“ ir sodo gaminių katalogo:

  1. Funkcijos svarba: kokias savybes modelis naudoja labiausiai?
  2. Dalinės priklausomybės diagrama: kaip modelis naudoja tam tikrą kintamąjį?
  3. Funkcijos indėlis: kodėl modelis padarė šią konkrečią prognozę?
xkcd

Kodėl turėtume aiškinti savo mašininio mokymosi modelius?

  • Supraskite savo verslą: kokie veiksniai lemia svetainės konversijos koeficientą? Kokią įtaką tai turi gabenimo kaina?
  • Sukurkite pasitikėjimą verslo partneriais: kodėl ši pardavimo prognozė yra tokia aukšta? Kadangi praėjusią savaitę produktas buvo parduotas 157 kartus, o jo kategorijos sezoniškumas auga.
  • Imkitės atitinkamų veiksmų, kad išspręstumėte problemą: Kodėl šis klientas gali keistis? Nes praėjusį mėnesį jis turėjo kokybės problemų.
  • Derinkite / patobulinkite modelį: kodėl ši pardavimo prognozė yra tokia aukšta? Trūksta vertės gamybos duomenų rinkinyje. Kodėl mes tiek daug prognozavome? Šio produkto pardavimai buvo maži, nes jo nebuvo sandėlyje ir mes to nepastebėjome.
Nuspėjamoji galia ir aiškinimo dilema (© „ManoMano“)

Naudojimo atvejis: konversijų rodiklio modeliavimas naudojant gradiento didinimo medžius

Norėdami iliustruoti tris įrankius, mes sutelkiame dėmesį į produkto perskaičiavimo kurso modeliavimą. Štai kaip atrodo mūsų mokymo duomenų rinkinys:

Mes stengiamės numatyti prekės konvertavimo kursą konkrečią dieną, atsižvelgiant į produkto savybes (kainą, reitingus, pristatymo laiką ir kt.) Ir savaitės dieną. Norėdami supaprastinti šią analizę, mes dirbtinai imame savo duomenų rinkinį, kad vidutinis konversijos koeficientas būtų 10%.

Mes naudojame „LightGBM“, nepaprastai galingą ansamblio modelį, kuriame naudojami medžiai. Ši priemonė yra plačiai naudojama duomenų mokslo konkursuose.

Funkcijos svarba

Funkcijos svarba yra įrankis, skirtas apskaičiuoti ir greitai įsivaizduoti, kokia naudinga kiekviena mūsų modelio funkcija. Ši priemonė dažniausiai naudojama ansamblių modeliuose, tokiuose kaip „Random Forest“ arba „Gradient Boosting Trees“. Kuo labiau funkcija naudojama pagrindiniams sprendimams priimti naudojant sprendimų medžius, tuo didesnė jo santykinė svarba. Norėdami gauti daugiau informacijos apie tai, kaip apskaičiuojama funkcijos svarba, galite rasti šiame tinklaraščio įraše. Įsivaizduokime funkcijos numatymo modelio svarbą:

Remiantis šia juostine diagrama, svarbiausios savybės numatyti perskaičiavimo kursus yra produkto kaina, pristatymo kaina, reitingai ir pristatymo laikas. Tai sutampa su mūsų verslo intuicija, o tai yra puiku.

Trūkstamų verčių įtaka

Pabandykime kitą sąranką, įsivaizduokime, kad turime duomenų kokybės problemų, ir dėl tam tikrų priežasčių trūko 90% kainos verčių. Perkvalifikavę modelį, mes gauname tai:

Galėtume manyti, kad kaina nėra svarbi savybė, o tai yra visiškai neteisinga. Geriau turėtume skirti laiko duomenų kokybės gerinimui, kad patobulintume savo modelį. Beje, dingusiose reikšmėse taip pat gali būti informacijos. Pvz., Jei trūksta vidutinio įvertinimo, paprasčiausiai reiškia, kad nėra įvertinimų ir kad produktas nėra populiarus ar naujas.

Koreliuotų kintamųjų įtaka

Pridėkime tris koreliuotas (ir triukšmingas) kainų savybes ir pažiūrėkime, kas atsitiks:

Čia mūsų funkcijos „kaina“ svarba sumažėjo nuo 38% iki 24%. Šio kintamojo svarba buvo paskirstyta tarp koreliuotų kintamųjų. Be to, pridedant triukšmingų funkcijų padidėja atmintis ir procesoriaus naudojimas bei padidėja perteklinio įrengimo rizika. Todėl svarbi priemonė pagal šį įrankį gali būti nebūtina.

Funkcijos svarbos pliusai ir minusai

  • (+) Labai paprasta įdiegti, tai yra kelios kodo eilutės
  • (+) Greitai suteikia gerą įžvalgą apie signalą
  • (+) Veiksminga priemonė duomenų kokybės problemoms aptikti mokymo duomenų rinkinyje
  • (-) Jautrus požymių ryšiams
  • (-) Jautrus trūkstamoms vertėms
  • (-) nepateikia ryšio tarp objekto ir tikslinės funkcijos (mūsų pavyzdyje mes žinome, kad kaina labai koreliuoja su tikslu, bet nežinome, kuria kryptimi)

Dalinės priklausomybės sklypai

Dalinės priklausomybės brėžiniai yra naudingi, norint vizualizuoti objekto poveikį numatomam tikslui, panaikinant visų kitų ypatybių reikšmes. Toks įrankis padeda suprasti tikslo ir ypatybės koreliaciją, visi kiti dalykai yra lygūs. Norėdami gauti išsamų matematinį įrodymą, galite perskaityti šį skyrių „Statistinio mokymosi elementai“. Dalinės priklausomybės brėžiniai gali būti naudojami su visais mašininio mokymosi modeliais. Mes rekomenduojame naudoti labai išsamų „PDPBox python“ paketą.

Pabrėžkime dalinę priklausomybę, paimkime realaus gyvenimo pavyzdį, susijusį su mūsų naudojimo atveju. Tarkime, kad verslo savininkai nori žinoti gabenimo kainų įtaką konversijos kursui. Žinodami, kad gabenimo kaina yra labai koreliuojama su produkto kaina, pirmiausia pradedame apskaičiuoti funkciją ship_ratio, kuri yra santykis tarp prekės gabenimo kainos ir visos jos kainos:

Padarykime vieno varianto analizę, vidutinį konversijos koeficientą apskaičiuodami iš ship_ratio šiukšliadėžės:

Gauta diagrama yra gana aiški: perskaičiavimo koeficientas yra teigiamai koreliuojamas su santykiu_susiuntimo funkcija! Ar turėsime bendrauti su verslo savininkais ir patarti jiems padidinti visų mūsų produktų pristatymo kainas, kad padidintume perskaičiavimo kursą? Žinoma, ne, nes koreliacija nereiškia priežastinio ryšio. Padarysime dalinę priklausomybės nuo to paties kintamojo analizę ir stebėsime skirtumą:

Kaip ir tikėtasi, ir kai atsižvelgsime į visas kitas prognozavimo modelio naudojamas ypatybes, ship_ratio funkcija yra neigiamai koreliuojama su numatomu konversijos koeficientu. Atminkite, kad vis dar nematome tikrojo priežastinio ryšio, tačiau koreliacija ištaisyta atsižvelgiant į kitas savybes.

Dalinės priklausomybės sklypų pliusai ir minusai

  • (+) Parodo santykį tarp objekto ir mūsų dominančio kintamojo
  • (+) Leidžia pamatyti nesusijusią objekto įtaką kitam, palyginti su standartine vienarūše analize
  • (-) Laiku reikalaujanti dideli duomenų rinkiniai
  • (-) Tik dvimatėse vietose
  • (-) Jautrus požymių koreliacijai

Funkcijos indėlis

Funkcijos indėlis apskaičiuoja kiekvienos savybės poveikį numatytai prognozei. Tai suteikia mikro supratimą apie kiekvieną numatymą. Kaip ir dalinės priklausomybės brėžiniai, funkcijos indėlis gali būti apskaičiuojamas nepriklausomai nuo naudojamo kompiuterinio mokymosi modelio. Galite kreiptis į šį tinklaraščio įrašą, jei norite sužinoti, kaip jis apskaičiuojamas „Random Forests“. „LightGBM“ numatymo funkcija suteikia parametrą tiesiogiai juos apskaičiuoti. Prognozuokime vieną iš populiariausių „ManoMano“ produktų - gręžtuvą iš „Makita“ ir stebėkime kiekvienos funkcijos indėlį:

Šis produktas turi daug gerų įvertinimų (644 įvertinimai, kurių vidutinė vertė yra 4,69 / 5). Todėl reitingų skaičiaus indėlis į numatomą perskaičiavimo kursą yra + 12%. Tačiau jo kaina (167,99 €) viršija vidutinę. Brangių produktų konversijų rodiklis paprastai būna mažesnis. Todėl jos indėlis į prognozuojamą perskaičiavimo kursą yra –7,5%. Atminkite, kad įmokų suma yra lygi numatytam perskaičiavimo kursui (prie sumos taip pat turime pridėti pertraukimą).

Galime pakartoti šį procesą kitam produktui ir pastebėti skirtumus:

Net jei šio produkto numatomas perskaičiavimo kursas yra panašus į ankstesnio „Makita“ gręžtuvo, jis turi kitą „profilį“: jis yra daug pigesnis (34,2 €) ir yra gerai įvertintas, tačiau gabenimo laikas ir kaina yra atgrasantys (6,9 € už gabenimą per 8 dienos).

Kaip ir du ankstesni metodai, bruožų indėlis yra jautrus bruožų koreliacijai: jei pateikiate modelį su dviem labai koreliuojančiais požymiais, numatymo indėlis bus dirbtinai padalytas iš dviejų.

Priemonės už ir prieš

  • (+) Mikro paaiškinimas, koks yra numatymas kaip elementų indėlių suma
  • (+) Padeda ištirti prognozes, kad galų gale būtų galima aptikti modelio klaidas ar duomenų kokybės problemas
  • (+) Sukurkite pasitikėjimą verslo savininkais, paaiškindami jiems, kaip elgiasi algoritmas
  • (+) Leisti receptinį modeliavimą (palyginti su nuspėjamuoju modeliavimu): paaiškinimas, kodėl klientas gali sukramtyti, padeda atlikti teisingus veiksmus.
  • (-) Jautrus požymių koreliacijai

Išvados

Mes pristatėme tris įrankius, tenkinančius didžiąją dalį mūsų interpretacijos poreikių „ManoMano“. Keli įspėjimai, jei juos naudosite iš dėžutės:

  • Labai koreliuojamos savybės kenkia mašininio mokymosi aiškinamumui. Prieš bandydami aiškinti savo modelį, turite jų atsikratyti.
  • Bandyti aiškinti labai prastų prognozuojamų rezultatų modelius (pvz., 0,51 AUC) nėra prasmės. Interpretacijos naudingumas yra tiesiogiai susijęs su numatomu signalu, kurį užfiksuoja modelis.

Atminkite, kad yra ir kitų aiškinimo įrankių (LIME, Shapley reikšmės, ICE brėžiniai ir tt). Norėdami gauti daugiau informacijos ir matematinę informaciją apie šias priemones, skaitykite Christoph Molnar išsamiame vadove.

Tikimės, kad šis straipsnis jums bus naudingas ir kad aiškinimas dėl aiškumo nebebus problema, kai naudojami galingi mašinų mokymosi būdai!

Parašė Jacques'as Peetersas ir Romainas Ayresas.

Padėkos

Alexandre Cazé, Yohanas Gremberis, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec ir visi mūsų puikūs kolegos iš „ManoMano“.

Prisijunk prie mūsų

Mes ieškome naujų kolegų „ManoMano“, pasižiūrėkite į mūsų darbo pasiūlymus!