{"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\/de\/blog\/novosti-interneta\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","title":{"rendered":"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Es ist uns wichtig zu verstehen, was w\u00e4hrend des Lernens mit unseren Studierenden passiert und wie diese Ereignisse das Ergebnis beeinflussen. Deshalb erstellen wir eine Customer Journey Map \u2014 eine Karte des Kundenerlebnisses. Der Lernprozess ist n\u00e4mlich kein kontinuierlicher und homogener Prozess, sondern eine Kette von miteinander verbundenen Ereignissen und Handlungen der Studierenden, die sich stark zwischen verschiedenen Teilnehmenden unterscheiden k\u00f6nnen. Hat er die Stunde absolviert: Was wird er als N\u00e4chstes tun? Wird er die Hausaufgaben machen? Wird er die mobile App starten? Wird er den Kurs wechseln oder den Lehrer wechseln wollen? Geht er sofort zur n\u00e4chsten Lektion? Oder wird er einfach entt\u00e4uscht gehen? K\u00f6nnen wir, indem wir diese Karte analysieren, Muster erkennen, die zu einem erfolgreichen Abschluss des Kurses f\u00fchren oder im Gegenteil, dazu, dass der Student \u201eausscheidet\u201c?<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/3eaee2e858273669b4490f6ceb65d281.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn der Regel werden f\u00fcr den Aufbau von CJM spezialisierte, sehr kostspielige Tools mit geschlossenem Quellcode verwendet. Wir wollten jedoch etwas Einfaches, das minimalen Aufwand erfordert und m\u00f6glichst Open Source ist. So entstand die Idee, Markow-Ketten zu nutzen \u2013 und das haben wir erfolgreich umgesetzt. Wir haben eine Karte erstellt, die Daten zum Verhalten von Studierenden in Form eines Graphen interpretiert und dabei v\u00f6llig unerwartete Antworten auf globale Gesch\u00e4ftsfragen entdeckt sowie tief versteckte Bugs gefunden. All dies haben wir mithilfe von Open-Source-Python-Skripten realisiert. In diesem Artikel werde ich zwei Fallstudien mit diesen unerwarteten Ergebnissen pr\u00e4sentieren und das Skript mit allen Interessierten teilen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMarkow-Ketten zeigen die Wahrscheinlichkeit von \u00dcberg\u00e4ngen zwischen Ereignissen. Hier ist ein einfaches Beispiel aus Wikipedia:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/978e18169ba4c7b2b71787536e4bb219.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHier sind \u201eE\u201c und \u201eA\u201c Ereignisse, die Pfeile sind \u00dcberg\u00e4nge zwischen ihnen (einschlie\u00dflich des \u00dcbergangs vom Ereignis zu sich selbst), und die Gewichtungen der Pfeile stehen f\u00fcr die \u00dcbergangswahrscheinlichkeit (\u201egewichteter gerichteter Graph\u201c).<\/p>\n<h2>Was haben wir verwendet<\/h2>\n<p>\nDie Kette wurde mit den grundlegenden Funktionen von Python trainiert, w\u00e4hrend die Protokolle der Sch\u00fcleraktivit\u00e4t eingegeben wurden. Der Graph wurde mit der Bibliothek NetworkX auf der erhaltenen Matrix erstellt.<\/p>\n<p>Das Protokoll sieht folgenderma\u00dfen aus:<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/bc75077802cd7eeb00ebe4a56bc61050.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs handelt sich um eine CSV-Datei, die eine Tabelle aus drei Spalten enth\u00e4lt: die ID des Sch\u00fclers, den Namen des Ereignisses und die Uhrzeit, zu der es stattgefunden hat. Diese drei Felder sind ausreichend, um die Bewegungen des Kunden zu verfolgen, eine Karte zu erstellen und letztlich eine Markow-Kette zu erhalten.<\/p>\n<p>Die Bibliothek gibt die erstellten Grafiken im .dot- oder .gexf-Format zur\u00fcck. F\u00fcr die Visualisierung der ersten kann das kostenlose Paket Graphviz (das Tool gvedit) verwendet werden; wir haben mit .gexf und Gephi, ebenfalls kostenlos, gearbeitet.<\/p>\n<p>Im Folgenden m\u00f6chte ich zwei Beispiele f\u00fcr die Verwendung von Markow-Ketten anf\u00fchren, die es uns erm\u00f6glicht haben, unsere Ziele, Lernprozesse und das gesamte \u00d6kosystem von Skyeng aus einer neuen Perspektive zu betrachten und Bugs zu beheben.<\/p>\n<h2>Erster Fall: Mobile Anwendung<\/h2>\n<p>\nZun\u00e4chst untersuchten wir den Weg der Sch\u00fcler durch unser beliebtestes Produkt \u2013 den General-Kurs. Zu diesem Zeitpunkt arbeitete ich in der Kinderabteilung von Skyeng und wir wollten herausfinden, wie effektiv die mobile App bei unserer Kinderzielgruppe funktioniert.<\/p>\n<p>Nachdem ich die Logs genommen und durch das Skript laufen lassen habe, erhielt ich Folgendes:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ws\/ru\/de\/wsrudeufw3pzwrrxtxtn1pjeqvu.png\"><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/f2533ddfae7d5f85d0e86902b9b7005f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Der Startknoten ist \u2013 Start General, und unten gibt es drei Endknoten: der Sch\u00fcler \u201eschlief ein\u201c, wechselte den Kurs, beendete den Kurs.<\/p>\n<ul>\n<li>Fiel asleep, \u201eSchlief ein\u201c \u2013 das bedeutet, dass er keine Kurse mehr besucht, h\u00f6chstwahrscheinlich ist er abgebrochen. Wir nennen diesen Zustand optimistisch \u201eschlief ein\u201c, da er theoretisch die M\u00f6glichkeit hat, das Lernen fortzusetzen. Das schlechteste Ergebnis f\u00fcr uns.<\/li>\n<li>Dropped general, Kurs gewechselt \u2013 vom General zu etwas anderem und aus unserer Markov-Kette verloren.<\/li>\n<li>Finished course, Kurs beendet \u2013 der ideale Zustand, eine Person hat 80% der Lektionen abgeschlossen (nicht alle Lektionen sind verpflichtend).<\/li>\n<\/ul>\n<p>\nDas Erreichen des Knotens successful class bedeutet, dass die Lektion auf unserer Plattform zusammen mit einem Lehrer erfolgreich absolviert wurde. Es zeichnet den Fortschritt im Kurs und das N\u00e4herkommen zum gew\u00fcnschten Ergebnis \u2013 \u201eKurs beendet\u201c \u2013 auf. Es ist wichtig, dass die Sch\u00fcler sie so oft wie m\u00f6glich besuchen.<\/p>\n<p>Um genauere quantitative Schlussfolgerungen f\u00fcr die mobile Anwendung (Node app session) zu erhalten, haben wir separate Ketten f\u00fcr jede der abschlie\u00dfenden Knoten gebaut und dann paarweise die Gewichte der Kanten verglichen:<\/p>\n<ul>\n<li>von app session zur\u00fcck zu ihr selbst;<\/li>\n<li>von app session zu successful class;<\/li>\n<li>von successful class zu 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=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/fc68ca73b379f57a38b53f0c31e75cb1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Links \u2014 Studenten, die den Kurs abgeschlossen haben, rechts \u2014 die \u00bbschlafenden\u00ab.<\/i><\/p>\n<p>Diese drei Elemente zeigen die Verbindung zwischen dem Erfolg der Studenten und ihrer Nutzung der mobilen App. Wir hatten erwartet, dass die Verbindung bei den Absolventen st\u00e4rker ausgepr\u00e4gt ist als bei den \u00bbschlafenden\u00ab. Tats\u00e4chlich erhielten wir jedoch genau gegenteilige Ergebnisse:<\/p>\n<ul>\n<li>Wir haben festgestellt, dass verschiedene Nutzergruppen unterschiedlich mit der mobilen App interagieren;<\/li>\n<li>erfolgreiche Studenten nutzen die mobile App weniger intensiv;<\/li>\n<li>schlafende Studenten nutzen die mobile App aktiver.<\/li>\n<\/ul>\n<p>\nDas bedeutet, dass die \u00bbschlafenden\u00ab Studenten immer mehr Zeit mit der mobilen App verbringen und schlie\u00dflich dauerhaft darin bleiben.<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/45c17a908e2178edd99e340f34657cad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZun\u00e4chst waren wir \u00fcberrascht, doch nach einigem Nachdenken erkannten wir, dass dies ein ganz nat\u00fcrlicher Effekt ist. Ich habe fr\u00fcher selbst Franz\u00f6sisch gelernt, indem ich zwei Werkzeuge verwendet habe: eine mobile App und Grammatikvorlesungen auf YouTube. Zun\u00e4chst habe ich meine Zeit im Verh\u00e4ltnis 50 zu 50 aufgeteilt. Aber die App macht mehr Spa\u00df; dort gibt es Gamification, die Nutzung ist einfach, schnell und klar, w\u00e4hrend man sich bei den Vorlesungen mehr konzentrieren muss, etwas aufschreiben und in einem Heft \u00fcben sollte. Im Laufe der Zeit begann ich, mehr Zeit mit meinem Smartphone zu verbringen, bis sein Anteil auf 100% angewachsen ist: Wenn man drei Stunden damit verbringt, hat man das falsche Gef\u00fchl, etwas geschafft zu haben, was einem die Lust nimmt, etwas zu h\u00f6ren.<\/p>\n<p>Aber wie kann das sein? Schlie\u00dflich haben wir die mobile App absichtlich erstellt, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/312126\/\">die Ebbinghaus-Kurve integriert,<\/a><\/noindex>, gamifiziert, sie ansprechend gestaltet, damit die Menschen Zeit damit verbringen, und jetzt stellt sich heraus, dass sie sie nur ablenkt? Tats\u00e4chlich liegt der Grund darin, dass das Team der mobilen App seine Aufgaben zu gut erf\u00fcllt hat, wodurch sie zu einem tollen, eigenst\u00e4ndigen Produkt geworden ist, das aus unserem \u00d6kosystem herausf\u00e4llt.<\/p>\n<p>Am Ende der Untersuchung wurde klar, dass die mobile Anwendung irgendwie ver\u00e4ndert werden muss, damit sie den Hauptlernprozess weniger st\u00f6rt. Dies gilt sowohl f\u00fcr Kinder als auch f\u00fcr Erwachsene. Derzeit wird an dieser Arbeit gearbeitet.<\/p>\n<h2>Zweiter Fall: Onboarding-Bugs<\/h2>\n<p>\nOnboarding ist ein optionales zus\u00e4tzliches Verfahren bei der Registrierung neuer Sch\u00fcler, das zuk\u00fcnftige potenzielle technische Probleme vermeiden soll. Das Basisszenario sieht vor, dass sich eine Person auf der Landingpage registriert, Zugang zum pers\u00f6nlichen Bereich erh\u00e4lt, kontaktiert wird und eine Einf\u00fchrungseinheit erh\u00e4lt. Dabei stellen wir fest, dass es w\u00e4hrend der Einf\u00fchrungseinheit zu einer hohen Anzahl technischer Schwierigkeiten kommt: falsche Browser-Version, Mikrofon oder Ton funktionieren nicht, der Lehrer kann nicht sofort eine L\u00f6sung vorschlagen, und das alles ist besonders schwierig, wenn es um Kinder geht. Daher haben wir eine zus\u00e4tzliche Anwendung im pers\u00f6nlichen Bereich entwickelt, in der man vier einfache Schritte ausf\u00fchren kann: den Browser, die Kamera und das Mikrofon \u00fcberpr\u00fcfen und best\u00e4tigen, dass die Eltern w\u00e4hrend der Einf\u00fchrungseinheit anwesend sein werden (denn sie sind es, die f\u00fcr die Ausbildung der Kinder zahlen).<\/p>\n<p>Diese einigen Seiten des Onboardings zeigten eine solche Trichterstruktur:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/l5\/pt\/aj\/l5ptajlgx6msydvswctke1w505w.jpeg\"><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/5e949640d4d4f8a70dc4fd677e3c93a7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>1: Ein Einstieg mit drei leicht unterschiedlichen (je nach Kunde) Formularen zur Eingabe von Benutzernamen und Passwort.<br \/>\n2: Zustimmung zur zus\u00e4tzlichen Onboarding-Prozedur.<br \/>\n2.1-2.3: \u00dcberpr\u00fcfung der Anwesenheit eines Elternteils, der Chrome-Version und des Sounds.<br \/>\n3: Der finale Block.<\/i><\/p>\n<p>Es sieht sehr nat\u00fcrlich aus: In den ersten beiden Schritten scheiden die meisten Besucher aus, als sie erkennen, dass sie etwas ausf\u00fcllen und \u00fcberpr\u00fcfen m\u00fcssen, w\u00e4hrend die Zeit knapp ist. Wenn der Kunde bis zum dritten Schritt kommt, ist die Wahrscheinlichkeit hoch, dass er auch bis zum Ende weitergeht. In der Trichterdarstellung gibt es keinen Anhaltspunkt, um etwas zu misstrauen.<\/p>\n<p>Dennoch haben wir uns entschieden, unser Onboarding nicht in einem klassischen eindimensionalen Trichter zu analysieren, sondern mithilfe einer Markov-Kette. Wir haben ein paar mehr Ereignisse einbezogen, ein Skript ausgef\u00fchrt und folgendes erhalten:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pi\/e6\/9p\/pie69p-4rmwaqdqqunigm3oz8am.png\"><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/44c094cb0be013beac00c0af5a3801be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Eindeutig l\u00e4sst sich in diesem Chaos nur eines erkennen: Etwas l\u00e4uft falsch. Der Onboarding-Prozess ist linear, das ist im Design vorgesehen, und es sollte keine derartigen Verkn\u00fcpfungen geben. Hier wird sofort deutlich, dass der Nutzer zwischen den Schritten hin und her geworfen wird, zwischen denen es eigentlich keine \u00dcberg\u00e4nge geben sollte.<\/p>\n<p><img decoding=\"async\" alt=\"Wie wir Markov-Ketten zur Entscheidungsbewertung und Fehlersuche nutzen. Mit Skript in Python\" src=\"\/wp-content\/uploads\/2019\/10\/f43fcabaa7b773c17741b4eaa927b600.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Gr\u00fcnde f\u00fcr dieses merkw\u00fcrdige Bild k\u00f6nnen zwei sein:<\/p>\n<ul>\n<li>Fehler in der Log-Datenbank sind aufgetreten;<\/li>\n<li>Es gibt M\u00e4ngel im Produkt selbst \u2013 im Onboarding.<\/li>\n<\/ul>\n<p>\nDie erste Ursache k\u00f6nnte tats\u00e4chlich vorliegen, aber ihre \u00dcberpr\u00fcfung ist ziemlich aufwendig, und die Korrektur der Protokolle wird das Nutzererlebnis nicht verbessern. Bei der zweiten, sofern vorhanden, musste dringend gehandelt werden. Deshalb haben wir uns auf die Suche nach Knoten gemacht, um \u00fcberfl\u00fcssige Kanten zu identifizieren und die Ursachen ihres Auftretens zu finden. Wir haben festgestellt, dass einige Nutzer in einer Schleife gefangen waren, andere vom Mittelteil zum Anfang zur\u00fcckkamen, w\u00e4hrend dritte im Allgemeinen nicht \u00fcber die ersten beiden Schritte hinaus kamen. Wir haben die Daten an die QA weitergegeben \u2013 und ja, es stellte sich heraus, dass es im Onboarding zahlreiche Bugs gab: Es handelt sich um ein sekund\u00e4res, etwas provisorisches Produkt, das nicht ausreichend gr\u00fcndlich getestet wurde, da keine Probleme erwartet wurden. Der gesamte Aufnahmeprozess wurde inzwischen ge\u00e4ndert.<\/p>\n<p>Diese Geschichte hat uns eine unerwartete Anwendung von Markow-Ketten im QA-Bereich gezeigt.<\/p>\n<h3>Probieren Sie es selbst aus!<\/h3>\n<p>\nIch habe mein <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/BartolomeuD\/markov-chain\">Python-Skript zur Schulung von Markow-Ketten<\/a><\/noindex> \u00f6ffentlich zug\u00e4nglich gemacht \u2013 nutzen Sie es gern. Die Dokumentation ist auf GitHub, Fragen k\u00f6nnen hier gestellt werden, ich werde versuchen, alles zu beantworten.<\/p>\n<p>Und hier einige n\u00fctzliche Links: <noindex><a rel=\"nofollow\" href=\"https:\/\/networkx.github.io\/\">Bibliothek NetworkX<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.graphviz.org\/\">Graphviz-Visualisierer<\/a><\/noindex>. Und hier <noindex><a rel=\"nofollow\" href=\"http:\/\/habr.com\/ru\/post\/455762\">ist ein Artikel auf Habr<\/a><\/noindex> \u00fcber Markov-Ketten. Die Grafiken im Artikel wurden mit Hilfe von <noindex><a rel=\"nofollow\" href=\"https:\/\/gephi.org\/\">Gephi<\/a><\/noindex>.<br \/>\n<br \/>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Wie wir Markov-Ketten zur Bewertung von Entscheidungen und zur Fehlersuche verwenden. Mit einem Python-Skript | ProHoster","description":"Es ist wichtig f\u00fcr uns zu verstehen, was w\u00e4hrend des Lernens mit unseren Studenten passiert und wie diese Ereignisse das Ergebnis beeinflussen. Daher erstellen wir eine Customer Journey Map \u2013 eine Karte des Kundenerlebnisses. Denn der Lernprozess ist kein kontinuierlicher und einheitlicher Ablauf, sondern eine Kette miteinander verbundener Ereignisse und Handlungen der Studenten, wobei diese Handlungen bei verschiedenen Sch\u00fclern stark variieren k\u00f6nnen. Hier ist sie","canonical_url":"https:\/\/prohoster.info\/de\/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":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/39546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=39546"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/39546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/39547"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=39546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=39546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=39546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}