Retenado: kiel ni skribis malfermfontajn produktajn analitikajn ilojn en Python kaj Pandas

Hej Habr. Ĉi tiu artikolo estas dediĉita al la rezultoj de kvarjara disvolviĝo de aro da metodoj kaj iloj por prilabori uzantmovadtrajektoriojn en aplikaĵo aŭ en retejo. Aŭtoro de la evoluo - Maksimo Godzi, kiu estas ĉe la kapo de la teamo de produktokreintoj, li ankaŭ estas la aŭtoro de la artikolo. La produkto mem estis nomita Retentioneering, nun ĝi estis konvertita en malfermfontan bibliotekon kaj gastigita sur Github por ke ĉiu povas uzi ĝin. Ĉio ĉi povas interesi tiujn, kiuj okupiĝas pri produkta kaj merkatika analizo, produkta reklamado kaj disvolviĝo. Cetere, sur Habré artikolo jam estis publikigita pri unu el la kazoj de laboro kun Retentioneering. La nova materialo klarigas, kion la produkto kapablas kaj kiel ĝi povas esti uzata.

Post legado de la artikolo, vi povos skribi vian propran Retentioneering, ĝi povas esti ajna normigita metodo por prilabori uzanttrajektoriojn en la aplikaĵo kaj pretere, permesante al vi vidi detale la trajtojn de konduto kaj eltiri komprenojn de ĉi tio por la kresko de komercaj metrikoj.

Kio estas Retentioneering kaj kial ĝi bezonas?

Komence, nia celo estis movi Growth Hacking de la mondo de "cifereca sorĉado" al la mondo de nombroj, analizoj kaj prognozoj. Rezulte, produktanalitiko estas reduktita al pura matematiko kaj programado por tiuj, kiuj preferas nombrojn anstataŭ fantaziajn rakontojn, kaj formulojn al inteligentaj vortoj kiel "remarkigo", "repoziciigo", ktp., kiuj sonas bele, sed praktike ili ne sonas. multe helpi.

Por solvi ĉi tiujn problemojn, ni bezonis kadron por analizo per grafikaĵoj kaj trajektorioj, kaj samtempe bibliotekon, kiu simpligas tipajn analizistajn rutinojn, kiel maniero priskribi regulajn produktajn analitikajn taskojn, kiuj estus kompreneblaj kaj por homoj kaj robotoj. La biblioteko disponigas la kapablon priskribi uzantkonduton kaj ligi ĝin al produkta komerca metriko en tia formala kaj klara lingvo por simpligi kaj aŭtomatigi la rutinajn taskojn de programistoj kaj analizistoj, kaj faciligi ilian komunikadon kun la komerco.

Retenado estas metodo kaj analiza programaro iloj kiuj povas esti adaptitaj kaj integritaj en ajna cifereca (kaj ne nur) produkto.

Ni komencis labori pri la produkto en 2015. Nun ĝi estas preta, kvankam ankoraŭ ne ideala aro de iloj en Python kaj Pandas por labori kun datumoj, maŝinlernado-modeloj kun sklearn-similaj api, iloj por interpreti la rezultojn de eli5 kaj shap maŝinlernado-modeloj.

Ĉio estas envolvita en oportunan malfermfontan bibliotekon en la malfermita Github-deponejo - retentioneering-tools. Uzi la bibliotekon ne estas malfacila, preskaŭ ĉiu, kiu amas produktan analizon, sed ne skribis kodon antaŭe, povas apliki niajn analizajn metodojn al siaj datumoj memstare kaj sen elspezi multan tempon.

Nu, programisto, aplikaĵo kreinto aŭ membro de evolua aŭ testa teamo, kiu neniam antaŭe faris analizon, povas komenci ludi kun ĉi tiu kodo kaj vidi ŝablonojn en uzado de sia aplikaĵo sen ekstera helpo.

Uzanta trajektorio kiel baza elemento de analizo kaj metodoj por ĝia prilaborado

Uzanttrajektorio estas sekvenco de uzantŝtatoj ĉe certaj tempopunktoj. Plie, eventoj povas esti de malsamaj datumfontoj, ambaŭ interrete kaj eksterrete. La okazaĵoj kiuj okazis al la uzanto estas parto de lia trajektorio. Ekzemploj:
• premis la butonon
• vidis bildon
• frapu la ekranon
• ricevis retmesaĝon
• rekomendis la produkton al amiko
• plenigis la formularon
• frapetis la ekranon
• rulumis
• alproksimiĝis al la kaso
• mendis buriton
• manĝis buriton
• venenita de la burrito, kiun li manĝis
• eniris la kafejon el la malantaŭa enirejo
• eniris el la ĉefa enirejo
• minimumigis la aplikon
• ricevis puŝan sciigon
• stulta en la ekrano por pli longa tempo Х
• pagis por la mendo
• elaĉetis la mendon
• estis rifuzita prunto

Se vi prenas la trajektorajn datumojn de grupo de uzantoj kaj studas kiel funkcias la transiroj, vi povas vidi ĝuste kiel ilia konduto en la aplikaĵo estas konstruita. Estas oportune fari tion per grafeo en kiu la statoj estas nodoj kaj la transiroj inter ŝtatoj estas randoj:

Retenado: kiel ni skribis malfermfontajn produktajn analitikajn ilojn en Python kaj Pandas

"Trajektorio" estas tre oportuna koncepto - ĝi enhavas detalajn informojn pri ĉiuj agoj de uzantoj, kun la kapablo aldoni ajnajn pliajn datumojn al la priskribo de ĉi tiuj agoj. Ĉi tio faras ĝin ĝenerala objekto. Se vi havas belajn kaj oportunajn ilojn, kiuj permesas vin labori kun trajektorioj, tiam vi povas trovi similecojn kaj segmenti ilin.

Trajektoria segmentado povas ŝajni tre komplika komence. En normala situacio, tio estas vera - vi devas uzi komparon de konekteblecaj matricoj aŭ vicigon de sekvencoj. Ni sukcesis trovi pli facilan manieron - studi grandan nombron da trajektorioj kaj segmenti ilin per amasigado.

Kiel montriĝis, eblas turni trajektorion en punkton uzante kontinuajn prezentojn, ekzemple, TF-IDF. Post la transformo, la trajektorio fariĝas punkto en spaco, kie la normaligita okazo en la trajektorio de diversaj eventoj kaj transiroj inter ili estas grafika laŭ la aksoj. Ĉi tiu aĵo el grandega mil- kaj pli-dimensia spaco (dimS=sum(okazaĵotipoj)+sumo(ngramoj_2 specoj)), povas esti projekciita sur ebeno uzante TSNE. TSNE - transformo, reduktas la dimension de spaco al 2 aksoj kaj, se eble, konservas la relativajn distancojn inter punktoj. Sekve, fariĝas eble sur plata mapo, figura projekcia mapo de trajektorioj, studi kiel la punktoj de malsamaj trajektorioj situis inter si. Estas analizite kiom proksimaj aŭ malsamaj ili estis unu al la alia, ĉu ili formis aretojn aŭ disiĝis trans la mapo, ktp.:

Retenado: kiel ni skribis malfermfontajn produktajn analitikajn ilojn en Python kaj Pandas

Retenaj analizaj iloj disponigas la kapablon turni kompleksajn datenojn kaj trajektoriojn en reprezentadon kiu povas esti komparita kun unu la alian, kaj tiam esplori kaj interpreti la rezulton de la transformo.

Parolante pri normaj trajektoriaj pretigaj metodoj, ni celas tri ĉefajn ilojn, kiujn ni efektivigis en Retentioneering - grafikaĵoj, ŝtupaj matricoj kaj trajektoriaj projekciaj mapoj.

Labori kun Google Analytics, Firebase kaj similaj analizaj sistemoj estas sufiĉe komplika kaj ne 100% efika. La problemo estas kelkaj limigoj por la uzanto, rezulte de kiuj la laboro de la analizisto en tiaj sistemoj dependas de musklakoj kaj elekto de tranĉaĵoj. Retentioneering ebligas labori kun uzanttrajektorioj, kaj ne nur kun funeloj, kiel en Google Analytics, kie la nivelo de detalo ofte estas reduktita al funelo, kvankam konstruita por certa segmento.

Retenado kaj kazesploroj

Kiel ekzemplo de uzado de la evoluinta ilo, ni povas citi la kazon de granda niĉa servo en Rusio. Ĉi tiu kompanio havas Android-poŝtelefonan programon, kiu estas populara ĉe klientoj. La jara spezo de la poŝtelefona aplikaĵo estis ĉirkaŭ 7 milionoj da rubloj, laŭsezonaj fluktuoj estis ene de 60-130 mil.La sama kompanio ankaŭ havas aplikaĵon por iOS, kaj la averaĝa kontrolo de la uzanto de la aplikaĵo "pomo" estis pli alta ol la mezumo. kontrolo de la kliento uzante la Android-aplikaĵon - 1080 rub. kontraŭ 1300 rubloj.

La kompanio decidis pliigi la efikecon de la Android-apliko, por kiu ĝi faris profundan analizon. Pluraj dekduoj de hipotezoj estis formitaj por pliigi la efikecon de la aplikaĵo. Post uzi Retentionneering, montriĝis, ke la problemo estis en la mesaĝoj, kiuj estis montritaj al novaj uzantoj. Ili ricevis informojn pri la marko, firmaaj avantaĝoj kaj prezoj. Sed, kiel montriĝis, la mesaĝoj devis helpi la uzanton lerni kiel labori en la aplikaĵo.

Retenado: kiel ni skribis malfermfontajn produktajn analitikajn ilojn en Python kaj Pandas

Ĉi tio estis farita, sekve de kio la aplikaĵo komencis esti malpli forigita, kaj la pliiĝo de konvertiĝo al ordo estis 23%. Komence, 20 procentoj de envenanta trafiko estis donita al la provo, sed kelkajn tagojn poste, analizinte la unuajn rezultojn kaj taksinte la tendencon, ili renversis la proporciojn kaj, male, lasis 20 procentojn por la kontrolgrupo, kaj metis. okdek procentoj en la testo. Semajnon poste, estis decidite sinsekve aldoni testadon de du pliaj hipotezoj. En nur sep semajnoj, la spezo de la Android-apliko pliiĝis unufoje kaj duono kompare kun la antaŭa nivelo.

Kiel labori kun Retentioneering?

La unuaj paŝoj estas sufiĉe simplaj - ni ŝarĝas la bibliotekon per la komando pip install retentioneering. La deponejo mem enhavas pretajn ekzemplojn kaj datumtraktadkazojn por iuj produktaj analizaj taskoj. La aro estas konstante ĝisdatigita ĝis ĝi sufiĉas por la unua konato. Ĉiuj povas preni pretajn modulojn kaj tuj apliki al siaj taskoj - ĉi tio ebligas tuj starigi la procezon de pli detala analizo kaj optimumigo de uzanttrajektorioj kiel eble plej rapide kaj efike. Ĉio ĉi ebligas trovi aplikajn uzajn ŝablonojn per komprenebla kodo kaj kunhavigi ĉi tiun sperton kun kolegoj.

Retenado estas ilo uzinda dum la tuta vivo de aplikaĵo, kaj jen kial:

  • Retenado estas efika por spuri kaj kontinue optimumigi uzanttrajektoriojn kaj plibonigi komercan rendimenton. Do novaj funkcioj ofte aldoniĝas al elektronikaj aplikoj, kies efiko sur la produkto ne ĉiam povas esti antaŭvidebla ĝuste. En kelkaj kazoj, estas kongruaj problemoj inter novaj kaj malnovaj funkcioj - ekzemple, novaj "kanibaligas" ekzistantajn. Kaj en ĉi tiu situacio, necesas konstanta analizo de trajektorioj.
  • La situacio estas simila en laborado kun reklamaj kanaloj: novaj trafikfontoj kaj reklamaj kreaĵoj estas konstante provataj, necesas kontroli sezonecon, tendencojn kaj la efikon de aliaj eventoj, kio kondukas al la apero de novaj klasoj de problemoj. Ĝi ankaŭ postulas konstantan monitoradon kaj interpreton de uzantmekaniko.
  • Estas kelkaj faktoroj, kiuj konstante influas la funkciadon de la aplikaĵo. Ekzemple, novaj eldonoj de programistoj: fermante realan problemon, ili senscie resendas la malnovan aŭ kreas tute novan. Kun la tempo, la nombro da novaj eldonoj kreskas, kaj la procezo de spurado de cimoj devas esti aŭtomatigita, inkluzive per la analizo de uzanttrajektorioj.

Ĝenerale, retenado estas efika ilo. Sed ne estas limo al perfekteco - ĝi povas kaj devas esti plibonigita, disvolvita kaj novaj bonegaj produktoj konstruitaj sur ĝia bazo. Ju pli aktivas la projektkomunumo, des pli da forkoj estos, novaj interesaj elektoj por ĝia uzo aperos.

Pliaj informoj pri Retentioneering-iloj:

fonto: www.habr.com

Aldoni komenton