Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Huwa importanti għalina li nifhmu x'jiġri mill-istudenti tagħna waqt it-taħriġ u kif dawn l-avvenimenti jaffettwaw ir-riżultat, għalhekk nibnu Mappa tal-Vjaġġ tal-Klijent - mappa tal-esperjenza tal-klijent. Wara kollox, il-proċess ta 'tagħlim mhuwiex xi ħaġa kontinwa u integrali, huwa katina ta' avvenimenti u azzjonijiet interkonnessi tal-istudent, u dawn l-azzjonijiet jistgħu jvarjaw ħafna fost studenti differenti. Issa lesta l-lezzjoni tiegħu: x’se jagħmel wara? Se tmur għall-homework? Se tniedi applikazzjoni mobbli? Se jibdel ir-rotta, jitlob li jibdel l-għalliema? Se tmur dritt għal-lezzjoni li jmiss? Jew se jitlaq diżappuntat? Huwa possibbli, billi tiġi analizzata din il-mappa, li jiġu identifikati mudelli li jwasslu għat-tlestija b'suċċess tal-kors jew, bil-maqlub, għat-"tluq" tal-istudent?

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Tipikament, għodod speċjalizzati, għaljin ħafna ta 'sors magħluq huma użati biex jibnu CJM. Imma ridna noħorġu b'xi ħaġa sempliċi, li teħtieġ sforz minimu u, jekk possibbli, sors miftuħ. Allura ħarġet l-idea li nużaw il-ktajjen ta' Markov - u rnexxielna. Bnejna mappa, interpretajna dejta dwar l-imġiba tal-istudenti fil-forma ta 'graff, rajna tweġibiet kompletament mhux ovvji għal kwistjonijiet ta' negozju globali, u anke sibna bugs moħbija fil-fond. Għamilna dan kollu bl-użu ta’ soluzzjonijiet ta’ skript Python ta’ sors miftuħ. F'dan l-artikolu ser nitkellem dwar żewġ każijiet b'dawk ir-riżultati mhux ovvji ħafna u naqsam l-iskrittura ma 'kulħadd.

Għalhekk, il-ktajjen ta 'Markov juru l-probabbiltà ta' tranżizzjonijiet bejn l-avvenimenti. Hawn eżempju primittiv mill-Wikipedija:

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Hawnhekk "E" u "A" huma avvenimenti, il-vleġeġ huma tranżizzjonijiet bejniethom (inkluża t-tranżizzjoni minn avveniment għall-istess), u l-piżijiet tal-vleġeġ huma l-probabbiltà ta 'transizzjoni ("graff dirett ippeżat").

X'użajt?

Iċ-ċirkwit ġie mħarreġ b'funzjonalità standard ta 'Python, li kienet mitmugħa b'ġurnali tal-attività tal-istudenti. Il-graff fuq il-matriċi li tirriżulta kienet mibnija mil-librerija NetworkX.

Il-ġurnal jidher bħal dan:

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Dan huwa fajl csv li fih tabella ta’ tliet kolonni: id tal-istudent, isem l-avveniment, ħin meta seħħ. Dawn it-tliet oqsma huma biżżejjed biex jintraċċaw il-movimenti tal-klijent, jibnu mappa u fl-aħħar jiksbu katina Markov.

Il-librerija tirritorna l-graffs mibnija f'format .dot jew .gexf. Biex tara l-ewwel, tista 'tuża l-pakkett Graphviz b'xejn (għodda gvedit), ħdimna ma' .gexf u Gephi, b'xejn ukoll.

Sussegwentement nixtieq nagħti żewġ eżempji ta’ kif nużaw il-ktajjen ta’ Markov, li ppermettewlna nagħtu ħarsa ġdida lejn l-għanijiet tagħna, il-proċessi edukattivi, u l-ekosistema Skyeng nnifisha. Ukoll, tiffissa l-bugs.

L-ewwel każ: applikazzjoni mobbli

Biex nibdew, esplorajna l-vjaġġ tal-istudenti permezz tal-prodott l-aktar popolari tagħna—il-kors Ġenerali. F'dak il-mument, kont qed naħdem fid-dipartiment tat-tfal ta' Skyeng u ridna naraw kemm l-applikazzjoni tal-mowbajl taħdem b'mod effettiv mal-udjenza tat-tfal tagħna.

Meta nieħu r-zkuk u nmexxihom permezz tal-iskript, sibt xi ħaġa bħal din:

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

In-nodu tal-bidu huwa Bidu Ġenerali, u fin-naħa t'isfel hemm tliet nodi tal-output: l-istudent "torqod", biddel ir-rotta, u spiċċa l-kors.

  • Irqad, "Rqad" - dan ifisser li m'għadux jieħu l-klassijiet, x'aktarx li waqa '. Dan l-istat b’ottimist insejħulu “rieqed”, għax... fit-teorija, għad għandu l-opportunità li jkompli l-istudji tiegħu. L-agħar riżultat għalina.
  • Waqqa 'ġenerali, Inbidel ir-rotta - qaleb minn Ġenerali għal xi ħaġa oħra u ntilef għall-katina ta' Markov tagħna.
  • Kors lest, Lest il-kors - kundizzjoni ideali, il-persuna lestiet 80% tal-lezzjonijiet (mhux il-lezzjonijiet kollha huma meħtieġa).

Li tidħol fin-node tal-klassi b'suċċess ifisser li tlesti b'suċċess il-lezzjoni fuq il-pjattaforma tagħna flimkien mal-għalliem. Tirreġistra l-progress tul il-kors u l-approċċ lejn ir-riżultat mixtieq - "Imlesta l-kors." Huwa importanti għalina li l-istudenti jattendu kemm jista’ jkun.

Biex tikseb konklużjonijiet kwantitattivi aktar preċiżi għall-applikazzjoni mobbli (nodu tas-sessjoni tal-app), bnejna ktajjen separati għal kull wieħed min-nodi finali u mbagħad qabbilna l-piżijiet tat-tarf f'pari:

  • mis-sessjoni tal-app lura għaliha;
  • mis-sessjoni tal-app għal klassi ta' suċċess;
  • minn klassi ta' suċċess għal sessjoni tal-app.

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python
Fuq ix-xellug hemm l-istudenti li temmew il-kors, fuq il-lemin hemm dawk li "reqdu"

Dawn it-tliet truf juru r-relazzjoni bejn is-suċċess ta’ student u l-użu tagħhom tal-app mobbli. Aħna stennejna li naraw li l-istudenti li temmew il-kors ikollhom rabta aktar b'saħħitha mal-applikazzjoni minn studenti li raqdu. Madankollu, fir-realtà ksibna eżattament ir-riżultati opposti:

  • għamilna ċert li gruppi differenti ta 'utenti jinteraġixxu ma' l-applikazzjoni mobbli b'mod differenti;
  • studenti ta’ suċċess jużaw l-applikazzjoni tal-mowbajl b’mod inqas intensiv;
  • studenti li jorqdu jużaw l-applikazzjoni tal-mowbajl b’mod aktar attiv.

Dan ifisser li studenti li jorqdu jibdew iqattgħu aktar u aktar ħin fl-applikazzjoni tal-mowbajl u, fl-aħħar mill-aħħar, jibqgħu fiha għal dejjem.

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Għall-ewwel konna sorpriżi, iżda wara li ħsibna dwarha, indunajna li dan kien effett kompletament naturali. F'ħin minnhom, studjajt il-Franċiż waħdi billi tuża żewġ għodod: applikazzjoni mobbli u lekċers tal-grammatika fuq YouTube. Għall-ewwel, qsamt il-ħin bejniethom fi proporzjon ta '50 għal 50. Iżda l-applikazzjoni hija aktar divertenti, hemm gamification, kollox huwa sempliċi, veloċi u ċar, iżda fil-lecture trid tidħol fiha, ikteb xi ħaġa. , prattika f'notebook. Gradwalment, bdejt inqatta 'aktar ħin fuq l-ismartphone tiegħi, sakemm is-sehem tiegħu kiber għal 100%: jekk tqatta' tliet sigħat fuqha, toħloq sensazzjoni falza ta 'xogħol lest, li minħabba fih m'għandekx xewqa li tmur tisma' xi ħaġa. .

Imma dan kif jista’ jkun? Wara kollox, ħloqna apposta applikazzjoni mobbli, mibnija fiha l-kurva Ebbinghaus, gamifikatha, għamilha attraenti biex in-nies iqattgħu ħin fiha, iżda jirriżulta li jtellifhom biss? Fil-fatt, ir-raġuni hija li t-tim tal-applikazzjoni tal-mowbajl rnexxielu jlaħħaq mal-kompiti tiegħu wisq, b'riżultat ta 'dan sar prodott frisk u awtosuffiċjenti u beda jaqa' barra mill-ekosistema tagħna.

Bħala riżultat tar-riċerka, deher ċar li l-applikazzjoni tal-mowbajl kellha bżonn tinbidel b'xi mod sabiex tkun inqas tfixkel mill-kors prinċipali tal-istudju. U kemm tfal kif ukoll adulti. Dan ix-xogħol bħalissa għaddej.

It-tieni każ: bugs ta' abbord

L-imbarkazzjoni hija proċedura addizzjonali fakultattiva meta tirreġistra student ġdid, li telimina problemi tekniċi potenzjali fil-futur. Ix-xenarju bażiku jassumi li persuna tkun irreġistrat fuq il-paġna ta 'destinazzjoni, kisbet aċċess għall-kont personali tagħha, tiġi kkuntattjata u tingħata lezzjoni introduttorja. Fl-istess ħin, ninnotaw persentaġġ kbir ta 'diffikultajiet tekniċi matul il-lezzjoni introduttorja: il-verżjoni ħażina tal-browser, il-mikrofonu jew il-ħoss ma taħdimx, l-għalliem ma jistax jissuġġerixxi immedjatament soluzzjoni, u dan kollu huwa speċjalment diffiċli meta niġu lit-tfal. Għalhekk, żviluppajna applikazzjoni addizzjonali fil-kont personali tiegħek, fejn tista’ tlesti erba’ passi sempliċi: iċċekkja l-browser, il-kamera, il-mikrofonu tiegħek u tikkonferma li l-ġenituri se jkunu fil-qrib waqt il-lezzjoni introduttorja (wara kollox, huma huma li jħallsu għal l-edukazzjoni ta’ wliedhom).

Dawn il-ftit paġni tal-inkorporazzjoni wrew lembut bħal dan:

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python
1: blokk tal-bidu bi tliet formoli ta' dħul kemmxejn differenti (skond il-klijent) tal-login u l-password.
2: checkbox li taqbel mal-proċedura ta' onboarding addizzjonali.
2.1-2.3: Iċċekkja għall-preżenza tal-ġenitur, il-verżjoni tal-Chrome u l-ħoss.
3: blokk finali.

Jidher naturali ħafna: fl-ewwel żewġ passi, il-biċċa l-kbira tal-viżitaturi jitilqu, jirrealizzaw li hemm xi ħaġa x'timla, tiċċekkja, iżda m'hemmx ħin. Jekk il-klijent ikun laħaq it-tielet pass, allura kważi ċertament se jilħaq il-finali. M'hemm l-ebda raġuni waħda biex jissuspetta xi ħaġa fuq il-lembut.

Madankollu, iddeċidejna li nanalizzaw l-inkorporazzjoni tagħna mhux fuq lembut klassiku ta 'dimensjoni waħda, iżda bl-użu ta' katina Markov. Dawwarna ftit aktar avvenimenti, għamilna l-iskript u ksibna dan:

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

F'dan il-kaos, ħaġa waħda biss tista' tinftiehem b'mod ċar: xi ħaġa marret ħażin. Il-proċess ta 'l-onboarding huwa lineari, dan huwa inerenti fid-disinn, m'għandux ikun hemm tali web ta' konnessjonijiet fih. U hawnhekk huwa immedjatament ċar li l-utent jintrema bejn passi, li bejniethom m'għandu jkun hemm l-ebda tranżizzjoni.

Kif nużaw il-ktajjen ta' Markov fl-evalwazzjoni tas-soluzzjonijiet u nsibu bugs. B'kitba Python

Jista 'jkun hemm żewġ raġunijiet għal din l-istampa stramba:

  • shares daħlu fid-database taz-zkuk;
  • Hemm żbalji fil-prodott innifsu - onboarding.

L-ewwel raġuni x'aktarx hija vera, iżda l-ittestjar huwa pjuttost xogħol intensiv, u l-korrezzjoni tar-zkuk mhux se tgħin biex ittejjeb l-UX. Imma bit-tieni waħda, jekk teżisti, kellha ssir xi ħaġa b’urġenza. Għalhekk, morna nħarsu lejn in-nodi, nidentifikaw it-truf li m'għandhomx jeżistu, u nfittxu r-raġunijiet għall-okkorrenza tagħhom. Rajna li xi utenti teħel u mexjin fiċ-ċrieki, oħrajn waqgħu min-nofs sal-bidu, u oħrajn, fil-prinċipju, ma setgħux joħorġu mill-ewwel żewġ passi. Aħna ttrasferijna d-dejta lill-QA - u iva, irriżulta li kien hemm biżżejjed bugs fl-onboarding: dan huwa tali prodott sekondarju, daqsxejn ta 'crutch, ma ġiex ittestjat fil-fond biżżejjed, għaliex... Ma stennejna l-ebda problema. Issa l-proċess kollu tar-reġistrazzjoni nbidel.

Din l-istorja wrietna applikazzjoni mhux mistennija tal-ktajjen Markov fil-qasam tal-QA.

Ipprovaha int stess!

I stazzjonati tiegħi Script Python għat-taħriġ tal-ktajjen Markov fid-dominju pubbliku - użah għal saħħtek. Dokumentazzjoni fuq GitHub, mistoqsijiet jistgħu jsiru hawn, se nipprova nwieġeb kollox.

Ukoll, links utli: Librerija NetworkX, Viżwalizzatur Graphviz. U hawn hemm artiklu dwar Habré dwar ktajjen Markov. Il-graffs fl-artiklu huma magħmula bl-użu Gephi.

Sors: www.habr.com

Żid kumment