Retentioneering: si krijuam mjete open-source për analizën produktore në Python dhe Pandas

Përshëndetje, Habr. Ky artikull është dedikuar përfundimeve të katër vjetëve të zhvillimit të një sete metodash dhe mjeteve për përpunimin e trajektoresh të lëvizjes së përdoruesve në aplikacion ose në site. Autor i zhvillimit është Maxim Godzi, i cili është në krye të ekipit krijues të produktit dhe gjithashtu është autori i artikullit. Vetë produkti ka marrë emrin Retentioneering, tani është transformuar në një bibliotekë me burim të hapur dhe është publikuar në Github, në mënyrë që kushdo që dëshiron të mund ta përdorë atë. E gjithë kjo mund të jetë interesante për ata që janë të lidhur me analizën produktore dhe marketingun, promovimin dhe zhvillimin e produktit. Për më tepër, në Habr më parë është publikuar një artikull mbi një nga rastet e punës me Retentioneering. Në këtë material të ri tregohen mundësitë që ka produkti dhe si mund të përdoret ai.

Pas leximit të artikullit, ju do të jeni në gjendje të shkruani Retentioneering tuaj, mund të bëhet çdo metodë e standardizuar e përpunimit të trajektoresh të përdoruesve në aplikacion dhe jashtë tij, që lejon të shihni detajet e sjelljes dhe të nxirrni nga kjo informacione për rritjen e metrikeve të biznesit.

ÇfarĂ« Ă«shtĂ« Retentioneering dhe pĂ«rse Ă«shtĂ« e nevojshme?

Fillimi ynĂ« ishte tĂ« gjeneronim Growth Hacking nga bota e «magjistarĂ«ve digjitalë» nĂ« njĂ« botĂ« numrash, analizash dhe parashikimesh. Si pasojĂ« — reduktimi i analizĂ«s sĂ« produktit nĂ« matematikĂ« tĂ« pastĂ«r dhe programim pĂ«r ata qĂ« preferojnĂ« numrat mbi historitĂ« fantastike, dhe formula mbi fjalĂ«t elegante si «ri-brendim», «ri-pozicionim» etj., qĂ« duken mirĂ«, por nĂ« praktikĂ« ndihmojnĂ« pak.

Për të zgjidhur këto çështje, ne patëm nevojë për një kornizë analitike përmes grafëve dhe trajektimeve, dhe njëkohësisht një bibliotekë që lehtëson rutinat tipike të analistëve, si një mënyrë për të përshkruar detyrat e zakonshme të analizës së produktit, e cila do të ishte e kuptueshme si për njerëzit ashtu edhe për robotët. Biblioteka ofron mundësinë për të përshkruar sjelljen e përdoruesve dhe për ta lidhur atë me metrikat biznesore të produktit në një gjuhë formale dhe të qartë, për të thjeshtuar dhe automatizuar detyrat rutinore të zhvilluesve dhe analistëve dhe për të lehtësuar komunikimin e tyre me biznesin.

Retentioneering — njĂ« metodĂ« dhe mjete analitike programore qĂ« mund tĂ« adaptohen dhe integrohen nĂ« çdo produkt digjital (dhe jo vetĂ«m).

Kemi filluar punën mbi produktin në vitin 2015. Tani kjo është një paketë e gatshme mjetesh, ndonëse ende jo perfekte, për Python dhe Pandas për punën me të dhënat, modelet e mësimit të makinerive me API si sklearn, si dhe mjete për interpretimin e rezultateve të modeleve të mësimit të makinerive eli5 dhe shap.

E gjithĂ« kjo Ă«shtĂ« paketuar nĂ« njĂ« bibliotekĂ« open-source nĂ« depo tĂ« hapura nĂ« Github — retentioneering-tools. PĂ«rdorimi i bibliotekĂ«s nuk Ă«shtĂ« i vĂ«shtirĂ«, praktikisht çdo person qĂ« dĂ«shiron analizĂ« produkti por nuk ka shkruar kurrĂ« kod, mund tĂ« aplikohet metodat tona analitike nĂ« tĂ« dhĂ«nat e tij/ saj nĂ« mĂ«nyrĂ« vetjake dhe pa shpenzime tĂ« mĂ«dha kohe.

Ndërsa një programues, krijues aplikacioni ose anëtar i ekipit të zhvillimit ose testimit, i cili nuk ka pasur asnjëherë përvojë me analitikën, mund të fillojë të eksperimentojë me këtë kod dhe të shohë modelet e përdorimit të aplikacionit të tij/ saj pa ndihmë nga të tjerët.

Trajektorja e përdoruesit si një element bazik i analizës dhe metodat e përpunimit të saj

Trajektorja e përdoruesit është një sekuencë e gjendjeve të përdoruesit në momente të caktuara kohore. Ngjarjet mund të vijnë nga burime të ndryshme të të dhënave, si në online ashtu edhe në offline. Ngjarjet që ndodhin me përdoruesin janë pjesë e trajektoreve të tij. Shembuj:
‱ klikoi butonin
‱ pa imazhin
‱ arriti nĂ« ekran
‱ mori njĂ« email
‱ rekomandoi produktin te njĂ« mik
‱ plotĂ«soi formularin
‱ goditi ekranin
‱ skrolloi
‱ iu afrua pĂ«rballĂ«s
‱ porositi burrito
‱ hĂ«ngri burrito
‱ u helmua nga burrito
‱ hyri nĂ« kafene nga hyrja e zezĂ«
‱ hyri nga hyrja kryesore
‱ mbylli aplikacionin
‱ mori njĂ« njoftim push
‱ qĂ«ndroi duke e shikuar ekranin pĂ«r mĂ« gjatĂ« se koha X
‱ pagoi porosinĂ«
‱ e mori porosinĂ«
‱ mori kĂ«ndvĂ«shtrimin pĂ«r njĂ« kredi

Nëse marrim të dhënat e trajektorive të grupit të përdoruesve dhe studiojmë se si janë ndërtuar kalimet, mund të ndjekim se si krijohet veprimi i tyre në aplikacion. Kjo është e lehtë të bëhet përmes një grafiku, ku gjendjet janë nyje dhe kalimet midis gjendjeve janë skela:

Retentioneering: si krijuam mjete open-source për analizën produktore në Python dhe Pandas

«Trajektorja» Ă«shtĂ« njĂ« koncept shumĂ« i pĂ«rshtatshĂ«m — ajo pĂ«rmban informacion tĂ« detajuar mbi tĂ« gjitha veprimet e pĂ«rdoruesit, me mundĂ«sinĂ« e shtimit tĂ« tĂ« dhĂ«nave tĂ« tjera nĂ« pĂ«rshkrimin e kĂ«tyre veprimeve. Kjo e bĂ«n atĂ« njĂ« objekt universal. NĂ«se keni mjete tĂ« bukura dhe tĂ« pĂ«rshtatshme qĂ« lejojnĂ« punĂ«n me trajektorĂ«t, atĂ«herĂ« mund tĂ« gjeni ngjashmĂ«ri dhe t'i segmentoni ato.

Segmentimi i trajektorive nĂ« fillim mund tĂ« duket si diçka shumĂ« e ndĂ«rlikuar. NĂ« situata normale, vĂ«rtet Ă«shtĂ« kĂ«shtu — duhet tĂ« pĂ«rdorni krahasimin e matricave tĂ« lidhjes ose rreshtimin e sekuencave. Ne arritĂ«m tĂ« gjejmĂ« njĂ« mĂ«nyrĂ« mĂ« tĂ« thjeshtĂ« — tĂ« studiojmĂ« njĂ« numĂ«r tĂ« madh trajektorish dhe t'i segmentojmĂ« ato pĂ«rmes klasifikimit.

Siç rezulton, mund tĂ« kthejmĂ« njĂ« trajektore nĂ« njĂ« pikĂ« me anĂ« tĂ« pĂ«rfaqĂ«simeve tĂ« vazhdueshme, pĂ«r shembull, TF-IDF. Pasi tĂ« ketĂ« pĂ«rfunduar transformimi, trajektoria shndĂ«rrohet nĂ« njĂ« pikĂ« nĂ« hapĂ«sirĂ«, ku nĂ« akset Ă«shtĂ« e shĂ«nuar frekuenca e normalizuar e ngjarjeve tĂ« ndryshme dhe kalimeve midis tyre. KĂ«tĂ« gjĂ« nga njĂ« hapĂ«sirĂ« tĂ« madhe me mĂ« shumĂ« se njĂ« mijĂ« dimensione (dimS=shuma(eve_type)+shuma(ngrams_2 types)), mund ta projektojmĂ« nĂ« njĂ« plan me ndihmĂ«n e TSNE. TSNE — njĂ« metodĂ« transformimi qĂ« zvogĂ«lon dimensionin e hapĂ«sirĂ«s nĂ« 2 boshtet dhe, sa mĂ« shumĂ« tĂ« jetĂ« e mundur, ruan distancat relative midis pikave. NĂ« kĂ«tĂ« mĂ«nyrĂ«, bĂ«het e mundur qĂ« nĂ« njĂ« hartĂ« tĂ« sheshtĂ«, njĂ« hartĂ« projekcionale tĂ« trajektoreve, tĂ« studiohet si ishin tĂ« vendosura midis tyre pikat e trajektoreve tĂ« ndryshme. Analizohet sa afĂ«r ose larg ishin ato njĂ«ra prej tjetrĂ«s, nĂ«se formuan klasterĂ« ose shpĂ«rndaheshin nĂ« hartĂ« etj.

Retentioneering: si krijuam mjete open-source për analizën produktore në Python dhe Pandas

Instrumentet analitike të Retentioneering ofrojnë mundësinë për të shndërruar një masiv të dhënash komplekse dhe trajektoreve në një prezantim që mund të krahasohet mes tyre, dhe më pas të studiohet dhe interpretohet rezultati i transformimit.

Duke folur pĂ«r metodat standarde tĂ« pĂ«rpunimit tĂ« trajektoreve, pĂ«rfshihen tre mjetet kryesore qĂ« ne kemi implementuar nĂ« Retentioneering — grafet, matrikat e hapave dhe hartat e projekcionit tĂ« trajektoreve.

Puna me Google Analytics, Firebase dhe sisteme të tjera analitike është mjaft e komplikuar dhe nuk është 100% efektive. Problemi qëndron në një sërë kufizimesh për përdoruesin, si rezultat i të cilave analiza përfundon në klikime dhe përzgjedhje të segmenteve. Retentioneering ofron mundësinë për të punuar me trajektoret e përdoruesve, dhe jo vetëm me konvergjencat, siç ndodh në Google Analytics, ku niveli i detajimit shpesh reduktohet në një konvergjencë, edhe pse e ndërtuar për një segment të caktuar.

Retentioneering dhe rastet studimore

Si njĂ« shembull i pĂ«rdorimit tĂ« mjetit tĂ« zhvilluar, mund tĂ« pĂ«rmendim rastin e njĂ« shĂ«rbimi tĂ« madh nĂ« niçën e tij nĂ« Rusi. Kjo kompani ka njĂ« aplikacion mobil pĂ«r Android, i cili Ă«shtĂ« shumĂ« i njohur te klientĂ«t. Xhiroja vjetore nga aplikacioni mobil arrinte rreth 7 milion rubla, me fluktuacione sezonale midis 60-130 mijĂ«. Kjo kompani ka gjithashtu njĂ« aplikacion pĂ«r iOS, dhe mesatarja e shpenzimeve tĂ« pĂ«rdoruesve tĂ« aplikacionit “apple” ishte mĂ« e lartĂ« se ajo e klientĂ«ve qĂ« pĂ«rdorin aplikacionin Android — 1080 rubla kundrejt 1300 rubla.

Kompania vendosi të rrisë efikasitetin e aplikacionit Android, ndaj realizoi një analizë të kujdesshme. U formuluan disa dhjetëra hipoteza për rritjen e performancës së aplikacionit. Pas përdorimit të Retentioneering, u zbulua se problemi ishte tek mesazhet që shfaqeshin për përdoruesit e rinj. Ata merrnin informacione për markën, përfitimet e kompanisë dhe çmimet. Por, siç doli, mesazhet duhej të ndihmonin përdoruesin të mësonte se si të punonte me aplikacionin.

Retentioneering: si krijuam mjete open-source për analizën produktore në Python dhe Pandas

Kjo ndodhi, si rezultat aplikacioni u fshi mĂ« pak dhe rritja e konvertimit nĂ« porosi arriti 23%. Fillimisht, u ndanĂ« 20 pĂ«r qind tĂ« trafikut tĂ« hyrĂ«s pĂ«r testin, por pas disa ditĂ«sh, duke analizuar rezultatet e para dhe duke vlerĂ«suar trendin — ata e ndryshuan pĂ«r proporcionalitetin dhe, pĂ«rkundrazi, lanĂ« 20 pĂ«r qind pĂ«r grupin kontroll dhe vendosĂ«n 80 pĂ«r qind nĂ« test. NjĂ« javĂ« mĂ« pas, u mor vendimi pĂ«r tĂ« shtuar gradualisht testimin e dy hipotezave tĂ« tjera. Pas shtat javĂ«sh, tĂ« ardhurat nga aplikacioni Android u rritĂ«n njĂ« e gjysmĂ« herĂ« nĂ« krahasim me nivelin e kaluar.

Si të punoni me Retentioneering?

Hapat e parĂ« janĂ« mjaft tĂ« thjeshtĂ« — ngarkojmĂ« bibliotekĂ«n me komandĂ«n pip install retentioneering. NĂ« vetĂ« depot janĂ« tĂ« gatshĂ«m shembuj dhe raste tĂ« pĂ«rpunimit tĂ« tĂ« dhĂ«nave pĂ«r disa detyra tĂ« analizĂ«s produktive. Grupi vazhdon tĂ« pasurohet, derisa Ă«shtĂ« mjaftueshĂ«m pĂ«r njĂ« njohje tĂ« parĂ«. Çdo kush mund tĂ« marrĂ« module tĂ« gatshme dhe t'i aplikojĂ« menjĂ«herĂ« nĂ« detyrat e tij — kjo lejon qĂ« procesi tĂ« konfigurohet pĂ«r njĂ« analizĂ« mĂ« tĂ« detajuar dhe optimizimin e rrugĂ«ve tĂ« pĂ«rdoruesve sa mĂ« shpejt dhe efektivisht. TĂ« gjitha kĂ«to ofrojnĂ« mundĂ«sinĂ« pĂ«r tĂ« gjetur modelet e pĂ«rdorimit tĂ« aplikacionit pĂ«rmes njĂ« kodi tĂ« qartĂ« dhe pĂ«r ta kaluar kĂ«tĂ« pĂ«rvojĂ« kolegĂ«ve.

Retentioneering — njĂ« mjet qĂ« duhet tĂ« pĂ«rdoret gjatĂ« gjithĂ« periudhĂ«s sĂ« jetĂ«s sĂ« aplikacionit, dhe ja pse:

  • Retentioneering Ă«shtĂ« efektiv pĂ«r ndjekjen dhe optimizimin e vazhdueshĂ«m tĂ« rrugĂ«ve tĂ« pĂ«rdoruesve dhe pĂ«rmirĂ«simin e treguesve tĂ« biznesit. NĂ« aplikacionet e ecommerce shpesh shtohen funksione tĂ« reja, ndikimi i tĂ« cilave nĂ« produkt nuk mund tĂ« parashikohet gjithmonĂ« siç duhet. NĂ« disa raste, lindin probleme kompaktueshmĂ«rie mes funksioneve tĂ« reja dhe atyre tĂ« vjetra — pĂ«r shembull, tĂ« rejat “kanibalizojnĂ«â€ ato qĂ« ekzistojnĂ« tashmĂ«. NĂ« kĂ«tĂ« situatĂ«, njĂ« analizĂ« e vazhdueshme e rrugĂ«ve Ă«shtĂ« thelbĂ«sore.
  • NjĂ« situatĂ« e ngjashme ndodh edhe me kanalet reklamuese: vazhdimisht testohen burime tĂ« reja trafiku dhe krijime reklamuese, duke qenĂ« se Ă«shtĂ« e nevojshme tĂ« ndiqet sezonaliteti, tendencat dhe ndikimi i ngjarjeve tĂ« tjera, çka sjell nĂ« shfaqjen e klasave tĂ« reja problemesh. KĂ«tu gjithashtu kĂ«rkohet njĂ« ndjekje dhe interpretim tĂ« vazhdueshĂ«m tĂ« mekanikave tĂ« pĂ«rdoruesve.
  • EkzistojnĂ« njĂ« numĂ«r faktorĂ«sh qĂ« ndikojnĂ« vazhdimisht nĂ« funksionimin e aplikacionit. PĂ«r shembull, lĂ«shimet e reja nga zhvilluesit: duke zgjidhur njĂ« problem aktual, ata shpesh kthejnĂ« njĂ« tĂ« vjetĂ«r ose krijojnĂ« njĂ« tĂ« re krejtĂ«sisht. Me kalimin e kohĂ«s, numri i lĂ«shimeve tĂ« reja rritet dhe procesi i gjurmimit tĂ« gabimeve duhet tĂ« automatizohet — pĂ«rfshirĂ« analizat e trajeksave tĂ« pĂ«rdoruesve.

NĂ« pĂ«rgjithĂ«si, Retentioneering Ă«shtĂ« njĂ« mjet efektiv. Por nuk ka kufi nĂ« pĂ«rmirĂ«sim — mund dhe duhet tĂ« pĂ«rmirĂ«sohet, tĂ« zhvillohet dhe mbi tĂ« tĂ« ndĂ«rtohen produkte tĂ« reja tĂ« shkĂ«lqyera. Sa mĂ« aktive tĂ« jetĂ« komuniteti i projektit, aq mĂ« shumĂ« do tĂ« ketĂ« forka dhe do tĂ« shfaqen variante tĂ« reja interesante tĂ« pĂ«rdorimit tĂ« tij.

Informacione shtesë rreth mjeteve të Retentioneering:

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster