{"id":39546,"date":"2019-10-31T22:35:27","date_gmt":"2019-10-31T19:35:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\/"},"modified":"2019-10-31T22:35:27","modified_gmt":"2019-10-31T19:35:27","slug":"kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","title":{"rendered":"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meile on oluline m\u00f5ista, mis meie tudengitega \u00f5ppeprotsessi jooksul juhtub ja kuidas need s\u00fcndmused tulemust m\u00f5jutavad, seet\u00f5ttu loome Customer Journey Map'i \u2014 kliendikogemuse kaardi. \u00d5ppeprotsess ei ole midagi pidevat ja \u00fchtekuuluvat, see on seotud omavaheliste s\u00fcndmuste ja tudengi tegevustega, mille erip\u00e4rad v\u00f5ivad erinevates \u00f5pilastes oluliselt varieeruda. Ta l\u00e4bis tunni: mida ta teeb edasi? T\u00f5useb kodut\u00f6\u00f6d tegema? K\u00e4ivitab mobiilirakenduse? Muudab kursust, palub \u00f5petajat vahetada? Asub otse j\u00e4rgmist tundi? V\u00f5i t\u00f5esti lahkub pettunult? Kas selle kaardi anal\u00fc\u00fcsimise kaudu on v\u00f5imalik tuvastada mustreid, mis viivad kursuse edukalt l\u00f5petamiseni v\u00f5i vastupidi, tudengi \u201elahkumiseni\u201c?<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/3eaee2e858273669b4490f6ceb65d281.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTavaliselt kasutatakse CJM-i \u00fclesehitamiseks spetsialiseeritud, v\u00e4ga kalliseid suletud koodiga t\u00f6\u00f6riistu. Kuid soovisime v\u00e4lja m\u00f5elda midagi lihtsat, mis n\u00f5uaks minimaalset pingutust ja oleks v\u00f5imalusel avatud l\u00e4htekoodiga. Nii tekkis idee kasutada Markovi ahelaid - ja meil \u00f5nnestus see. Oleme koostanud kaardi, t\u00f5lgendanud \u00fcli\u00f5pilaste k\u00e4itumisandmeid graafina, n\u00e4inud t\u00e4iesti ilmselgeid vastuseid globaalsele \u00e4ri k\u00fcsimustele ja isegi leidnud s\u00fcgavale varjatud vigu. K\u00f5ike seda tegime avatud l\u00e4htekoodi lahenduste Python-skripti abil. Selles artiklis r\u00e4\u00e4gin kahest juhtumist, kus saavutati need mitte-ilmsed tulemused, ja jagan skripti k\u00f5igiga, kes soovivad.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNii n\u00e4itavad Markovi ahelad \u00fcleminekute t\u00f5en\u00e4osust s\u00fcndmuste vahel. Siin on primitiivne n\u00e4ide Vikipeediast:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/978e18169ba4c7b2b71787536e4bb219.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin on \u00abE\u00bb ja \u00abA\u00bb - s\u00fcndmused, noolikesed - \u00fcleminekud nende vahel (sealhulgas \u00fcleminek s\u00fcndmusest endasse) ja noolte kaalud - \u00fclemineku t\u00f5en\u00e4osus (\u00abkaalutud suunatud graaf\u00bb).<\/p>\n<h2>Mida kasutati<\/h2>\n<p>\nJ\u00f5u v\u00f5rgu kontseptsioon \u00f5ppis Python'i tavaliste funktsioonide abil, millele anti \u00fcli\u00f5pilaste aktiivsuse logid. Graaf sellel saadud maatriksil ehitati kasutades NetworkX'i teeki.<\/p>\n<p>Logi n\u00e4eb v\u00e4lja selline:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/bc75077802cd7eeb00ebe4a56bc61050.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on csv-fail, mis sisaldab kolme veergu: \u00fcli\u00f5pilase ID, s\u00fcndmuse nimetus ja aeg, mil see toimus. Need kolm v\u00e4lja on piisavad, et j\u00e4lgida kliendi liikumisi, koostada kaardi ja l\u00f5puks saada Markovi ahel.<\/p>\n<p>Teek tagastab genereeritud graafid .dot v\u00f5i .gexf formaadis. Esimeste visuaalsuseks saab kasutada tasuta paketti Graphviz (t\u00f6\u00f6riist gvedit), meie t\u00f6\u00f6tasime .gexf ja Gephi'ga, mis on samuti tasuta.<\/p>\n<p>Edasi tahan tuua kaks n\u00e4idet Markovi ahelate kasutamisest, mis v\u00f5imaldasid meil uue pilguga vaadata meie eesm\u00e4rke, \u00f5ppimisprotsesse ja Skyengi \u00f6kos\u00fcsteemi. Ja ka m\u00f5ningate vigade parandamine.<\/p>\n<h2>Esimene juhtum: mobiilirakendus<\/h2>\n<p>\nAlguses uurisime \u00fcli\u00f5pilase teekonda meie k\u00f5ige populaarsemas tootes \u2014 General kursuses. Sel ajal t\u00f6\u00f6tasin Skyengi lasteosakonnas ja soovisime n\u00e4ha, kui t\u00f5husalt mobiilirakendus meie laste sihtr\u00fchmas toimib.<\/p>\n<p>Logid kokku kogudes ja neid skripti kaudu k\u00e4ies sain midagi sellist:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ws\/ru\/de\/wsrudeufw3pzwrrxtxtn1pjeqvu.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/f2533ddfae7d5f85d0e86902b9b7005f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Algusm\u00e4rk on Start General, all on kolm v\u00e4ljundnode: \u00f5pilane \"magas \u00e4ra\", vahetas kursust, l\u00f5petas kursuse.<\/p>\n<ul>\n<li>\"Magas \u00e4ra\" - see t\u00e4hendab, et ta ei osale enam tundides, t\u00f5en\u00e4oliselt on ta kadunud. Me optimistlikult nimetame seda seisundit \"magas \u00e4ra\", kuna teoorias on tal veel v\u00f5imalus \u00f5ppimist j\u00e4tkata. Meie jaoks halvim tulemus.<\/li>\n<li>Vahetas kursust - l\u00e4ks Generalilt \u00fcle millelegi muule ja kadus meie Markovi ahelast.<\/li>\n<li>\"L\u00f5petas kursuse\" - ideaalne seisund, inimene on l\u00e4binud 80% \u00f5ppetundidest (k\u00f5ik \u00f5ppetunnid ei ole kohustuslikud).<\/li>\n<\/ul>\n<p>\nJ\u00f5udmine noodi successful class t\u00e4hendab, et \u00f5pilane on edukalt l\u00e4binud \u00f5ppetunni meie platvormil koos \u00f5petajaga. See fikseerib edusammud kursusel ja l\u00e4henemise soovitud tulemusele - \"L\u00f5petas kursuse\". Meie jaoks on oluline, et \u00f5pilased osaleksid v\u00f5imalikult palju.<\/p>\n<p>Kuna saime mobiilirakenduse (noda app session) jaoks t\u00e4psemaid kvantitatiivseid j\u00e4reldusi, koostasime iga l\u00f5ppmoodulite jaoks eraldi ahelad ja v\u00f5rreldes siis paarikaupa servade kaalu:<\/p>\n<ul>\n<li>app sessionist tagasi sinna;<\/li>\n<li>app sessionist successful classi;<\/li>\n<li>successful classist app sessionisse.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/iw\/mz\/yq\/iwmzyqmlmbkgzmjqa7qhxwd7shq.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/fc68ca73b379f57a38b53f0c31e75cb1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Vasakul \u2014 kursuse l\u00f5petanud tudengid, paremal \u2014 \u00abmagavad\u00bb<\/i><\/p>\n<p>Need kolm ribasid n\u00e4itavad seost tudengi edusammude ja mobiilirakenduse kasutamise vahel. Ootasime n\u00e4ha, et kursuse l\u00f5petanute seos rakendusega on tugevam kui \u00abmagajate\u00bb seas. Kuid tegelikult saime vastupidised tulemused:<\/p>\n<ul>\n<li>oleme veendunud, et erinevad kasutajagruppid suhtlevad mobiilirakendusega erinevalt;<\/li>\n<li>edukad tudengid kasutavad mobiilirakendust v\u00e4hem intensiivselt;<\/li>\n<li>magavad tudengid kasutavad mobiilirakendust aktiivsemalt.<\/li>\n<\/ul>\n<p>\nSee t\u00e4hendab, et \u00abmagavad\u00bb tudengid hakkavad veetma \u00fcha rohkem aega mobiilirakenduses ja l\u00f5puks j\u00e4\u00e4vad nad sinna igaveseks.<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/45c17a908e2178edd99e340f34657cad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlguses olime \u00fcllatunud, kuid m\u00f5eldes m\u00f5istsime, et see on t\u00e4iesti loogiline m\u00f5ju. Aegade jooksul \u00f5ppisin ma iseseisvalt prantsuse keelt, kasutades kahte t\u00f6\u00f6riista: mobiilirakendust ja grammatika loenguid YouTube'is. Alguses jagasin aega nende kahe vahel 50-50, kuid rakendus oli l\u00f5busam, seal oli m\u00e4ngustamine, k\u00f5ik oli lihtne, kiire ja arusaadav, samas kui loengutes tuli s\u00fcveneda, midagi \u00fcles kirjutada ja harjutada vihikus. Aja jooksul hakkasin ma rohkem aega veetma nutitelefonis, kuni selle osa kasvas 100%-ni: kui veeta seal kolm tundi, tekib vale tunne tehtud t\u00f6\u00f6 kohta, mille t\u00f5ttu pole mingit soovi minna ja midagi kuulata.<\/p>\n<p>Aga kuidas see v\u00f5imalik on? Me ju spetsiaalselt l\u00f5ime mobiilirakenduse, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/312126\/\">kaasasime sellesse Ebbinghaus 'i k\u00f5verat,<\/a><\/noindex>, m\u00e4ngustasime selle, tegime sellest atraktiivse, et inimesed veedaksid seal aega, aga selgub, et see lihtsalt h\u00e4irib neid? Tegelikult on p\u00f5hjus selles, et mobiilirakenduse meeskond tegi oma \u00fclesandeid liiga h\u00e4sti, mille tulemuseks oli, et see muutus \u00e4gedaks iseseisvaks tooteks ja hakkas meie \u00f6kos\u00fcsteemist v\u00e4lja kukkuma.<\/p>\n<p>Uuringu tulemusena j\u00f5uti arusaamale, et mobiilirakendust tuleb teatud viisil muuta, et see v\u00e4hem h\u00e4iriks p\u00f5hijoonest \u00f5ppimist. See kehtib nii laste kui ka t\u00e4iskasvanute jaoks. Praegu k\u00e4ivitatakse seda t\u00f6\u00f6d.<\/p>\n<h2>Teine juhtum: onboardimise vead<\/h2>\n<p>\nOnboardimine on valikuline t\u00e4iendav protseduur uue \u00f5pilase registreerimisel, mis aitab v\u00e4ltida v\u00f5imalikke tehnilisi probleeme tulevikus. P\u00f5histsenaarium t\u00e4hendab, et inimene on registreerunud maandumislehel, saanud juurdep\u00e4\u00e4su isiklikule kontole, temaga v\u00f5etakse \u00fchendust ja korraldatakse sissejuhatav tund. Sellega seoses oleme m\u00e4rganud suurt protsenti tehnilistest raskustest sissejuhatava tunni ajal: vale brauseri versioon, mikrofoni v\u00f5i heli probleemid, \u00f5petaja ei suuda kohe lahendust pakkuda, ja see on k\u00f5ik eriti keeruline, kui tegemist on lastes. Seet\u00f5ttu oleme arendanud t\u00e4iendava rakenduse isiklikus kontos, kus saab l\u00e4bi viia neli lihtsat sammu: kontrollida brauserit, kaamerat, mikrofoni ja kinnitada, et vanemad on sissejuhatava tunni ajal l\u00e4hedal (sest just nemad maksavad laste \u00f5ppimise eest).<\/p>\n<p>Need paar lehte onboardimist demonstreerisid sellist m\u00fc\u00fcgivihikut:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/l5\/pt\/aj\/l5ptajlgx6msydvswctke1w505w.jpeg\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/5e949640d4d4f8a70dc4fd677e3c93a7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>1: alustav plokk, kus on kolm veidi erinevat (s\u00f5ltuvalt kliendist) sisselogimise ja parooli vormi.<br \/>\n2: n\u00f5usoleku m\u00e4rkeruut t\u00e4iendava onboardingu protseduuri jaoks.<br \/>\n2.1-2.3: vanema, Chrome'i versiooni ja heli kontrollimine.<br \/>\n3: l\u00f5petav plokk.<\/i><\/p>\n<p>See n\u00e4eb v\u00e4ga loomulik v\u00e4lja: esimesel kahel sammul sulab suurem osa k\u00fclastajatest kokku, m\u00f5istes, et siin on vaja midagi t\u00e4ita ja kontrollida, aga aeg on piiratud. Kui klient j\u00f5uab kolmandasse sammu, siis on ta peaaegu kindlasti l\u00f5puni j\u00f5udmas. Voolikus ei ole \u00fchtegi p\u00f5hjust midagi kahtlustada.<\/p>\n<p>Otsustasime siiski anal\u00fc\u00fcsida meie onboardimist mitte klassikalise \u00fchem\u00f5\u00f5tmelise vooliku kaudu, vaid Markovi ahela abil. Lisame veidi rohkem s\u00fcndmusi, k\u00e4ivitame skripti ja saame sellise tulemuse:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pi\/e6\/9p\/pie69p-4rmwaqdqqunigm3oz8am.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/44c094cb0be013beac00c0af5a3801be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Selles kaoses on selgelt aru saada ainult \u00fchte: midagi on valesti. Onboarding-protsess on lineaarne, see on disainiga sisse ehitatud, seal ei tohiks olla sellist \u00fchenduste v\u00f5rku. Siin on kohe n\u00e4ha, et kasutajat visatakse sammude vahel edasi-tagasi, mille vahel ei peaks olema \u00fcleminekuid.<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade otsimisel. Pythonis skripti abil\" src=\"\/wp-content\/uploads\/2019\/10\/f43fcabaa7b773c17741b4eaa927b600.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSellise kummalise pildi p\u00f5hjuseid v\u00f5ib olla kaks:<\/p>\n<ul>\n<li>vead on sattunud logide andmebaasi;<\/li>\n<li>tootedel on vigu \u2014 onboardimisprotsessis.<\/li>\n<\/ul>\n<p>\nEsimene p\u00f5hjus on t\u00f5en\u00e4oliselt olemas, kuid selle kontrollimine on piisavalt t\u00f6\u00f6mahukas ja logide parandamine ei aita kasutajakogemust parandada. Teise, kui see on olemas, puhul pidi midagi kiirelt ette v\u00f5tma. Seega l\u00e4ksime s\u00f5lmede uurimisele, et tuvastada servade olemasolu, mida ei peaks olema, ja uurida nende ilmumise p\u00f5hjuseid. N\u00e4gime, et m\u00f5ned kasutajad j\u00e4id loopidesse kinni, teised langesid algusse keskel, kolmandad aga ei suutnud mingil juhul esimestest kahest sammust v\u00e4lja p\u00e4\u00e4seda. Edastasime andmed QA-le \u2014 ja jah, selgus, et onboardimisprotsessis oli laias laastus vigu: see on selline k\u00f5rvaline, pisut ajutine toode, mida ei testitud piisavalt s\u00fcgavalt, kuna probleeme ei oodatud. Praegu on kogu salvestusprotsess muutunud.<\/p>\n<p>See lugu n\u00e4itas meile Markovi ahelate ootamatut kasutamist QA valdkonnas.<\/p>\n<h3>Proovige ise!<\/h3>\n<p>\nOlen avaldanud oma <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/BartolomeuD\/markov-chain\">Python-skripti Markovi ahelate \u00f5ppimiseks<\/a><\/noindex> avatud juurdep\u00e4\u00e4suga \u2014 kasutage julgelt. Dokumentatsioon on GitHubis, k\u00fcsimusi v\u00f5ib esitada siin, p\u00fc\u00fcan k\u00f5igile vastata.<\/p>\n<p>Ja m\u00f5ned kasulikud lingid: <noindex><a rel=\"nofollow\" href=\"https:\/\/networkx.github.io\/\">NetworkX raamatukogu<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.graphviz.org\/\">Graphviz visualiseerija<\/a><\/noindex>. Siin on <noindex><a rel=\"nofollow\" href=\"http:\/\/habr.com\/ru\/post\/455762\">Habr's artikkel<\/a><\/noindex> Markovi ahelitest. Artikli graafid on loodud kasutades <noindex><a rel=\"nofollow\" href=\"https:\/\/gephi.org\/\">Gephi<\/a><\/noindex>.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/473124\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u043d\u0435\u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0438 \u0446\u0435\u043b\u044c\u043d\u043e\u0435, \u044d\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u0442 \u043e\u043d [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39547,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u043d\u0435\u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0438 \u0446\u0435\u043b\u044c\u043d\u043e\u0435, \u044d\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u0442 \u043e\u043d\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0435\u043f\u0438 \u041c\u0430\u0440\u043a\u043e\u0432\u0430 \u0432 \u043e\u0446\u0435\u043d\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u0431\u0430\u0433\u043e\u0432. \u0421\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043d\u0430 Python | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u043d\u0435\u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0438 \u0446\u0435\u043b\u044c\u043d\u043e\u0435, \u044d\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u0442 \u043e\u043d\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:35:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:35:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kuidas me kasutame Markovi ahelate meetodit lahendite hindamisel ja vigade otsimisel. Python skripti abil | ProHoster","description":"J\u00f5uame arusaamale, mis toimub meie \u00fcli\u00f5pilastega \u00f5ppimise k\u00e4igus ja kuidas need s\u00fcndmused m\u00f5jutavad tulemusi, seet\u00f5ttu koostame klienditeekonna kaardi. \u00d5ppimisprotsess ei ole midagi pidevat ja \u00fchtset, vaid see on seeria omavahel seotud s\u00fcndmusi ja \u00f5pilaste tegevusi, mis v\u00f5ivad oluliselt erineda erinevate \u00f5pilaste seas. Siin on","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0435\u043f\u0438 \u041c\u0430\u0440\u043a\u043e\u0432\u0430 \u0432 \u043e\u0446\u0435\u043d\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u0431\u0430\u0433\u043e\u0432. \u0421\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043d\u0430 Python | ProHoster","og:description":"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u043d\u0435\u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0438 \u0446\u0435\u043b\u044c\u043d\u043e\u0435, \u044d\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u0442 \u043e\u043d","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:35:27+00:00","article:modified_time":"2019-10-31T19:35:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39546","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 02:13:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:16:25","updated":"2026-01-24 02:13:24"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=39546"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/39547"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=39546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=39546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=39546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}