Uhifadhi: jinsi tulivyoandika zana huria za uchanganuzi wa bidhaa katika Python na Pandas

Habari, Habr. Nakala hii imejitolea kwa matokeo ya miaka minne ya maendeleo ya seti ya mbinu na zana za usindikaji wa trajectories za harakati za mtumiaji katika programu au tovuti. Mwandishi wa maendeleo - Maxim Godzi, ambaye anaongoza timu ya waundaji wa bidhaa na pia ndiye mwandishi wa makala. Bidhaa yenyewe iliitwa Retentioneering; sasa imebadilishwa kuwa maktaba ya chanzo-wazi na kuchapishwa kwenye Github ili mtu yeyote aweze kuitumia. Haya yote yanaweza kuwa ya manufaa kwa wale wanaohusika katika uchambuzi wa bidhaa na masoko, ukuzaji na maendeleo ya bidhaa. Kwa njia, juu ya Habre nakala tayari imechapishwa kuhusu moja ya kesi za kufanya kazi na Retentioneering. Nyenzo mpya inaelezea kile bidhaa inaweza kufanya na jinsi inaweza kutumika.

Baada ya kusoma kifungu, wewe mwenyewe utaweza kuandika Uhifadhi wako mwenyewe; inaweza kuwa njia yoyote sanifu ya kuchakata trajectories za mtumiaji katika programu na zaidi, kukuwezesha kuona kwa undani sifa za tabia na kutoa maarifa kutoka kwa hii kwa ukuaji. ya vipimo vya biashara.

Uhifadhi ni nini na kwa nini inahitajika?

Lengo letu la awali lilikuwa kuhamisha Udukuzi wa Ukuaji kutoka kwa ulimwengu wa "uchawi wa kidijitali" hadi ulimwengu wa nambari, uchanganuzi na utabiri. Kwa hivyo, uchanganuzi wa bidhaa hupunguzwa hadi hisabati kamili na upangaji programu kwa wale wanaopendelea nambari badala ya hadithi za kupendeza, na fomula hadi maneno buzzwords kama vile "kuweka chapa", "kuweka upya", nk, ambayo inaonekana kuwa nzuri, lakini kwa mazoezi husaidia kidogo.

Ili kutatua matatizo haya, tulihitaji mfumo wa uchanganuzi kupitia grafu na trajectories, na wakati huo huo maktaba ambayo hurahisisha taratibu za kawaida za wachanganuzi, kama njia ya kuelezea kazi za kawaida za uchanganuzi wa bidhaa ambazo zingeeleweka kwa watu na roboti. Maktaba hutoa uwezo wa kuelezea tabia ya mtumiaji na kuiunganisha na vipimo vya biashara ya bidhaa kwa lugha rasmi na iliyo wazi hivi kwamba hurahisisha na kubinafsisha kazi za kawaida za wasanidi programu na wachambuzi, na kurahisisha mawasiliano yao na biashara.

Uhifadhi ni mbinu na zana za programu za uchanganuzi ambazo zinaweza kubadilishwa na kuunganishwa katika bidhaa yoyote ya dijiti (na si tu).

Tulianza kufanya kazi kwenye bidhaa mnamo 2015. Sasa hii ni seti ya zana zilizotengenezwa tayari, ingawa bado hazijafaa, katika Python na Pandas za kufanya kazi na data, miundo ya mashine ya kujifunza yenye api ya sklearn-kama, zana za kutafsiri matokeo ya mifano ya kujifunza mashine eli5 na shap.

Yote yamefungwa kwa maktaba rahisi ya chanzo-wazi katika hazina iliyo wazi ya Github - zana za kuhifadhi. Kutumia maktaba si vigumu; karibu mtu yeyote anayependa uchanganuzi wa bidhaa, lakini hajaandika msimbo hapo awali, anaweza kutumia mbinu zetu za uchanganuzi kwenye data yake kwa kujitegemea na bila uwekezaji mkubwa wa wakati.

Vema, mtayarishaji programu, mtayarishaji programu, au mshiriki wa timu ya ukuzaji au majaribio ambaye hajawahi kufanya uchanganuzi hapo awali anaweza kuanza kucheza na msimbo huu na kuona mifumo ya matumizi ya programu yao bila usaidizi wa nje.

Njia ya mtumiaji kama kipengele cha msingi cha uchambuzi na mbinu za usindikaji wake

Mwelekeo wa mtumiaji ni mlolongo wa hali za watumiaji katika nyakati fulani. Zaidi ya hayo, matukio yanaweza kutoka kwa vyanzo tofauti vya data, mtandaoni na nje ya mtandao. Matukio ambayo hutokea kwa mtumiaji ni sehemu ya trajectory yake. Mifano:
β€’ alibonyeza kitufe
β€’ aliona picha
β€’ gonga skrini
β€’ kupokea barua pepe
β€’ ilipendekeza bidhaa kwa rafiki
β€’ alijaza fomu
β€’ aligonga skrini
β€’ kusongesha
β€’ alienda kwenye rejista ya fedha
β€’ aliagiza burrito
β€’ alikula burrito
β€’ kupata sumu kwa kula burrito
β€’ aliingia cafe kutoka mlango wa nyuma
β€’ aliingia kutoka mlango wa mbele
β€’ ilipunguza programu
β€’ kupokea arifa kutoka kwa programu
β€’ ilikwama kwenye skrini kwa muda mrefu kuliko X
β€’ kulipia agizo
β€’ alinunua agizo
β€’ alikataliwa mkopo

Ukichukua data ya trajectory ya kikundi cha watumiaji na kusoma jinsi mabadiliko yanavyopangwa, unaweza kufuatilia haswa jinsi tabia zao katika programu zimeundwa. Ni rahisi kufanya hivyo kupitia grafu ambayo majimbo ni nodi, na mabadiliko kati ya majimbo ni kingo:

Uhifadhi: jinsi tulivyoandika zana huria za uchanganuzi wa bidhaa katika Python na Pandas

"Trajectory" ni dhana rahisi sana - ina maelezo ya kina kuhusu vitendo vyote vya mtumiaji, na uwezo wa kuongeza data yoyote ya ziada kwa maelezo ya vitendo hivi. Hii inafanya kuwa kitu cha ulimwengu wote. Ikiwa una zana nzuri na zinazofaa zinazokuwezesha kufanya kazi na trajectories, basi unaweza kupata kufanana na kuzigawa.

Sehemu ya trajectory inaweza kuonekana kuwa ngumu sana mwanzoni. Katika hali ya kawaida, hii ndio kesi - unahitaji kutumia kulinganisha matrix ya uunganisho au mlolongo wa mlolongo. Tuliweza kupata njia rahisi - kusoma idadi kubwa ya trajectories na sehemu yao kwa njia ya nguzo.

Kama ilivyotokea, inawezekana kugeuza trajectory kuwa hatua kwa kutumia uwakilishi unaoendelea, kwa mfano, TF-IDF. Baada ya mabadiliko, trajectory inakuwa hatua katika nafasi ambapo tukio la kawaida la matukio mbalimbali na mabadiliko kati yao katika trajectory hupangwa pamoja na shoka. Kitu hiki kutoka kwa nafasi kubwa ya elfu moja au zaidi (dimS=sum(aina za tukio)+sum(ngrams_2 aina)) kinaweza kukadiriwa kwenye ndege kwa kutumia TSNE. TSNE ni mabadiliko ambayo hupunguza mwelekeo wa nafasi kwa shoka 2 na, ikiwezekana, huhifadhi umbali wa jamaa kati ya pointi. Ipasavyo, inawezekana kwenye ramani ya gorofa, ramani ya makadirio ya mfano ya trajectories, kusoma jinsi alama za trajectories tofauti zilipatikana kati yao wenyewe. Inachanganua jinsi yalivyokuwa karibu au tofauti kwa kila mmoja, iwe yaliunda makundi au yalitawanyika kwenye ramani, n.k.:

Uhifadhi: jinsi tulivyoandika zana huria za uchanganuzi wa bidhaa katika Python na Pandas

Zana za uchanganuzi za uhifadhi hutoa uwezo wa kugeuza data changamano na trajectories katika mtazamo ambao unaweza kulinganishwa na kila mmoja, na kisha matokeo ya mabadiliko yanaweza kuchunguzwa na kufasiriwa.

Tukizungumza kuhusu mbinu za kawaida za kuchakata trajectories, tunamaanisha zana kuu tatu ambazo tumetekeleza katika Uhifadhi - grafu, matrices ya hatua na ramani za makadirio ya trajectory.

Kufanya kazi na Google Analytics, Firebase na mifumo sawa ya uchanganuzi ni ngumu sana na haifanyi kazi 100%. Shida ni idadi ya vizuizi kwa mtumiaji, kama matokeo ambayo kazi ya mchambuzi katika mifumo kama hiyo inategemea kubofya kwa panya na uteuzi wa vipande. Uhifadhi hufanya iwezekane kufanya kazi na njia za watumiaji, na sio tu na funeli, kama ilivyo kwa Google Analytics, ambapo kiwango cha maelezo mara nyingi hupunguzwa hadi fanicha, ingawa imeundwa kwa sehemu fulani.

Uhifadhi na kesi

Kama mfano wa kutumia zana iliyotengenezwa, tunaweza kutaja kesi ya huduma kubwa ya niche nchini Urusi. Kampuni hii ina programu ya simu ya Android ambayo ni maarufu miongoni mwa wateja. Mauzo ya kila mwaka kutoka kwa programu ya rununu yalikuwa takriban rubles milioni 7, mabadiliko ya msimu yalianzia elfu 60-130. Kampuni hiyo hiyo pia ina programu ya iOS, na bili ya wastani ya mtumiaji wa programu ya Apple ilikuwa kubwa kuliko bili ya wastani ya mteja anayetumia programu ya Android - 1080 rub. dhidi ya 1300 kusugua.

Kampuni iliamua kuongeza ufanisi wa programu ya Android, ambayo ilifanya uchambuzi wa kina. Dhana kadhaa kadhaa zilitolewa kuhusu kuongeza ufanisi wa programu. Baada ya kutumia Retentionneering, ilibainika kuwa tatizo lilikuwa kwenye ujumbe ambao ulionyeshwa kwa watumiaji wapya. Walipokea habari kuhusu chapa, faida za kampuni na bei. Lakini, kama ilivyotokea, ujumbe ulipaswa kumsaidia mtumiaji kujifunza jinsi ya kufanya kazi katika programu.

Uhifadhi: jinsi tulivyoandika zana huria za uchanganuzi wa bidhaa katika Python na Pandas

Hili lilifanyika, kama matokeo ambayo programu ilipunguzwa sana, na ongezeko la ubadilishaji kuwa agizo lilikuwa 23%. Mara ya kwanza, asilimia 20 ya trafiki inayoingia ilipewa mtihani, lakini baada ya siku chache, baada ya kuchambua matokeo ya kwanza na kutathmini mwenendo, walibadilisha uwiano na, kinyume chake, waliacha asilimia 20 kwa kikundi cha udhibiti, na. asilimia themanini waliwekwa kwenye mtihani. Wiki moja baadaye, iliamuliwa kuongeza mlolongo wa majaribio ya nadharia mbili zaidi. Katika wiki saba tu, mauzo kutoka kwa programu ya Android yaliongezeka kwa mara moja na nusu ikilinganishwa na kiwango cha awali.

Jinsi ya kufanya kazi na Retentionering?

Hatua za kwanza ni rahisi sana - pakua maktaba na pip install retentionering amri. Hifadhi yenyewe ina mifano iliyotengenezwa tayari na kesi za usindikaji wa data kwa baadhi ya kazi za uchanganuzi wa bidhaa. Seti hiyo inasasishwa kila wakati hadi inatosha kwa mtu anayemjua kwanza. Mtu yeyote anaweza kuchukua moduli zilizotengenezwa tayari na kuzitumia mara moja kwa kazi zao - hii inawaruhusu kuanzisha mara moja mchakato wa uchambuzi wa kina zaidi na uboreshaji wa trajectories za watumiaji haraka na kwa ufanisi iwezekanavyo. Haya yote huwezesha kupata mifumo ya matumizi ya programu kupitia msimbo wazi na kushiriki uzoefu huu na wenzako.

Uhifadhi ni zana inayofaa kutumia maishani mwa programu yako, na hii ndiyo sababu:

  • Uhifadhi ni mzuri kwa kufuatilia na kuboresha mienendo ya watumiaji kila mara na kuboresha utendaji wa biashara. Kwa hivyo, vipengele vipya mara nyingi huongezwa kwa programu za ecommerce, ambazo athari zake kwenye bidhaa haziwezi kutabiriwa kwa usahihi kila wakati. Katika baadhi ya matukio, matatizo ya utangamano hutokea kati ya kazi mpya na za zamani - kwa mfano, mpya "cannibalize" zilizopo. Na katika hali hii, uchambuzi wa mara kwa mara wa trajectories ni nini kinachohitajika.
  • Hali ni sawa wakati wa kufanya kazi na njia za matangazo: vyanzo vipya vya trafiki na wabunifu wa utangazaji hujaribiwa kila wakati, ni muhimu kufuatilia msimu, mwenendo na ushawishi wa matukio mengine, ambayo husababisha kuibuka kwa madarasa mapya zaidi na zaidi ya matatizo. Hii pia inahitaji ufuatiliaji na tafsiri ya mara kwa mara ya mechanics ya watumiaji.
  • Kuna mambo kadhaa ambayo huathiri mara kwa mara utendakazi wa programu. Kwa mfano, matoleo mapya kutoka kwa watengenezaji: kufunga tatizo la sasa, wanarudi bila kujua la zamani au kuunda mpya kabisa. Baada ya muda, idadi ya matoleo mapya huongezeka, na mchakato wa kufuatilia hitilafu unahitaji kuwa otomatiki, ikiwa ni pamoja na kuchanganua trajectories za mtumiaji.

Kwa ujumla, Retentionering ni chombo madhubuti. Lakini hakuna kikomo kwa ukamilifu - inaweza na inapaswa kuboreshwa, kuendelezwa, na bidhaa mpya za baridi zilizojengwa kwa misingi yake. Kadiri jumuiya ya mradi inavyofanya kazi zaidi, ndivyo uma zitakavyokuwa nyingi, na chaguo mpya za kuutumia zitaonekana.

Maelezo zaidi kuhusu zana za Uhifadhi:

Chanzo: mapenzi.com

Kuongeza maoni