{"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\/sq\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","title":{"rendered":"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Na \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kuptojm\u00eb se \u00e7far\u00eb ndodh me student\u00ebt tan\u00eb gjat\u00eb m\u00ebsimit dhe si k\u00ebto ngjarje ndikojn\u00eb n\u00eb rezultat, prandaj ne krijojm\u00eb Customer Journey Map \u2014 hart\u00ebn e p\u00ebrvoj\u00ebs s\u00eb klientit. Sepse procesi i m\u00ebsimit nuk \u00ebsht\u00eb nj\u00eb di\u00e7ka e vazhdueshme dhe e t\u00ebr\u00eb, \u00ebsht\u00eb nj\u00eb zinxhir ngjarjesh dhe veprimesh t\u00eb lidhura me studentin, ku k\u00ebto veprime mund t\u00eb duken shum\u00eb t\u00eb ndryshme p\u00ebr nx\u00ebn\u00ebs t\u00eb ndrysh\u00ebm. Ai kaloi nj\u00eb m\u00ebsim: \u00e7far\u00eb do t\u00eb b\u00ebj\u00eb m\u00eb pas? Do t\u00eb filloj\u00eb detyr\u00ebn e sht\u00ebpis\u00eb? Do t\u00eb nis\u00eb aplikacionin celular? Do t\u00eb ndryshoj\u00eb kursin, do t\u00eb k\u00ebrkoj\u00eb t\u00eb ndryshoj\u00eb m\u00ebsuesin? Do t\u00eb hyj\u00eb menj\u00ebher\u00eb n\u00eb m\u00ebsimin tjet\u00ebr? Apo do t\u00eb largohet i zhg\u00ebnjyer? A \u00ebsht\u00eb e mundur t\u00eb identifikojm\u00eb, duke analizuar k\u00ebt\u00eb hart\u00eb, rregulla q\u00eb \u00e7ojn\u00eb n\u00eb p\u00ebrfundimin e suksessh\u00ebm t\u00eb kursit apo nga ana tjet\u00ebr, \u201elargimin\u201c e studentit?<\/p>\n<p><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/3eaee2e858273669b4490f6ceb65d281.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZakonisht p\u00ebr nd\u00ebrtimin e CJM p\u00ebrdoren mjete t\u00eb specializuara, shpeshher\u00eb shum\u00eb t\u00eb shtrenjta me kod t\u00eb mbyllur. Por ne doja t\u00eb shpikim di\u00e7ka t\u00eb thjesht\u00eb, q\u00eb t\u00eb k\u00ebrkonte p\u00ebrpjekje minimale dhe t\u00eb ishte sa m\u00eb shum\u00eb open-source. K\u00ebshtu nd\u00ebrtojm\u00eb iden\u00eb p\u00ebr t\u00eb p\u00ebrdorur zinxhir\u00ebt Markov \u2014 dhe ia dol\u00ebm. Krijuam nj\u00eb hart\u00eb, interpretuam t\u00eb dh\u00ebnat mbi sjelljen e student\u00ebve n\u00eb form\u00ebn e nj\u00eb grafiku, dhe pam\u00eb p\u00ebrgjigje krejt t\u00eb papritura p\u00ebr pyetje globale t\u00eb biznesit dhe madje gjet\u00ebm defekte t\u00eb thella t\u00eb fshehura. T\u00eb gjitha k\u00ebto i b\u00ebm\u00eb me ndihm\u00ebn e zgjidhjeve open-source t\u00eb skenar\u00ebve Python. N\u00eb k\u00ebt\u00eb artikull do t\u00eb flas p\u00ebr dy raste me k\u00ebto rezultate krejt t\u00eb papritura dhe do t\u00eb ndaj skenarin me t\u00eb gjith\u00eb ata q\u00eb jan\u00eb t\u00eb interesuar.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nK\u00ebshtu, zinxhir\u00ebt Markov tregojn\u00eb probabilitetin e kalimeve midis ngjarjeve. Ja nj\u00eb shembull primitiv nga Wikipedia:<\/p>\n<p><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/978e18169ba4c7b2b71787536e4bb219.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00ebtu \"E\" dhe \"A\" jan\u00eb ngjarje, shigjetat jan\u00eb kalimet midis tyre (p\u00ebrfshir\u00eb kalimin nga nj\u00eb ngjarje n\u00eb vetvete), dhe peshat e shigjetave jan\u00eb probabiliteti i kalimit (\"grafik i orientuar me pesha\").<\/p>\n<h2>\u00c7far\u00eb p\u00ebrdor\u00ebm<\/h2>\n<p>\nZinxhiri u st\u00ebrvit me funksionalitetin standard t\u00eb Python, t\u00eb cilit iu dhan\u00eb loget e aktivitetit t\u00eb student\u00ebve. Grafiku n\u00eb matric\u00ebn e marr\u00eb u nd\u00ebrtua me bibliotek\u00ebn NetworkX.<\/p>\n<p>Logu duket k\u00ebshtu:<\/p>\n<p><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/bc75077802cd7eeb00ebe4a56bc61050.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKy \u00ebsht\u00eb nj\u00eb skedar csv q\u00eb p\u00ebrmban nj\u00eb tabel\u00eb me tre kolona: id e studentit, emri i ngjarjes, koha kur ndodhi ajo. K\u00ebto tri fusha jan\u00eb t\u00eb mjaftueshme p\u00ebr t\u00eb ndjekur l\u00ebvizjet e klientit, p\u00ebr t\u00eb nd\u00ebrtuar hart\u00ebn dhe n\u00eb fund p\u00ebr t\u00eb marr\u00eb zinxhirin Markov.<\/p>\n<p>Biblioteka kthen grafet e nd\u00ebrtuara n\u00eb formatin .dot ose .gexf. P\u00ebr vizualizimin e t\u00eb par\u00ebve mund t\u00eb p\u00ebrdorim paket\u00ebn falas Graphviz (instrumenti gvedit), ne kemi punuar me .gexf dhe Gephi, gjithashtu falas.<\/p>\n<p>Tani do t\u00eb sjell dy shembuj t\u00eb p\u00ebrdorimit t\u00eb zinxhir\u00ebve Markov, t\u00eb cilat na ndihmuan t\u00eb shohim ndryshe q\u00ebllimet tona, proceset e t\u00eb m\u00ebsuarit dhe vet\u00eb ekosistemin Skyeng. Po ashtu, rregulluam disa gabime.<\/p>\n<h2>Shembulli i par\u00eb: aplikacioni mobil<\/h2>\n<p>\nFillimisht, ne hulumtuam rrug\u00ebn e studentit n\u00eb produktin ton\u00eb m\u00eb t\u00eb njohur \u2014 kursin General. N\u00eb at\u00eb koh\u00eb un\u00eb punoja n\u00eb departamentin e f\u00ebmij\u00ebve t\u00eb Skyeng dhe d\u00ebshironim t\u00eb shihnim sa efektivisht funksionon aplikacioni mobil me audienc\u00ebn ton\u00eb f\u00ebminore.<\/p>\n<p>Merrni logjet dhe kaloni ato p\u00ebrmes skriptit, kam marr\u00eb di\u00e7ka t\u00eb till\u00eb:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ws\/ru\/de\/wsrudeufw3pzwrrxtxtn1pjeqvu.png\"><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/f2533ddfae7d5f85d0e86902b9b7005f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Nod\u00ebn fillestare \u2014 Start General, dhe m\u00eb posht\u00eb tre nodet e daljes: studenti \u00abka fjetur\u00bb, ndryshoi kursin, p\u00ebrfundoi kursin.<\/p>\n<ul>\n<li>Ka fjetur, \u00abZasnul\u00bb \u2014 do t\u00eb thot\u00eb, nuk kalon m\u00eb m\u00ebsime, me shum\u00eb se ka r\u00ebn\u00eb. Ne e quajm\u00eb optimist k\u00ebt\u00eb gjendje \u00abka fjetur\u00bb, pasi teorikisht ka ende mund\u00ebsin\u00eb t\u00eb vazhdoj\u00eb m\u00ebsimin. Rezultati m\u00eb i keq p\u00ebr ne.<\/li>\n<li>Ndryshoi kursin, kaloi nga General n\u00eb di\u00e7ka tjet\u00ebr dhe u humb nga zinxhiri yn\u00eb i Markov.<\/li>\n<li>P\u00ebrfundoi kursin \u2014 gjendja ideale, personi ka kaluar 80% t\u00eb m\u00ebsimeve (jo t\u00eb gjitha m\u00ebsimet jan\u00eb t\u00eb obligueshme).<\/li>\n<\/ul>\n<p>\nT\u00eb ecuri n\u00eb nod\u00ebn successful class do t\u00eb thot\u00eb t\u00eb kalosh me sukses m\u00ebsimin n\u00eb platform\u00ebn ton\u00eb s\u00eb bashku me m\u00ebsuesin. Kjo regjistron avancimin n\u00eb kurs dhe afrim ndaj rezultatit t\u00eb d\u00ebshiruar \u2014 \u00abP\u00ebrfundoi kursin\u00bb. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme p\u00ebr ne q\u00eb student\u00ebt ta vizitojn\u00eb sa m\u00eb shum\u00eb.<\/p>\n<p>P\u00ebr t\u00eb marr\u00eb konkluzione m\u00eb t\u00eb sakta sasiore p\u00ebr aplikacionin mobil (noda app session), ne nd\u00ebrtuam zinxhir\u00eb t\u00eb ve\u00e7ant\u00eb p\u00ebr \u00e7do nod t\u00eb fundit dhe pastaj krahasuam peshat e skelave n\u00eb \u00e7ifte:<\/p>\n<ul>\n<li>nga app session mbrapsht n\u00eb t\u00eb nj\u00ebjt\u00ebn;<\/li>\n<li>nga app session n\u00eb successful class;<\/li>\n<li>nga successful class n\u00eb app session.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/iw\/mz\/yq\/iwmzyqmlmbkgzmjqa7qhxwd7shq.png\"><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/fc68ca73b379f57a38b53f0c31e75cb1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Majtas \u2014 student\u00ebt q\u00eb p\u00ebrfunduan kursin, djathtas \u2014 \u00abkan\u00eb fjetur\u00bb<\/i><\/p>\n<p>K\u00ebto tri skela tregojn\u00eb lidhjen midis suksesit t\u00eb studentit dhe p\u00ebrdorimit t\u00eb aplikacionit mobil. Ne prisnim t\u00eb shihnim se lidhja p\u00ebr student\u00ebt q\u00eb p\u00ebrfunduan kursin do t\u00eb ishte m\u00eb e fort\u00eb sesa p\u00ebr ata q\u00eb \u00abkan\u00eb fjetur\u00bb. Megjithat\u00eb, n\u00eb realitet mor\u00ebm pik\u00ebrisht rezultate t\u00eb kund\u00ebrta:<\/p>\n<ul>\n<li>ne u sigurua se grupet e ndryshme t\u00eb p\u00ebrdoruesve nd\u00ebrveprojn\u00eb ndryshe me aplikacionin mobil;<\/li>\n<li>student\u00ebt e suksessh\u00ebm p\u00ebrdorin m\u00eb pak intensivisht aplikacionin mobil;<\/li>\n<li>student\u00ebt q\u00eb bien n\u00eb gjum\u00eb e p\u00ebrdorin m\u00eb aktivisht aplikacionin mobil.<\/li>\n<\/ul>\n<p>\nKjo do t\u00eb thot\u00eb se student\u00ebt \"q\u00eb bien n\u00eb gjum\u00eb\" fillojn\u00eb t\u00eb kalojn\u00eb gjithnj\u00eb e m\u00eb shum\u00eb koh\u00eb n\u00eb aplikacionin mobil dhe n\u00eb fund mbesin aty p\u00ebrher\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/45c17a908e2178edd99e340f34657cad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nFillimisht u befasuam, por duke menduar e kuptuam se ishte nj\u00eb efekt mjaft logjik. N\u00eb koh\u00ebn time, un\u00eb m\u00ebsoja fr\u00ebngjishten vet\u00eb duke p\u00ebrdorur dy mjete: aplikacionin mobil dhe leksionet mbi gramatik\u00ebn n\u00eb YouTube. Nga fillimi, un\u00eb e ndaja koh\u00ebn midis tyre n\u00eb nj\u00eb raport 50 me 50. Por aplikacioni \u00ebsht\u00eb m\u00eb arg\u00ebtues, ka gamifikim, \u00ebsht\u00eb i thjesht\u00eb, i shpejt\u00eb dhe i kuptuesh\u00ebm, nd\u00ebrsa n\u00eb leksionet duhet t\u00eb p\u00ebrqendrohesh, t\u00eb shkruash di\u00e7ka dhe t\u00eb praktikosh n\u00eb fletore. Gradualisht, fillova t\u00eb kaloj m\u00eb shum\u00eb koh\u00eb n\u00eb smartphone, derisa pjesa e tij u rrit n\u00eb 100%: n\u00ebse kaloj tri or\u00eb atje, krijohet nj\u00eb ndjesi e rreme e p\u00ebrfundimit t\u00eb pun\u00ebs, p\u00ebr shkak t\u00eb s\u00eb cil\u00ebs nuk ndihem aspak i motivuar t\u00eb shkoj dhe t\u00eb d\u00ebgjoj di\u00e7ka.<\/p>\n<p>Por si \u00ebsht\u00eb e mundur? Sepse ne e krijuam ve\u00e7an\u00ebrisht aplikacionin mobil, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/312126\/\">e inkorporuam kurb\u00ebn e Ebbinghaus<\/a><\/noindex>, e gamifikuam, e b\u00ebm\u00eb t\u00ebrheq\u00ebse, q\u00eb njer\u00ebzit t\u00eb gjithashtu kalonin koh\u00eb aty, dhe rezulton se ai vet\u00ebm i shp\u00ebrqendron? N\u00eb t\u00eb v\u00ebrtet\u00eb, arsyeja \u00ebsht\u00eb se ekipi i aplikacionit mobil e p\u00ebrfundoi detyr\u00ebn e tij kaq mir\u00eb, saq\u00eb u b\u00eb nj\u00eb produkt fantastik dhe filloi t\u00eb dal\u00eb jasht\u00eb ekosistemit ton\u00eb.<\/p>\n<p>Si rezultat i hulumtimit, kuptuam se aplikacioni mobil duhet ndonj\u00ebher\u00eb t\u00eb ndryshohet, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb mos shpenzoj\u00eb shum\u00eb koh\u00eb nga kursi kryesor i m\u00ebsimit. Kjo p\u00ebrfshin si f\u00ebmij\u00ebt ashtu edhe t\u00eb rriturit. Tani, ky punim \u00ebsht\u00eb n\u00eb zhvillim.<\/p>\n<h2>Rasti i dyt\u00eb: gabimet e onboarding<\/h2>\n<p>\nOnboarding \u00ebsht\u00eb nj\u00eb procedur\u00eb jo e detyrueshme suplementare gjat\u00eb regjistrimit t\u00eb nj\u00eb nx\u00ebn\u00ebsi t\u00eb ri, e cila do t\u00eb shmang\u00eb probleme t\u00eb mundshme teknike n\u00eb t\u00eb ardhmen. Skenari baz\u00eb n\u00ebnkupton se individi ka marr\u00eb nj\u00eb regjistrim n\u00eb landin, ka marr\u00eb qasje n\u00eb llogarin\u00eb personale, e kontaktojn\u00eb dhe i b\u00ebjn\u00eb nj\u00eb m\u00ebsim hyr\u00ebs. Gjat\u00eb k\u00ebtij procesi, ne v\u00ebrejm\u00eb nj\u00eb p\u00ebrqindje t\u00eb lart\u00eb t\u00eb v\u00ebshtir\u00ebsive teknike gjat\u00eb m\u00ebsimit hyr\u00ebs: versioni i gabuar t\u00eb shfletuesit, mikrofoni ose z\u00ebri nuk funksionon, m\u00ebsuesi nuk mund t'i jap\u00eb menj\u00ebher\u00eb nj\u00eb zgjidhje, dhe gjith\u00e7ka \u00ebsht\u00eb ve\u00e7an\u00ebrisht e komplikuar kur b\u00ebhet fjal\u00eb p\u00ebr f\u00ebmij\u00eb. Prandaj ne zhvilluam nj\u00eb aplikacion t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb llogarin\u00eb personale, ku mund t\u00eb p\u00ebrfundoni kat\u00ebr hapa t\u00eb thjesht\u00eb: t\u00eb kontrolloni shfletuesin, kamer\u00ebn, mikrofonin dhe t\u00eb konfirmoni se prind\u00ebrit do t\u00eb jen\u00eb pran\u00eb gjat\u00eb m\u00ebsimit hyr\u00ebs (sepse ata jan\u00eb ata q\u00eb paguajn\u00eb p\u00ebr arsimimin e f\u00ebmij\u00ebve).<\/p>\n<p>K\u00ebto disa faqe onboarding demonstruan nj\u00eb funnel t\u00eb till\u00eb:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/l5\/pt\/aj\/l5ptajlgx6msydvswctke1w505w.jpeg\"><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/5e949640d4d4f8a70dc4fd677e3c93a7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>1: blloku fillestar me tre forma t\u00eb ndryshme (sip\u00ebr faqes) p\u00ebr t\u00eb futur emrin dhe fjal\u00ebkalimin.<br \/>\n2: nj\u00eb shenj\u00eb p\u00eblqimi p\u00ebr procedur\u00ebn shtes\u00eb t\u00eb onboarding.<br \/>\n2.1-2.3: kontrollimi i pranis\u00eb s\u00eb prindit, versionit t\u00eb Chrome dhe z\u00ebrit.<br \/>\n3: blloku p\u00ebrfundimtar.<\/i><\/p>\n<p>Ajo duket shum\u00eb natyrshme: n\u00eb dy hapat e par\u00eb, shumica e vizitor\u00ebve shkurtohen, duke kuptuar se k\u00ebtu duhen plot\u00ebsuar disa gj\u00ebra, t\u00eb kontrollohet di\u00e7ka dhe nuk ka koh\u00eb p\u00ebr k\u00ebt\u00eb. N\u00ebse klienti arrin n\u00eb hapat e tret\u00eb \u2014 ai do t\u00eb vijoj\u00eb gati me siguri deri n\u00eb p\u00ebrfundim. N\u00eb funnel nuk duket asnj\u00eb arsye p\u00ebr t\u00eb dyshuar ndonj\u00eb gj\u00eb.<\/p>\n<p>Megjithat\u00eb, ne vendos\u00ebm ta analizojm\u00eb onboarding-un ton\u00eb jo n\u00eb nj\u00eb funnel klasik nj\u00eb-dimensional, por me an\u00eb t\u00eb zinxhirit Markov. P\u00ebrcaktuam pak m\u00eb shum\u00eb ngjarje, e startuam skenarin dhe mor\u00ebm k\u00ebt\u00eb rezultat:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pi\/e6\/9p\/pie69p-4rmwaqdqqunigm3oz8am.png\"><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/44c094cb0be013beac00c0af5a3801be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>E vetmja gj\u00eb q\u00eb mund t\u00eb kuptohet n\u00eb k\u00ebt\u00eb kaos \u00ebsht\u00eb se di\u00e7ka ka shkuar keq. Procesi i onboarding-ut \u00ebsht\u00eb linear, kjo \u00ebsht\u00eb e injektuar n\u00eb dizajn, nuk duhet t\u00eb ket\u00eb nj\u00eb zgjidhje njohurish. Dhe k\u00ebtu \u00ebsht\u00eb e qart\u00eb se p\u00ebrdoruesi hidhet mes hapave, midis t\u00eb cil\u00ebve nuk duhet t\u00eb ket\u00eb kalime.<\/p>\n<p><img decoding=\"async\" alt=\"Si p\u00ebrdorim zinxhir\u00ebt Markov n\u00eb vler\u00ebsimin e vendimeve dhe k\u00ebrkimin e gabimeve. Me skript n\u00eb Python\" src=\"\/wp-content\/uploads\/2019\/10\/f43fcabaa7b773c17741b4eaa927b600.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShkaktar\u00ebt e k\u00ebsaj pamjeje t\u00eb \u00e7uditshme mund t\u00eb jen\u00eb dy:<\/p>\n<ul>\n<li>gabime t\u00eb futur n\u00eb baz\u00ebn e logjeve;<\/li>\n<li>gabime ekzistojn\u00eb n\u00eb produktin vet\u00eb \u2014 onboarding.<\/li>\n<\/ul>\n<p>\nArsyeja e par\u00eb, me sa duket, ekziston, por kontrollimi i saj \u00ebsht\u00eb mjaft pun\u00eb intensive, dhe korrigjimi i log\u00ebve nuk ndihmon fare p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar UX. Nd\u00ebrsa p\u00ebr arsye t\u00eb dyt\u00eb, n\u00ebse ekziston, duhej b\u00ebr\u00eb di\u00e7ka urgjente. Prandaj, ne shkuam p\u00ebr t\u00eb shqyrtuar nyjet, p\u00ebr t\u00eb zbuluar brinj\u00ebt q\u00eb nuk duhet t\u00eb ishin, dhe p\u00ebr t\u00eb k\u00ebrkuar arsyet e shfaqjes s\u00eb tyre. V\u00ebm\u00eb re se disa p\u00ebrdorues po ngelen n\u00eb cik\u00ebl dhe shkonin n\u00eb rreth, t\u00eb tjer\u00eb dalin nga mes n\u00eb fillim, nd\u00ebrsa t\u00eb tret\u00ebt n\u00eb principe nuk mund t\u00eb dilnin nga dy hapat e par\u00eb. I dham\u00eb t\u00eb dh\u00ebnat QA - dhe po, doli se onboarding kishte shum\u00eb bugs: ky \u00ebsht\u00eb nj\u00eb produkt an\u00ebsor, disi i dob\u00ebt, nuk ishte testuar mjaft thell\u00eb, pasi nuk pritej asnj\u00eb problem. Tani, q\u00eb t\u00eb gjith\u00eb procesi i regjistrimit \u00ebsht\u00eb ndryshuar.<\/p>\n<p>Kjo histori na tregoi nj\u00eb aplikim t\u00eb papritur t\u00eb zinxhir\u00ebve t\u00eb Markovit n\u00eb fush\u00ebn e QA.<\/p>\n<h3>Provojeni vet\u00eb!<\/h3>\n<p>\nUn\u00eb kam publikuar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/BartolomeuD\/markov-chain\">skriptin tim Python p\u00ebr m\u00ebsimin e zinxhir\u00ebve t\u00eb Markovit<\/a><\/noindex> n\u00eb dispozit\u00eb t\u00eb hapur - p\u00ebrdorni me sh\u00ebndet. Dokumentacioni \u00ebsht\u00eb n\u00eb GitHub, pyetjet mund t\u00eb b\u00ebhen k\u00ebtu, do t\u00eb p\u00ebrpiqem t\u00eb p\u00ebrgjigjem p\u00ebr t\u00eb gjitha.<\/p>\n<p>E po ashtu edhe lidhje t\u00eb dobishme: <noindex><a rel=\"nofollow\" href=\"https:\/\/networkx.github.io\/\">biblioteka NetworkX<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.graphviz.org\/\">vizualizuesi Graphviz<\/a><\/noindex>. Dhe k\u00ebtu <noindex><a rel=\"nofollow\" href=\"http:\/\/habr.com\/ru\/post\/455762\">n\u00eb Habr ka nj\u00eb artikull<\/a><\/noindex> p\u00ebr zinxhir\u00ebt e Markovit. Graf\u00ebt n\u00eb artikull jan\u00eb b\u00ebr\u00eb me <noindex><a rel=\"nofollow\" href=\"https:\/\/gephi.org\/\">Gephi<\/a><\/noindex>.<br \/>\n<br \/>Burimi: <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-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - 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.\" \/>\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\/sq\/blog\/news\/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) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/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\udd47Si i p\u00ebrdorim zinxhir\u00ebt e Markovit n\u00eb vler\u00ebsimin e zgjidhjeve dhe n\u00eb gjetjen e bugs. Me skriptin n\u00eb Python | ProHoster","description":"Na intereson t\u00eb kuptojm\u00eb se \u00e7far\u00eb po ndodh me student\u00ebt tan\u00eb gjat\u00eb m\u00ebsimit dhe si k\u00ebto ngjarje ndikon n\u00eb rezultat, prandaj ne nd\u00ebrtojm\u00eb Hart\u00ebn e Udh\u00ebtimit t\u00eb Klientit - hart\u00eb e p\u00ebrvoj\u00ebs s\u00eb klientit.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/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":"sq_AL","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.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/39546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=39546"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/39546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/39547"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=39546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=39546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=39546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}