Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Մեզ համար կարևոր է հասկանալ, թե ինչ է տեղի ունենում մեր ուսանողների հետ վերապատրաստման ընթացքում և ինչպես են այդ իրադարձություններն ազդում արդյունքի վրա, ուստի մենք կառուցում ենք Հաճախորդների ճանապարհորդության քարտեզ՝ հաճախորդների փորձի քարտեզ: Ի վերջո, ուսուցման գործընթացը շարունակական և անբաժանելի բան չէ, այն փոխկապակցված իրադարձությունների և աշակերտի գործողությունների շղթա է, և այդ գործողությունները կարող են շատ տարբեր լինել տարբեր ուսանողների միջև: Հիմա նա ավարտել է իր դասը՝ ի՞նչ է անելու հետո։ Արդյո՞ք դա գնալու է տնային աշխատանքի: Այն կգործարկի՞ բջջային հավելված: Նա կփոխի՞ կուրսը, կխնդրի փոխել ուսուցիչներին։ Կգնա՞ք ուղիղ հաջորդ դասին: Թե՞ պարզապես հիասթափված կհեռանա։ Հնարավո՞ր է արդյոք, վերլուծելով այս քարտեզը, բացահայտել օրինաչափությունները, որոնք հանգեցնում են դասընթացի հաջող ավարտին կամ, ընդհակառակը, ուսանողի «դուրս գալուն»:

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Սովորաբար, մասնագիտացված, շատ թանկարժեք փակ կոդով գործիքներ են օգտագործվում CJM-ի կառուցման համար: Բայց մենք ուզում էինք մի պարզ բան հորինել, որը պահանջում է նվազագույն ջանք և, հնարավորության դեպքում, բաց կոդով: Այսպիսով, գաղափարը ծագեց օգտագործել Մարկովի շղթաներ, և մեզ հաջողվեց: Մենք կառուցեցինք քարտեզ, մեկնաբանեցինք աշակերտի վարքագծի վերաբերյալ տվյալները գրաֆիկի տեսքով, տեսանք գլոբալ բիզնեսի խնդիրների բոլորովին ոչ ակնհայտ պատասխաններ և նույնիսկ խորապես թաքնված սխալներ գտանք: Այս ամենը մենք արեցինք՝ օգտագործելով բաց կոդով Python սկրիպտ լուծումներ։ Այս հոդվածում ես կխոսեմ երկու դեպքի մասին՝ այդ շատ ոչ ակնհայտ արդյունքներով և կկիսվեմ սցենարով բոլորի հետ։

Այսպիսով, Մարկովյան շղթաները ցույց են տալիս իրադարձությունների միջև անցումների հավանականությունը։ Ահա մի պարզունակ օրինակ Վիքիպեդիայից.

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Այստեղ «E»-ն և «A»-ն իրադարձություններ են, սլաքները նրանց միջև անցումներ են (ներառյալ անցումը իրադարձությունից դեպի նույնը), իսկ սլաքների կշիռները՝ անցման հավանականությունը («կշռված ուղղորդված գրաֆիկ»):

Ինչ եք օգտագործել:

Շղթան վերապատրաստվել է ստանդարտ Python ֆունկցիոնալությամբ, որը սնվում է ուսանողների գործունեության տեղեկամատյաններով: Ստացված մատրիցայի գրաֆիկը կառուցվել է NetworkX գրադարանի կողմից:

Գրանցամատյանը այսպիսի տեսք ունի.

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Սա csv ֆայլ է, որը պարունակում է երեք սյունակներից բաղկացած աղյուսակ՝ ուսանողի id, իրադարձության անվանումը, դրա տեղի ունեցած ժամանակը: Այս երեք դաշտերը բավական են հաճախորդի շարժումներին հետևելու, քարտեզ կառուցելու և ի վերջո Մարկովյան շղթա ստանալու համար:

Գրադարանը վերադարձնում է կառուցված գրաֆիկները .dot կամ .gexf ձևաչափով: Առաջինը պատկերացնելու համար կարող եք օգտագործել Graphviz անվճար փաթեթը (gvedit գործիք), մենք աշխատել ենք .gexf-ի և Gephi-ի հետ, նույնպես անվճար:

Հաջորդիվ ես կցանկանայի բերել Մարկովյան շղթաների օգտագործման երկու օրինակ, որոնք մեզ թույլ տվեցին թարմ հայացք նետել մեր նպատակներին, կրթական գործընթացներին և հենց Skyeng-ի էկոհամակարգին: Դե, ուղղեք սխալները:

Առաջին դեպքը՝ բջջային հավելված

Սկզբից մենք ուսումնասիրեցինք ուսանողական ճանապարհորդությունը մեր ամենահայտնի արտադրանքի՝ Ընդհանուր դասընթացի միջոցով: Այդ պահին ես աշխատում էի Skyeng-ի մանկական բաժնում և ուզում էինք տեսնել, թե որքան արդյունավետ է բջջային հավելվածը աշխատում մեր մանկական լսարանի հետ։

Վերցնելով տեղեկամատյանները և դրանք անցնելով սցենարի միջով, ես ստացա այսպիսի բան.

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Մեկնարկային հանգույցը մեկնարկային ընդհանուր է, իսկ ներքևում կան երեք ելքային հանգույցներ. ուսանողը «քնեց», փոխեց դասընթացը և ավարտեց դասընթացը:

  • Քնել է, «քնել է» - սա նշանակում է, որ նա այլևս դասերի չի գնում, ամենայն հավանականությամբ նա ընկել է: Այս վիճակը մենք լավատեսորեն անվանում ենք «քնած», քանի որ... տեսականորեն նա դեռ հնարավորություն ունի շարունակելու ուսումը։ Ամենավատ արդյունքը մեզ համար.
  • Գեներալը իջել է, փոխվել է կուրսը - Գեներալից անցել է մեկ այլ բանի և կորել մեր Մարկովյան շղթայի համար:
  • Ավարտված դասընթաց, Ավարտել է դասընթացը - իդեալական վիճակ, անձը ավարտել է դասերի 80%-ը (ոչ բոլոր դասերը պարտադիր են):

Հաջողակ դասի հանգույց մտնելը նշանակում է ուսուցչի հետ միասին հաջողությամբ ավարտել դասը մեր հարթակում: Այն արձանագրում է ընթացքի ընթացքում առաջընթաց և ցանկալի արդյունքի մոտեցում՝ «Ավարտված դասընթացը»: Մեզ համար կարևոր է, որ ուսանողները հնարավորինս շատ հաճախեն:

Բջջային հավելվածի (հավելվածի նիստի հանգույց) ավելի ճշգրիտ քանակական եզրակացություններ ստանալու համար մենք կառուցեցինք առանձին շղթաներ վերջնական հանգույցներից յուրաքանչյուրի համար, այնուհետև համեմատեցինք եզրերի կշիռները զույգերով.

  • հավելվածի նիստից վերադառնալ դրան;
  • հավելվածի նիստից մինչև հաջող դաս;
  • հաջող դասից մինչև հավելվածի նիստ:

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով
Ձախ կողմում դասընթացն ավարտած ուսանողներն են, աջում՝ «քնածները»

Այս երեք եզրերը ցույց են տալիս աշակերտի հաջողության և բջջային հավելվածի օգտագործման միջև կապը: Մենք ակնկալում էինք տեսնել, որ դասընթացն ավարտած ուսանողներն ավելի ամուր կապ կունենան հավելվածի հետ, քան քնած ուսանողները: Սակայն իրականում մենք ստացել ենք ճիշտ հակառակ արդյունքները.

  • մենք համոզվեցինք, որ օգտատերերի տարբեր խմբեր տարբեր կերպ են փոխազդում բջջային հավելվածի հետ.
  • հաջողակ ուսանողները քիչ ինտենսիվ են օգտագործում բջջային հավելվածը.
  • քնած ուսանողներն ավելի ակտիվ են օգտվում բջջային հավելվածից։

Սա նշանակում է, որ քնած ուսանողները սկսում են ավելի ու ավելի շատ ժամանակ անցկացնել բջջային հավելվածում և, ի վերջո, ընդմիշտ մնալ դրա մեջ։

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Սկզբում մենք զարմացանք, բայց այդ մասին մտածելուց հետո հասկացանք, որ սա միանգամայն բնական էֆեկտ է։ Ժամանակին ես ինքնուրույն սովորում էի ֆրանսերեն՝ օգտագործելով երկու գործիք՝ բջջային հավելված և քերականության դասախոսություններ YouTube-ում: Սկզբում ես նրանց միջև ժամանակը բաժանեցի 50-ից 50 հարաբերակցությամբ: Բայց հավելվածն ավելի զվարճալի է, կա գեյմիֆիկացում, ամեն ինչ պարզ է, արագ և պարզ, բայց դասախոսության մեջ պետք է խորանալ դրա մեջ, ինչ-որ բան գրել: , պրակտիկա նոթատետրում։ Աստիճանաբար ես սկսեցի ավելի շատ ժամանակ տրամադրել իմ սմարթֆոնին, մինչև որ դրա մասնաբաժինը հասավ 100%-ի. եթե դրա վրա ծախսում ես երեք ժամ, ապա ստեղծում ես ավարտված աշխատանքի կեղծ զգացողություն, որի պատճառով ցանկություն չես ունենում գնալ և որևէ բան լսել: .

Բայց ինչպես կարող է դա լինել: Ի վերջո, մենք հատուկ ստեղծել ենք բջջային հավելված, դրա մեջ կառուցված է Էբբինգհաուսի կորը, խաղավորեց, գրավիչ դարձրեց, որ մարդիկ ժամանակ անցկացնեն դրա մեջ, բայց պարզվում է, որ դա միայն շեղում է նրանց ուշադրությունը։ Փաստորեն, պատճառն այն է, որ բջջային հավելվածների թիմը չափազանց լավ է հաղթահարել իր առաջադրանքները, ինչի արդյունքում այն ​​դարձել է թույն, ինքնաբավ արտադրանք և սկսել է դուրս մնալ մեր էկոհամակարգից։

Հետազոտության արդյունքում պարզ դարձավ, որ բջջային հավելվածը պետք է ինչ-որ կերպ փոխել, որպեսզի այն ավելի քիչ շեղեր ուսման հիմնական դասընթացից։ Եվ և՛ երեխաներ, և՛ մեծահասակներ: Այս աշխատանքները ներկայումս ընթացքի մեջ են։

Երկրորդ դեպքը՝ ներբեռնման սխալներ

Ներգրավումը կամընտիր լրացուցիչ ընթացակարգ է նոր ուսանող գրանցելիս՝ ապագայում վերացնելով հնարավոր տեխնիկական խնդիրները: Հիմնական սցենարը ենթադրում է, որ անձը գրանցվել է վայրէջքի էջում, մուտք է գործել իր անձնական հաշիվ, կապվել է նրա հետ և տրվել ներածական դաս: Միևնույն ժամանակ, ներածական դասի ընթացքում մենք նշում ենք տեխնիկական դժվարությունների մեծ տոկոս. բրաուզերի սխալ տարբերակը, խոսափողը կամ ձայնը չի աշխատում, ուսուցիչը չի կարող անմիջապես լուծում առաջարկել, և այս ամենը հատկապես դժվար է, երբ խոսքը վերաբերում է. երեխաներին։ Հետևաբար, ձեր անձնական հաշվում մենք մշակել ենք լրացուցիչ հավելված, որտեղ կարող եք կատարել չորս պարզ քայլ՝ ստուգեք ձեր բրաուզերը, տեսախցիկը, խոսափողը և հաստատեք, որ ծնողները մոտակայքում կլինեն ներածական դասի ժամանակ (ի վերջո, նրանք են վճարում։ իրենց երեխաների կրթությունը):

Ներառման այս մի քանի էջերը ցույց տվեցին այսպիսի ձագար.

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով
1. մեկնարկային բլոկ երեք փոքր-ինչ տարբեր (կախված հաճախորդից) մուտքի և գաղտնաբառի մուտքագրման ձևերով:
2. վանդակ՝ համաձայնելով լրացուցիչ ներբեռնման ընթացակարգին:
2.1-2.3. Ստուգեք ծնողի ներկայությունը, Chrome-ի տարբերակը և ձայնը:
3: վերջնական բլոկ:

Շատ բնական է թվում՝ առաջին երկու քայլերում այցելուների մեծ մասը հեռանում է՝ հասկանալով, որ լրացնելու, ստուգելու բան կա, բայց ժամանակ չկա։ Եթե ​​հաճախորդը հասել է երրորդ քայլին, ապա նա գրեթե անկասկած դուրս կգա եզրափակիչ։ Ձագարի վրա որևէ բան կասկածելու ոչ մի պատճառ չկա:

Այնուամենայնիվ, մենք որոշեցինք վերլուծել մեր ներբեռնումը ոչ թե դասական միաչափ ձագարի վրա, այլ օգտագործելով Մարկովյան շղթա: Մենք մի փոքր ավելի շատ իրադարձություններ միացրեցինք, գործարկեցինք սցենարը և ստացանք սա.

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Այս քաոսի մեջ միայն մի բան կարելի է հստակ հասկանալ՝ ինչ-որ բան սխալ է տեղի ունեցել։ Ներբեռնման գործընթացը գծային է, սա բնորոշ է դիզայնին, դրանում չպետք է լինի կապերի նման ցանց: Եվ այստեղ անմիջապես պարզ է դառնում, որ օգտատերը նետվում է քայլերի միջև, որոնց միջև ընդհանրապես անցումներ չպետք է լինեն։

Ինչպես ենք մենք օգտագործում Մարկովի շղթաները լուծումները գնահատելու և սխալներ գտնելու համար: Python սկրիպտով

Այս տարօրինակ պատկերի համար կարող է լինել երկու պատճառ.

  • ծանծաղուտները սողոսկել են տեղեկամատյանների տվյալների բազա;
  • Բուն արտադրանքի մեջ կան սխալներ՝ ներբեռնում:

Առաջին պատճառը, ամենայն հավանականությամբ, ճիշտ է, բայց դրա փորձարկումը բավականին աշխատատար է, և տեղեկամատյանների ուղղումը չի օգնի բարելավելու UX-ը: Բայց երկրորդի հետ, եթե կա, պետք էր շտապ մի բան անել։ Հետևաբար, մենք գնացինք նայելու հանգույցները, բացահայտել այն եզրերը, որոնք չպետք է գոյություն ունենան և փնտրենք դրանց առաջացման պատճառները: Տեսանք, որ օգտատերերի մի մասը խրվել ու շրջանաձև քայլել է, մյուսները մեջտեղից ընկել են սկզբում, իսկ մյուսները, սկզբունքորեն, չեն կարողացել դուրս գալ առաջին երկու քայլերից։ Տվյալները փոխանցեցինք QA-ին, և այո, պարզվեց, որ բավականաչափ սխալներ կան onboarding-ում. սա այնպիսի կողմնակի արտադրանք է, մի փոքր հենակ, այն բավական խորը փորձարկված չէր, քանի որ... Մենք խնդիրներ չէինք սպասում. Այժմ ձայնագրման ողջ գործընթացը փոխվել է։

Այս պատմությունը մեզ ցույց տվեց Մարկովյան շղթաների անսպասելի կիրառումը QA ոլորտում:

Փորձեք ինքներդ:

Ես տեղադրել եմ իմը Մարկովյան շղթաներ վարժեցնելու համար Python սցենար հանրային տիրույթում - օգտագործեք այն ձեր առողջության համար: Փաստաթղթեր GitHub-ում, հարցեր կարելի է տալ այստեղ, ես կփորձեմ պատասխանել ամեն ինչին:

Դե, օգտակար հղումներ. NetworkX գրադարան, Graphviz վիզուալիզատոր. Եվ ահա Հաբրեի մասին հոդված կա Մարկովի շղթաների մասին. Հոդվածի գրաֆիկները կազմված են՝ օգտագործելով Գեֆի.

Source: www.habr.com

Добавить комментарий