Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Garrantzitsua da gure ikasleei prestakuntzan zer gertatzen zaien ulertzea eta gertaera horiek emaitzari nola eragiten dioten ulertzea, beraz, Customer Journey Map bat eraikitzen dugu, bezeroaren esperientziaren mapa. Azken finean, ikaskuntza-prozesua ez da zerbait etengabea eta integrala, ikaslearen elkarri loturiko gertakari eta ekintzen kate bat da, eta ekintza horiek asko alda daitezke ikasle ezberdinen artean. Orain amaitu du bere ikasgaia: zer egingo du gero? Etxeko lanetara joango al da? Mugikorrerako aplikazio bat jarriko al du martxan? Ikasturtea aldatuko al du, irakaslez aldatzeko eskatuko al du? Zuzenean joango al zara hurrengo ikasgaira? Edo etsita utziko du? Posible al da, mapa hori aztertuz, kurtsoa arrakastaz amaitzera edo, alderantziz, ikaslearen β€œuztea” dakarten ereduak identifikatzea?

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Normalean, kode itxiko tresna espezializatuak eta oso garestiak erabiltzen dira CJM eraikitzeko. Baina zerbait sinplea atera nahi genuen, ahalegin minimoa eta, ahal bada, kode irekia eskatzen zuena. Beraz, Markov kateak erabiltzeko ideia sortu zen eta lortu genuen. Mapa bat eraiki dugu, ikasleen portaerari buruzko datuak grafiko moduan interpretatu ditugu, negozio globalaren arazoei guztiz begi bistakoak ez diren erantzunak ikusi eta oso ezkutuko akatsak ere aurkitu ditugu. Hori guztia kode irekiko Python script irtenbideak erabiliz egin dugu. Artikulu honetan oso agerikoak ez diren emaitza horiek dituzten bi kasuei buruz hitz egingo dut eta gidoia denekin partekatuko dut.

Beraz, Markov kateek gertaeren arteko trantsizioen probabilitatea erakusten dute. Hona hemen Wikipediako adibide primitibo bat:

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Hemen "E" eta "A" gertaerak dira, geziak haien arteko trantsizioak dira (gertaera batetik bererako trantsizioa barne), eta gezien pisuak trantsizio probabilitatea ("grafiko haztatua").

Zer erabili zenuen?

Zirkuitua Python funtzionalitate estandarrekin entrenatu zen, ikasleen jardueren erregistroekin elikatzen zena. Sortutako matrizearen grafikoa NetworkX liburutegiak eraiki zuen.

Erregistroak honela dauka:

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Hau csv fitxategi bat da, hiru zutabeko taula bat duena: ikaslearen IDa, gertaeraren izena, gertatu zen ordua. Hiru eremu hauek nahikoak dira bezeroaren mugimenduak jarraitzeko, mapa bat eraikitzeko eta, azken batean, Markov kate bat lortzeko.

Liburutegiak eraikitako grafikoak .dot edo .gexf formatuan itzultzen ditu. Lehenengoa ikusteko, doako Graphviz paketea erabil dezakezu (gvedit tresna), .gexf eta Gephi-rekin lan egin dugu, doakoa ere.

Jarraian, Markov kateak erabiltzearen bi adibide jarri nahi nituzke, gure helburuei, hezkuntza prozesuei eta Skyeng ekosistema berari begirada berri bat emateko aukera eman baitigute. Beno, konpondu akatsak.

Lehenengo kasua: mugikorreko aplikazioa

Hasteko, ikasleen ibilbidea aztertu dugu gure produkturik ezagunenaren bidez β€”General ikastaroaβ€”. Momentu horretan, Skyeng-eko haur sailean ari nintzen lanean eta mugikorretarako aplikazioak gure haurren publikoarekin nola eraginkortasunez funtzionatzen zuen ikusi nahi genuen.

Erregistroak hartu eta scriptean zehar exekutatu, honelako zerbait lortu nuen:

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Hasierako nodoa Hasi orokorra da, eta behealdean hiru irteera nodo daude: ikaslea "lo geratu zen", kurtsoa aldatu eta ikastaroa amaitu zuen.

  • Lo hartu, "Lok hartu" - horrek esan nahi du ez duela klaserik hartzen, ziurrenik erori egin dela. Baikor deitzen diogu egoera horri β€œlo”, zeren... teorian, ikasketak jarraitzeko aukera dauka oraindik. Emaitza txarrena guretzat.
  • Jenerala jaitsi, Ibilbidea aldatu - Orokortik beste zerbaitera aldatu eta gure Markov katearekin galdu egin zen.
  • Ikastaroa amaitu, Ikastaroa amaitu - egoera ezin hobea, pertsonak ikasgaien % 80 egin du (ez dira ikasgai guztiak beharrezkoak).

Klaseko nodo arrakastatsuan sartzeak gure plataformako ikasgaia irakaslearekin batera arrakastaz osatzea esan nahi du. Ikastaroan zehar egindako aurrerapena eta nahi den emaitzara hurbiltzea erregistratzen du - "Ikastaroa amaitu da". Guretzat garrantzitsua da ikasleak ahalik eta gehien bertaratzea.

Mugikorreko aplikaziorako (aplikazioaren saio-nodoa) ondorio kuantitatibo zehatzagoak lortzeko, azken nodo bakoitzeko kate bereiziak eraiki ditugu eta gero ertz-pisuak pareka alderatu ditugu:

  • aplikazioko saiotik itzulera;
  • aplikazioko saiotik klase arrakastatsura;
  • klase arrakastatsutik aplikazioko saioraino.

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin
Ezkerrean kurtsoa amaitu duten ikasleak daude, eskuinaldean "lo geratu direnak"

Hiru ertz hauek ikasle baten arrakastaren eta mugikorretarako aplikazioaren erabileraren arteko erlazioa erakusten dute. Ikastaroa amaitu zuten ikasleek aplikazioarekin lotura handiagoa izango zutela espero genuen, loak hartu zuten ikasleek baino. Hala ere, errealitatean guztiz kontrako emaitzak lortu ditugu:

  • erabiltzaile talde ezberdinek mugikorretarako aplikazioarekin modu ezberdinean elkarreragiten dutela ziurtatu dugu;
  • arrakasta duten ikasleek aplikazio mugikorra gutxiago erabiltzen dute;
  • Loak hartzen duten ikasleek modu aktiboagoan erabiltzen dute mugikorreko aplikazioa.

Horrek esan nahi du loak hartzen duten ikasleak mugikorretarako aplikazioan gero eta denbora gehiago ematen hasten direla eta, azkenean, bertan geratzen direla betirako.

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Hasieran harrituta geratu ginen, baina hausnartu eta gero, efektu guztiz naturala zela konturatu ginen. Garai batean, frantsesa ikasten nuen nire kabuz bi tresna erabiliz: mugikorretarako aplikazio bat eta gramatika hitzaldiak YouTuben. Hasieran, denbora 50 eta 50 arteko proportzioan banatu nuen. Baina aplikazioa dibertigarriagoa da, gamifikazioa dago, dena sinplea, azkarra eta argia da, baina hitzaldian sakondu behar duzu, zerbait idatzi. , landu koaderno batean. Pixkanaka-pixkanaka, nire telefonoan denbora gehiago ematen hasi nintzen, bere kuota %100era igo zen arte: hiru ordu ematen badituzu, amaitutako lanaren sentsazio faltsu bat sortzen duzu, eta horregatik ez duzu ezer entzutera joateko gogorik. .

Baina nola izan daiteke hau? Azken finean, bereziki mugikorretarako aplikazio bat sortu dugu, bertan Ebbinghaus kurba eraiki zuen, gamifikatu zuen, erakargarri egin zuen jendeak denbora pasa zezan, baina konturatzen da distraitzen duela bakarrik? Izan ere, arrazoia da mugikorrentzako aplikazioen taldeak bere zereginei ondoegi aurre egin ziela, eta horren ondorioz produktu fresko eta autosufizientea bihurtu eta gure ekosistematik erortzen hasi zen.

Ikerketaren ondorioz, argi geratu zen mugikorretarako aplikazioa nolabait aldatu behar zela, ikasketa-ikasketa nagusitik arreta gutxiago izan zedin. Eta bai ume zein heldu. Gaur egun lan hau martxan dago.

Bigarren kasua: onboarding akatsak

Onboarding aukerako prozedura gehigarria da ikasle berri bat izena ematerakoan, etorkizunean arazo tekniko potentzialak ezabatuz. Oinarrizko agertokiak suposatzen du pertsona bat helmugako orrian erregistratu dela, bere kontu pertsonalerako sarbidea lortu duela, harremanetan jarri dela eta sarrerako ikasgai bat ematen duela. Aldi berean, sarrerako ikasgaian zailtasun teknikoen ehuneko handi bat nabaritzen dugu: nabigatzailearen bertsio okerrak, mikrofonoak edo soinuak ez du funtzionatzen, irakasleak ezin du berehala irtenbiderik iradoki, eta hori guztia bereziki zaila da. umeei. Hori dela eta, zure kontu pertsonalean aplikazio gehigarri bat garatu dugu, non lau urrats erraz bete ditzakezun: arakatzailea, kamera, mikrofonoa egiaztatu eta hasierako ikasgaian gurasoak gertu egongo direla berretsi (azken batean, haiek dira ordaintzen dutenak). beren seme-alaben hezkuntza).

Sartzeko orri gutxi hauek honelako inbutu bat erakusten zuten:

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin
1: hasierako blokea saio-hasiera eta pasahitza sartzeko hiru formulario apur bat desberdinak (bezeroaren arabera).
2: kontrol-laukia barneratzeko prozedura gehigarria onartzen duena.
2.1-2.3: Egiaztatu gurasoen presentzia, Chrome bertsioa eta soinua.
3: azken blokea.

Oso naturala dirudi: lehenengo bi urratsetan, bisitari gehienak alde egiten dute, konturatuta badagoela zerbait bete, egiaztatu, baina ez dago denborarik. Bezeroa hirugarren urratsera iritsi bada, ia ziur finalera iritsiko da. Ez dago inbutuan ezer susmatzeko arrazoi bakar bat ere.

Hala ere, gure barneratzea ez dimentsio bakarreko inbutu klasiko batean aztertzea erabaki genuen, Markov kate bat erabiliz baizik. Gertaera apur bat gehiago piztu genuen, gidoia exekutatu eta hau lortu genuen:

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Kaos honetan, gauza bakarra uler daiteke argi eta garbi: zerbait gaizki joan da. Onboarding-prozesua lineala da, hori diseinuaren berezkoa da, ez luke horrelako konexio sarerik egon behar bertan. Eta hemen berehala argi dago erabiltzailea pausoen artean botatzen dela, eta horien artean ez litzateke trantsiziorik egon behar.

Nola erabiltzen ditugun Markov kateak irtenbideak ebaluatzeko eta akatsak aurkitzeko. Python gidoi batekin

Irudi bitxi honen arrazoiak bi izan daitezke:

  • baskorrak log datu-basean sartu ziren;
  • Produktuan bertan akatsak daude - barneratzea.

Lehen arrazoia egia da ziurrenik, baina probak egitea nahiko lan handia da, eta erregistroak zuzentzeak ez du UX hobetzen lagunduko. Baina bigarrenarekin, baldin badago, premiazko zerbait egin behar zen. Hori dela eta, nodoak aztertzera joan ginen, existitu behar ez ziren ertzak identifikatzen eta haien agerpenaren arrazoiak bilatzera joan ginen. Ikusi genuen erabiltzaile batzuk trabatu eta borobilean ibiltzen zirela, beste batzuk erditik hasieraraino erori zirela, eta beste batzuk, printzipioz, ezin izan ziren lehen bi urratsetatik atera. Datuak QAra transferitu genituen, eta bai, nahikoa akats zeudela onboarding-ean: hau azpiproduktu bat da, makulu apur bat, ez zen behar bezain sakon probatu, zeren... Ez genuen arazorik espero. Orain grabaketa prozesu osoa aldatu da.

Istorio honek Markov kateen ustekabeko aplikazio bat erakutsi digu QA arloan.

Probatu zeure burua!

Nirea argitaratu dut Markov kateak entrenatzeko Python gidoia domeinu publikoan - erabili zure osasunerako. GitHub-en dokumentazioa, galderak hemen egin daitezke, guztia erantzuten saiatuko naiz.

Beno, esteka erabilgarriak: NetworkX liburutegia, Graphviz bistaratzailea. Eta hemen HabrΓ©ri buruzko artikulu bat dago Markov kateei buruz. Artikuluko grafikoak erabiliz egiten dira Gephi.

Iturria: www.habr.com

Gehitu iruzkin berria