Retentioneering: hvernig við skrifuðum opinn hugbúnað fyrir vörugreiningar í Python og Pandas

Halló, Habr. Þessi grein er helguð niðurstöðum fjögurra ára þróunar á safni aðferða og verkfæra til að vinna úr hreyfingum notenda í forriti eða vefsíðu. Höfundur þróunarinnar - Maxim Godzi, sem stýrir teymi vöruhöfunda og er einnig höfundur greinarinnar. Varan sjálf var kölluð Retentioneering; henni hefur nú verið breytt í opið bókasafn og sett á Github svo að allir geti notað hana. Allt þetta getur verið áhugavert fyrir þá sem koma að vöru- og markaðsgreiningu, kynningu og vöruþróun. Við the vegur, á Habré Þegar hefur verið birt grein um eitt af þeim tilfellum sem unnið er með Retentioneering. Nýja efnið útskýrir hvað varan getur gert og hvernig hægt er að nota hana.

Eftir að hafa lesið greinina muntu sjálfur geta skrifað þína eigin Retentioneering; það getur verið hvaða staðlaða aðferð sem er til að vinna úr notendaferlum í forritinu og víðar, sem gerir þér kleift að sjá í smáatriðum einkenni hegðunar og draga innsýn úr þessu fyrir vöxt af viðskiptamælingum.

Hvað er varðveisla og hvers vegna er þörf á því?

Upphaflega markmið okkar var að færa Growth Hacking frá heimi „stafrænna galdra“ yfir í heim talna, greiningar og spár. Þar af leiðandi minnkar vörugreiningar í hreina stærðfræði og forritun fyrir þá sem kjósa tölur í stað frábærra sögur, og formúlur yfir tískuorð eins og „endurvörumerki“, „endurstaðsetning“ o.s.frv., sem hljóma vel, en hjálpa lítið í reynd.

Til að leysa þessi vandamál þurftum við ramma fyrir greiningar í gegnum línurit og brautir, og á sama tíma bókasafn sem einfaldar dæmigerðar venjur greiningaraðila, sem leið til að lýsa venjulegum vörugreiningarverkefnum sem væru skiljanleg fyrir bæði fólk og vélmenni. Safnið veitir möguleika á að lýsa hegðun notenda og tengja hana við viðskiptamælingar vöru á svo formlegu og skýru máli að það einfaldar og gerir sjálfvirk venjuleg verkefni þróunaraðila og greiningaraðila og auðveldar samskipti þeirra við fyrirtækið.

Retentioneering er aðferð og greiningarhugbúnaður sem hægt er að aðlaga og samþætta í hvaða stafræna (en ekki aðeins) vöru sem er.

Við byrjuðum að vinna að vörunni árið 2015. Núna er þetta tilbúið, þó ekki enn tilvalið, verkfærasett í Python og Pandas til að vinna með gögn, vélanámslíkön með sklearn-like API, verkfæri til að túlka niðurstöður vélanámslíkana eli5 og shap.

Það er allt búið í þægilegt opið bókasafn í opnu Github geymslunni - retentioneering-tools. Það er ekki erfitt að nota bókasafnið; næstum allir sem elska vörugreiningar, en hafa ekki skrifað kóða áður, geta beitt greiningaraðferðum okkar á gögn sín sjálfstætt og án verulegrar tímafjárfestingar.

Jæja, forritari, forritari eða meðlimur í þróunar- eða prófunarteymi sem hefur aldrei gert greiningar áður getur byrjað að leika sér með þennan kóða og séð notkunarmynstur forritsins án utanaðkomandi aðstoðar.

Ferill notenda sem grunnþáttur greiningar og aðferðir við úrvinnslu hennar

Notendaferill er röð notendaástanda á ákveðnum tímapunktum. Þar að auki geta atburðir komið frá mismunandi gagnaveitum, bæði á netinu og utan nets. Atburðir sem gerast hjá notanda eru hluti af ferli hans. Dæmi:
• ýtti á hnappinn
• sá myndina
• smelltu á skjáinn
• fékk tölvupóst
• mælti með vörunni við vin
• fyllt út eyðublaðið
• bankaði á skjáinn
• fletta
• fór í kassann
• pantaði burrito
• borðaði burrito
• fékk eitur af því að borða burrito
• gengið inn á kaffihúsið frá bakdyrum
• gengið inn frá anddyri
• lágmarkaði umsóknina
• fékk ýtt tilkynningu
• var fastur á skjánum lengur en X
• greitt fyrir pöntunina
• keypti pöntunina
• var synjað um lán

Ef þú tekur ferilgögn hóps notenda og rannsakar hvernig umskipti eru byggð upp geturðu rakið nákvæmlega hvernig hegðun þeirra í forritinu er uppbyggð. Það er þægilegt að gera þetta í gegnum línurit þar sem ástand eru hnútar og umskipti milli ástanda eru brúnir:

Retentioneering: hvernig við skrifuðum opinn hugbúnað fyrir vörugreiningar í Python og Pandas

„Ferill“ er mjög þægilegt hugtak - það inniheldur nákvæmar upplýsingar um allar aðgerðir notenda, með getu til að bæta við viðbótargögnum við lýsinguna á þessum aðgerðum. Þetta gerir það að alhliða hlut. Ef þú ert með falleg og þægileg verkfæri sem gera þér kleift að vinna með brautir, þá geturðu fundið líkindi og skipt þeim í sundur.

Ferilskipting kann að virðast mjög flókin í fyrstu. Í venjulegum aðstæðum er þetta raunin - þú þarft að nota tengifylkissamanburð eða röðun. Okkur tókst að finna einfaldari leið - að rannsaka mikinn fjölda ferla og skipta þeim í gegnum þyrpingar.

Eins og það kom í ljós er hægt að breyta braut í punkt með samfelldri framsetningu, til dæmis, TF-IDF. Eftir umbreytinguna verður brautin að punkti í rýminu þar sem staðlað tilvik ýmissa atburða og breytinga á milli þeirra í brautinni er teiknuð meðfram ásunum. Þessum hlut úr risastóru þúsund eða meira víddarrými (dimS=summa(atburðargerðir)+summa(ngrams_2 tegundir)) er hægt að varpa upp á plan með því að nota TSNE. TSNE er umbreyting sem minnkar vídd rúms í 2 ása og, ef mögulegt er, varðveitir hlutfallsleg fjarlægð milli punkta. Í samræmi við það verður mögulegt á flatu korti, myndrænu vörpukorti af ferlum, að rannsaka hvernig punktar mismunandi ferla voru staðsettir sín á milli. Það greinir hversu nálæg eða ólík þau voru hvort öðru, hvort þau mynduðu klasa eða dreifðust um kortið o.s.frv.:

Retentioneering: hvernig við skrifuðum opinn hugbúnað fyrir vörugreiningar í Python og Pandas

Retentioneering greiningartæki gefa möguleika á að breyta flóknum gögnum og ferlum í sýn sem hægt er að bera saman við hvert annað og síðan er hægt að skoða og túlka niðurstöðu umbreytingarinnar.

Talandi um staðlaðar aðferðir við vinnslu ferla, þá er átt við þrjú meginverkfæri sem við höfum innleitt í Retentioneering - línurit, skreffylki og ferilsvörpukort.

Að vinna með Google Analytics, Firebase og svipuðum greiningarkerfum er frekar flókið og ekki 100% árangursríkt. Vandamálið er fjöldi takmarkana fyrir notandann, þar af leiðandi er vinna greiningaraðila í slíkum kerfum háð músarsmelli og vali á sneiðum. Retentioneering gerir það mögulegt að vinna með feril notenda, en ekki bara með trektum, eins og í Google Analytics, þar sem smáatriðin eru oft dregin niður í trekt, þó byggð fyrir ákveðinn hluta.

Varðhald og mál

Sem dæmi um að nota þróaða tólið getum við nefnt tilvik um stóra sessþjónustu í Rússlandi. Þetta fyrirtæki er með Android farsímaforrit sem er vinsælt meðal viðskiptavina. Ársvelta farsímaforritsins var um 7 milljónir rúblur, árstíðabundnar sveiflur voru á bilinu 60-130 þúsund Sama fyrirtæki er einnig með forrit fyrir iOS og var meðalreikningur notanda Apple forritsins hærri en meðalreikningur á viðskiptavinur sem notar Android forritið - 1080 rub. á móti 1300 nudda.

Fyrirtækið ákvað að auka skilvirkni Android forritsins, sem það gerði ítarlega greiningu á. Nokkrir tugir tilgáta voru settar fram um að auka skilvirkni umsóknarinnar. Eftir notkun Retentionneering kom í ljós að vandamálið var í skilaboðunum sem voru sýnd nýjum notendum. Þeir fengu upplýsingar um vörumerkið, ávinning fyrirtækisins og verð. En eins og það kom í ljós áttu skilaboðin að hjálpa notandanum að læra hvernig á að vinna í forritinu.

Retentioneering: hvernig við skrifuðum opinn hugbúnað fyrir vörugreiningar í Python og Pandas

Þetta var gert, sem leiddi til þess að forritið varð minna fjarlægt og aukningin á umbreytingu í pöntun var 23%. Í fyrstu voru 20 prósent af innkominni umferð gefin í prófið, en eftir nokkra daga, eftir að hafa greint fyrstu niðurstöður og metið þróunina, sneru þau hlutföllunum við og þvert á móti skildu 20 prósent eftir fyrir samanburðarhópinn og áttatíu prósent voru sett í prófið. Viku síðar var ákveðið að bæta við prófun á tveimur tilgátum í röð. Á aðeins sjö vikum jókst veltan frá Android forritinu um einn og hálfan tíma miðað við fyrra stig.

Hvernig á að vinna með Retentioneering?

Fyrstu skrefin eru frekar einföld - halaðu niður bókasafninu með pip install retentioneering skipuninni. Geymslan sjálf inniheldur tilbúin dæmi og tilvik um gagnavinnslu fyrir sum vörugreiningarverkefni. Settið er stöðugt uppfært þar til það nægir fyrir fyrstu kynni. Hver sem er getur tekið tilbúnar einingar og beitt þeim strax í verkefni sín - þetta gerir þeim kleift að setja strax upp ferli ítarlegri greiningar og hagræðingar á ferilum notenda eins fljótt og skilvirkt og mögulegt er. Allt þetta gerir það mögulegt að finna notkunarmynstur forrita með skýrum kóða og deila þessari reynslu með samstarfsfólki.

Retentioneering er tól sem vert er að nota allan líftíma umsóknarinnar og hér er ástæðan:

  • Retentioneering er áhrifarík til að fylgjast með og stöðugt fínstilla feril notenda og bæta árangur fyrirtækja. Þannig er nýjum eiginleikum oft bætt við netviðskiptaforrit, sem ekki er alltaf hægt að spá rétt fyrir um áhrif þeirra á vöruna. Í sumum tilfellum koma upp samhæfnisvandamál milli nýrra og gamalla aðgerða - til dæmis, nýjar „mala“ þær sem fyrir eru. Og við þessar aðstæður er stöðug greining á ferlum einmitt það sem þarf.
  • Svipað er uppi á teningnum þegar unnið er með auglýsingaleiðir: nýjar umferðarheimildir og auglýsingar eru stöðugt í prófun, nauðsynlegt er að fylgjast með árstíðarsveiflu, þróun og áhrifum annarra atburða, sem leiðir til þess að fleiri og fleiri nýir flokkar vandamála koma upp. Þetta krefst einnig stöðugrar eftirlits og túlkunar á vélfræði notenda.
  • Það eru nokkrir þættir sem hafa stöðugt áhrif á frammistöðu forrits. Til dæmis, nýjar útgáfur frá forriturum: loka núverandi vandamáli, þeir skila óafvitandi því gamla eða búa til alveg nýtt. Með tímanum fjölgar nýjum útgáfum og ferlið við að rekja villur þarf að vera sjálfvirkt, meðal annars með því að greina feril notenda.

Á heildina litið er Retentioneering áhrifaríkt tæki. En það eru engin takmörk fyrir fullkomnun - það er hægt og ætti að bæta hana, þróa og byggja nýjar flottar vörur á grunni hennar. Því virkara sem samfélag verkefnisins er, því fleiri gafflar verða og nýir áhugaverðir möguleikar til að nota það munu birtast.

Frekari upplýsingar um Retentioneering verkfæri:

Heimild: www.habr.com

Bæta við athugasemd