SaglabāŔana: kā mēs rakstÄ«jām atvērtā pirmkoda rÄ«kus produktu analÄ«zei programmās Python un Pandas

Sveiki, Habr. Å is raksts ir veltÄ«ts četrus gadus ilgas metožu un rÄ«ku kopas izstrādes rezultātiem lietotāju kustÄ«bas trajektoriju apstrādei lietojumprogrammā vai vietnē. Izstrādes autors - Maksims Godzi, kurÅ” vada produktu veidotāju komandu un ir arÄ« raksta autore. Pats produkts tika saukts par Retentioneering; tagad tas ir pārveidots par atvērtā pirmkoda bibliotēku un ievietots Github, lai ikviens varētu to izmantot. Tas viss var interesēt tos, kas ir iesaistÄ«ti produktu un mārketinga analÄ«zē, veicināŔanā un produktu attÄ«stÄ«bā. Starp citu, uz Habrē jau ir publicēts raksts par vienu no gadÄ«jumiem darbā ar Retentioneering. Jaunajā materiālā ir paskaidrots, ko produkts spēj un kā to var izmantot.

Pēc raksta izlasÄ«Å”anas jÅ«s pats varēsit uzrakstÄ«t savu saglabāŔanu; tā var bÅ«t jebkura standartizēta metode lietotāju trajektoriju apstrādei lietojumprogrammā un ārpus tās, ļaujot detalizēti redzēt uzvedÄ«bas iezÄ«mes un iegÅ«t no tā ieskatu izaugsmei. uzņēmējdarbÄ«bas rādÄ«tājiem.

Kas ir saglabāŔana un kāpēc tā ir nepiecieÅ”ama?

MÅ«su sākotnējais mērÄ·is bija pārcelt Growth Hacking no ā€œdigitālās burvestÄ«basā€ uz skaitļu, analÄ«tikas un prognožu pasauli. Rezultātā produktu analÄ«tika tiek samazināta lÄ«dz tÄ«rai matemātikai un programmÄ“Å”anai tiem, kas dod priekÅ”roku skaitļiem, nevis fantastiskiem stāstiem, un formulas lÄ«dz tādiem modes vārdiem kā ā€œbrendingsā€, ā€œrepositioningā€ utt., kas izklausās jauki, bet praksē maz palÄ«dz.

Lai atrisinātu Ŕīs problēmas, mums bija nepiecieÅ”ams analÄ«tikas ietvars, izmantojot grafikus un trajektorijas, un tajā paŔā laikā bibliotēka, kas vienkārÅ”o tipiskās analÄ«tiÄ·u rutÄ«nas, lai aprakstÄ«tu parastos produktu analÄ«zes uzdevumus, kas bÅ«tu saprotami gan cilvēkiem, gan robotiem. Bibliotēka nodroÅ”ina iespēju aprakstÄ«t lietotāju uzvedÄ«bu un saistÄ«t to ar produkta biznesa metriku tik formālā un skaidrā valodā, ka tā vienkārÅ”o un automatizē izstrādātāju un analÄ«tiÄ·u ikdienas uzdevumus un atvieglo viņu saziņu ar uzņēmumu.

Retentioneering ir metode un analītiskie programmatūras rīki, kurus var pielāgot un integrēt jebkurā digitālā (un ne tikai) produktā.

Mēs sākām strādāt pie produkta 2015. gadā. Tagad Å”is ir gatavs, lai gan vēl ne ideāls rÄ«ku komplekts Python un Pandas darbam ar datiem, maŔīnmācÄ«Å”anās modeļi ar sklearn lÄ«dzÄ«gu api, rÄ«ki maŔīnmācÄ«Å”anās modeļu eli5 un shap rezultātu interpretÄ“Å”anai.

Tas viss ir iesaiņots uz ērtu atvērtā pirmkoda bibliotēku atvērtajā Github repozitorijā - saglabāŔanas rÄ«ki. Bibliotēkas lietoÅ”ana nav grÅ«ta; gandrÄ«z ikviens, kam patÄ«k produktu analÄ«tika, bet iepriekÅ” nav rakstÄ«jis kodu, var izmantot mÅ«su analÄ«tikas metodes saviem datiem neatkarÄ«gi un bez ievērojamiem laika ieguldÄ«jumiem.

Programmētājs, lietojumprogrammu veidotājs vai izstrādes vai testÄ“Å”anas komandas loceklis, kurÅ” nekad iepriekÅ” nav veicis analÄ«zi, var sākt spēlēt ar Å”o kodu un redzēt savas lietojumprogrammas lietoÅ”anas modeļus bez ārējas palÄ«dzÄ«bas.

Lietotāja trajektorija kā analīzes pamatelements un tās apstrādes metodes

Lietotāja trajektorija ir lietotāja stāvokļu secÄ«ba noteiktos laika punktos. Turklāt notikumi var bÅ«t no dažādiem datu avotiem gan tieÅ”saistē, gan bezsaistē. Notikumi, kas notiek ar lietotāju, ir daļa no viņa trajektorijas. Piemēri:
ā€¢ nospieda pogu
ā€¢ redzēja attēlu
ā€¢ nospiediet ekrānu
ā€¢ saņēma e-pastu
ā€¢ ieteica preci draugam
ā€¢ aizpildÄ«ja veidlapu
ā€¢ pieskārās ekrānam
ā€¢ ritināts
ā€¢ devās pie kases
ā€¢ pasÅ«tÄ«ja burito
ā€¢ ēda burito
ā€¢ saindējies, ēdot burito
ā€¢ ienācis kafejnÄ«cā no aizmugures ieejas
ā€¢ ieeja no priekŔējās ieejas
ā€¢ minimizēja lietojumprogrammu
ā€¢ saņemts paÅ”piegādes paziņojums
ā€¢ bija iestrēdzis ekrānā ilgāk par X
ā€¢ samaksāja par pasÅ«tÄ«jumu
ā€¢ iegādājies pasÅ«tÄ«jumu
ā€¢ tika atteikts aizdevums

Ja paņemat lietotāju grupas trajektorijas datus un izpētāt, kā tiek strukturētas pārejas, varat precīzi izsekot viņu uzvedībai lietojumprogrammā. To ir ērti izdarīt, izmantojot grafiku, kurā stāvokļi ir mezgli, bet pārejas starp stāvokļiem ir malas:

SaglabāŔana: kā mēs rakstÄ«jām atvērtā pirmkoda rÄ«kus produktu analÄ«zei programmās Python un Pandas

ā€œTrajektorijaā€ ir ļoti ērts jēdziens - tajā ir detalizēta informācija par visām lietotāja darbÄ«bām, ar iespēju Å”o darbÄ«bu aprakstam pievienot jebkādus papildu datus. Tas padara to par universālu objektu. Ja jums ir skaisti un ērti rÄ«ki, kas ļauj strādāt ar trajektorijām, tad varat atrast lÄ«dzÄ«bas un tās segmentēt.

Trajektorijas segmentÄ“Å”ana sākumā var Ŕķist ļoti sarežģīta. Parastā situācijā tas tā ir ā€“ jāizmanto savienojamÄ«bas matricas salÄ«dzināŔana vai secÄ«bu izlÄ«dzināŔana. Mums izdevās atrast vienkārŔāku veidu - izpētÄ«t lielu skaitu trajektoriju un segmentēt tās, izmantojot klasterizāciju.

Kā izrādÄ«jās, trajektoriju ir iespējams pārvērst par punktu, izmantojot nepārtrauktus attēlojumus, piemēram, TF-IDF. Pēc transformācijas trajektorija kļūst par punktu telpā, kur pa asÄ«m tiek attēlota dažādu notikumu normalizētā raÅ”anās un pārejas starp tiem trajektorijā. Å o lietu no milzÄ«gas tÅ«kstoÅ” vai vairāk dimensiju telpas (dimS = summa (notikumu veidi) + summa (ngrams_2 veidi)) var projicēt plaknē, izmantojot TSNE. TSNE ir transformācija, kas samazina telpas izmēru lÄ«dz 2 asÄ«m un, ja iespējams, saglabā relatÄ«vos attālumus starp punktiem. AttiecÄ«gi plakanā kartē, figurālā trajektoriju projekcijas kartē, kļūst iespējams izpētÄ«t, kā dažādu trajektoriju punkti atradās savā starpā. Tas analizē, cik tuvu vai atŔķirÄ«gi tie bija viens otram, vai tie veidoja kopas vai bija izkaisÄ«ti pa karti utt.:

SaglabāŔana: kā mēs rakstÄ«jām atvērtā pirmkoda rÄ«kus produktu analÄ«zei programmās Python un Pandas

SaglabāŔanas analÄ«tikas rÄ«ki nodroÅ”ina iespēju sarežģītus datus un trajektorijas pārvērst skatā, ko var salÄ«dzināt savā starpā, un pēc tam var pārbaudÄ«t un interpretēt transformācijas rezultātu.

Runājot par trajektoriju apstrādes standarta metodēm, mēs domājam trÄ«s galvenos rÄ«kus, ko esam ieviesuÅ”i saglabāŔanā - grafikus, soļu matricas un trajektoriju projekciju kartes.

Darbs ar Google Analytics, Firebase un lÄ«dzÄ«gām analÄ«zes sistēmām ir diezgan sarežģīts un nav 100% efektÄ«vs. Problēma ir virkne lietotāja ierobežojumu, kā rezultātā analÄ«tiÄ·a darbs Ŕādās sistēmās ir atkarÄ«gs no peles klikŔķiem un slāņu atlases. SaglabāŔana ļauj strādāt ar lietotāju trajektorijām, nevis tikai ar piltuvēm, kā tas ir pakalpojumā Google Analytics, kur detalizācijas lÄ«menis bieži tiek samazināts lÄ«dz piltuvei, lai gan tas ir paredzēts noteiktam segmentam.

SaglabāŔana un lietas

Kā piemēru izstrādātā rÄ«ka izmantoÅ”anai varam minēt gadÄ«jumu ar lielu niÅ”as pakalpojumu Krievijā. Å im uzņēmumam ir Android mobilā aplikācija, kas ir populāra klientu vidÅ«. Gada apgrozÄ«jums no mobilās aplikācijas bija aptuveni 7 miljoni rubļu, sezonālās svārstÄ«bas robežās no 60-130 tÅ«kst.. Tam paÅ”am uzņēmumam ir arÄ« aplikācija iOS, un Apple aplikācijas lietotāja vidējais rēķins bija lielāks par vidējo rēķinu klients, kas izmanto Android lietojumprogrammu - 1080 rub. pret 1300 rubļiem.

Uzņēmums nolēma palielināt Android lietojumprogrammas efektivitāti, kam tas veica rÅ«pÄ«gu analÄ«zi. Tika Ä£enerēti vairāki desmiti hipotēžu par lietojumprogrammas efektivitātes paaugstināŔanu. Pēc Retentionneering izmantoÅ”anas izrādÄ«jās, ka problēma bija ziņojumos, kas tika rādÄ«ti jaunajiem lietotājiem. Viņi saņēma informāciju par zÄ«molu, uzņēmuma priekÅ”rocÄ«bām un cenām. Taču, kā izrādÄ«jās, ziņojumiem vajadzēja palÄ«dzēt lietotājam iemācÄ«ties strādāt aplikācijā.

SaglabāŔana: kā mēs rakstÄ«jām atvērtā pirmkoda rÄ«kus produktu analÄ«zei programmās Python un Pandas

Tas tika izdarÄ«ts, kā rezultātā aplikācija kļuva mazāk atinstalēta, un konversijas uz pasÅ«tÄ«jumu pieaugums bija 23%. Sākumā pārbaudei tika atvēlēti 20 procenti no ienākoŔās trafika, bet pēc dažām dienām, analizējot pirmos rezultātus un novērtējot tendenci, viņi mainÄ«ja proporcijas un, gluži pretēji, 20 procentus atstāja kontroles grupai, un astoņdesmit procenti tika iekļauti testā. Nedēļu vēlāk tika nolemts secÄ«gi pievienot vēl divu hipotēžu pārbaudi. Tikai septiņu nedēļu laikā apgrozÄ«jums no Android aplikācijas pieauga pusotru reizi, salÄ«dzinot ar iepriekŔējo lÄ«meni.

Kā strādāt ar Retentioneering?

Pirmie soļi ir pavisam vienkārÅ”i ā€“ lejupielādējiet bibliotēku ar pip install retentioneering komandu. PaŔā repozitorijā ir gatavi datu apstrādes piemēri un gadÄ«jumi dažiem produktu analÄ«zes uzdevumiem. Komplekts tiek pastāvÄ«gi papildināts, lÄ«dz pietiek pirmajai iepazÄ«Å”anai. Ikviens var paņemt gatavus moduļus un nekavējoties tos pielietot saviem uzdevumiem - tas ļauj nekavējoties iestatÄ«t detalizētāku lietotāju trajektoriju analÄ«zes un optimizācijas procesu pēc iespējas ātrāk un efektÄ«vāk. Tas viss ļauj atrast lietojumprogrammu lietoÅ”anas modeļus, izmantojot skaidru kodu, un dalÄ«ties pieredzē ar kolēģiem.

SaglabāŔana ir rÄ«ks, ko ir vērts izmantot visā lietojumprogrammas darbÄ«bas laikā, un tālāk ir norādÄ«ts iemesls, kāpēc:

  • SaglabāŔana ir efektÄ«va lietotāju trajektoriju izsekoÅ”anai un nepārtrauktai optimizÄ“Å”anai un biznesa veiktspējas uzlaboÅ”anai. Tādējādi e-komercijas lietojumprogrammām bieži tiek pievienotas jaunas funkcijas, kuru ietekmi uz produktu ne vienmēr var pareizi paredzēt. Dažos gadÄ«jumos rodas saderÄ«bas problēmas starp jaunajām un vecajām funkcijām - piemēram, jaunas ā€œkanibalizēā€ esoŔās. Un Å”ajā situācijā ir nepiecieÅ”ama pastāvÄ«ga trajektoriju analÄ«ze.
  • LÄ«dzÄ«ga situācija ir arÄ« strādājot ar reklāmas kanāliem: nepārtraukti tiek pārbaudÄ«ti jauni trafika avoti un reklāmas materiāli, nepiecieÅ”ams sekot lÄ«dzi sezonalitātei, tendencēm un citu notikumu ietekmei, kas noved pie arvien jaunu problēmu klaÅ”u raÅ”anās. Tas prasa arÄ« pastāvÄ«gu lietotāja mehānikas uzraudzÄ«bu un interpretāciju.
  • Ir vairāki faktori, kas pastāvÄ«gi ietekmē lietojumprogrammas veiktspēju. Piemēram, jauni izstrādātāju izlaidumi: aizverot paÅ”reizējo problēmu, viņi negribot atgriež veco vai izveido pilnÄ«gi jaunu. Laika gaitā jaunu izlaidumu skaits pieaug, un kļūdu izsekoÅ”anas process ir jāautomatizē, tostarp analizējot lietotāju trajektorijas.

Kopumā saglabāŔana ir efektÄ«vs lÄ«dzeklis. Taču pilnÄ«bai nav robežu ā€“ to var un vajag uzlabot, attÄ«stÄ«t un uz tās bāzes veidot jaunus forÅ”us produktus. Jo aktÄ«vāka bÅ«s projekta kopiena, jo vairāk bÅ«s dakÅ”u, un parādÄ«sies jaunas interesantas iespējas tā izmantoÅ”anai.

PlaŔāka informācija par saglabāŔanas rīkiem:

Avots: www.habr.com

Pievieno komentāru