Für uns ist es wichtig zu verstehen, was mit unseren Schülern während des Trainings passiert und wie sich diese Ereignisse auf das Ergebnis auswirken. Deshalb erstellen wir eine Customer Journey Map - eine Karte der Kundenerfahrung. Schließlich ist der Lernprozess nicht kontinuierlich und ganzheitlich, sondern eine Kette miteinander verbundener Ereignisse und Schüleraktionen, und diese Aktionen können bei verschiedenen Schülern sehr unterschiedlich sein. Also hat er eine Lektion bestanden: Was wird er als nächstes tun? Zu den Hausaufgaben gehen? Eine mobile App starten? Kurs ändern, Lehrer wechseln? In die nächste Lektion gehen? Oder einfach enttäuscht gehen? Ist es möglich, durch Analyse dieser Karte Muster zu identifizieren, die zum erfolgreichen Abschluss des Kurses führen, oder umgekehrt, das „Roll-off“ des Studenten?

Normalerweise werden spezielle, sehr teure Closed-Source-Tools zum Erstellen von CJMs verwendet. Aber wir wollten uns etwas Einfaches einfallen lassen, das nur minimalen Aufwand und möglicherweise Open Source erfordert. So kam die Idee, Markov-Ketten zu verwenden - und es gelang uns. Wir haben eine Karte erstellt, die Verhaltensdaten der Schüler als Grafik interpretiert, völlig offensichtliche Antworten auf globale Geschäftsfragen gesehen und sogar tief verborgene Fehler gefunden. Wir haben dies alles mit Hilfe von Open-Source-Python-Skriptlösungen getan. In diesem Artikel werde ich über zwei Fälle mit den sehr nicht offensichtlichen Ergebnissen sprechen und das Skript mit allen teilen.
Markov-Ketten zeigen also die Wahrscheinlichkeit von Übergängen zwischen Ereignissen. Hier ist ein primitives Wikipedia-Beispiel:

Hier sind "E" und "A" Ereignisse, Pfeile sind Übergänge zwischen ihnen (einschließlich des Übergangs von einem Ereignis zu diesem) und Pfeilgewichte sind die Wahrscheinlichkeit des Übergangs ("gewichteter orientierter Graph").
Was verwendet
Die Kette wurde mit der Standard-Python-Funktionalität trainiert, die von Schüleraktivitätsprotokollen gespeist wurde. Das Diagramm in der resultierenden Matrix wurde von der NetworkX-Bibliothek erstellt.
Das Protokoll sieht folgendermaßen aus:

Dies ist eine CSV-Datei, die eine Tabelle mit drei Spalten enthält: Schüler-ID, Ereignisname, Zeitpunkt, zu dem dies passiert ist. Diese drei Felder reichen aus, um die Bewegungen des Kunden zu verfolgen, eine Karte zu erstellen und schließlich eine Markov-Kette zu erhalten.
Die Bibliothek gibt die erstellten Diagramme im DOT- oder GEXF-Format zurück. Um das erstere zu visualisieren, können Sie das kostenlose Graphviz-Paket (gvedit-Tool) verwenden, wir haben mit .gexf und Gephi gearbeitet, ebenfalls kostenlos.
Als nächstes möchte ich zwei Beispiele für die Verwendung von Markov-Ketten nennen, die es uns ermöglichten, unsere Ziele, Bildungsprozesse und das Skyeng-Ökosystem selbst neu zu betrachten. Beheben Sie Fehler.
Erster Fall: Mobile App
Zunächst haben wir den Weg des Schülers durch unser beliebtestes Produkt, General, erkundet. In diesem Moment arbeitete ich in der Skyeng-Kinderabteilung und wir wollten sehen, wie effizient die mobile Anwendung mit dem Publikum unserer Kinder zusammenarbeitet.
Ich nahm die Protokolle und führte sie durch das Skript. Ich bekam so etwas:

Der Startknoten ist Start Allgemein, und unten sind drei Ausgabeknoten aufgeführt: Der Schüler ist „eingeschlafen“, hat den Kurs geändert und den Kurs abgeschlossen.
- Eingeschlafen, „eingeschlafen“ - das bedeutet, dass der Unterricht nicht mehr stattfindet, höchstwahrscheinlich ist er abgefallen. Wir nennen diesen Zustand optimistisch „schlafend“, weil Theoretisch hat er immer noch die Möglichkeit, sein Studium fortzusetzen. Das schlechteste Ergebnis für uns.
- General fallen gelassen, Kurs geändert - von General zu etwas anderem gewechselt und für unsere Markov-Kette verloren gegangen.
- Abgeschlossener Kurs, ich habe den Kurs abgeschlossen - perfekter Zustand, die Person hat 80% der Lektionen abgeschlossen (nicht alle Lektionen sind erforderlich).
Um in den erfolgreichen Klassenknoten zu gelangen, müssen Sie die Lektion auf unserer Plattform mit dem Lehrer erfolgreich abschließen. Es erfasst den Fortschritt des Kurses und die Annäherung an das gewünschte Ergebnis - "Den Kurs beendet". Für uns ist es wichtig, dass die Schüler so oft wie möglich daran teilnehmen.
Um genauere quantitative Schlussfolgerungen für eine mobile Anwendung (App-Sitzungsknoten) zu erhalten, haben wir für jeden der Endknoten separate Ketten erstellt und dann das Gewicht der Kanten paarweise verglichen:
- von der App-Sitzung zurück;
- von der App-Sitzung bis zum erfolgreichen Unterricht;
- von der erfolgreichen Klasse zur App-Sitzung.
Links - Studenten, die den Kurs abgeschlossen haben, rechts - „schlafend“Diese drei Rippen zeigen die Beziehung zwischen dem Erfolg der Schüler und der Verwendung einer mobilen Anwendung. Wir haben erwartet, dass Studenten, die den Kurs abgeschlossen haben, eine stärkere Verbindung zur Bewerbung haben als diejenigen, die „eingeschlafen“ sind. Tatsächlich erhielten sie jedoch genau das Gegenteil:
- Wir haben sichergestellt, dass verschiedene Benutzergruppen unterschiedlich mit der mobilen Anwendung interagieren.
- erfolgreiche Studenten nutzen die mobile Anwendung weniger intensiv;
- Einschlafende Schüler nutzen die mobile Anwendung aktiver.
Dies bedeutet, dass Schüler, die „einschlafen“, immer mehr Zeit in einer mobilen Anwendung verbringen und am Ende für immer dort bleiben.

Zuerst waren wir überrascht, aber als wir nachdachten, stellten wir fest, dass dies ein völlig natürlicher Effekt ist. Zu einer Zeit habe ich unabhängig voneinander Französisch mit zwei Tools gelernt: einer mobilen Anwendung und Vorlesungen über Grammatik auf YouTube. Zuerst habe ich die Zeit zwischen ihnen in einem Verhältnis von 50 zu 50 aufgeteilt. Aber die Anwendung macht mehr Spaß, es gibt Gamification, alles ist einfach, schnell und verständlich, aber Sie müssen in die Vorlesung eintauchen, etwas schreiben, in einem Notizbuch üben. Allmählich verbrachte ich mehr Zeit mit dem Smartphone, bis sein Anteil auf 100% anstieg: Wenn es drei Stunden lang hängt, entsteht ein falsches Gefühl für die geleistete Arbeit, weshalb es keinen Wunsch gibt, etwas anzuhören.
Aber wie so? Immerhin haben wir speziell eine mobile Anwendung erstellt,
die in die Ebbinghaus-Kurve integriert ist , sie gamifiziert und attraktiv gemacht, damit die Leute Zeit damit verbringen, aber es stellt sich heraus, dass sie sie nur ablenkt? Der Grund dafür ist, dass das Team für mobile Anwendungen seine Aufgaben zu gut erledigt hat, wodurch es zu einem coolen autarken Produkt wurde und aus unserem Ökosystem herauszufallen begann.
Als Ergebnis der Studie wurde klar, dass die mobile Anwendung irgendwie geändert werden muss, damit sie weniger vom Hauptstudiengang abhängt. Darüber hinaus sowohl Kinder als auch Erwachsene. Jetzt ist diese Arbeit im Gange.
Fall zwei: Onboarding Bugs
Onboarding ist ein optionales zusätzliches Verfahren bei der Registrierung eines neuen Studenten, um potenzielle technische Probleme in Zukunft zu beseitigen. Das grundlegende Szenario impliziert, dass eine auf der Zielseite registrierte Person Zugriff auf ihr persönliches Konto hat, sich mit ihm in Verbindung setzt und eine Einführungsstunde durchführt. Gleichzeitig stellen wir während der Einführungsstunde einen großen Prozentsatz technischer Schwierigkeiten fest: Die falsche Browserversion, das Mikrofon oder der Ton funktionieren nicht, der Lehrer kann nicht sofort eine Lösung vorschlagen, und all dies ist besonders schwierig, wenn es um Kinder geht. Aus diesem Grund haben wir in Ihrem persönlichen Konto eine zusätzliche Anwendung entwickelt, mit der Sie vier einfache Schritte ausführen können: Überprüfen Sie Ihren Browser, Ihre Kamera und Ihr Mikrofon und bestätigen Sie, dass die Eltern während der Einführungsstunde anwesend sind (schließlich zahlen sie für die Ausbildung der Kinder).
Diese wenigen Onboarding-Seiten zeigten diesen Trichter:
1: Startblock mit drei leicht unterschiedlichen (je nach Client) Anmelde- / Passworteingabeformularen.
2: Dohle stimmt einem zusätzlichen Verfahren für das Onboarding zu.
2.1-2.3: Überprüfen der Anwesenheit des übergeordneten Elements, der Chrome-Version und des Sounds.
3: letzter Block.Es sieht sehr natürlich aus: In den ersten beiden Schritten verschmelzen die meisten Besucher und stellen fest, dass es etwas zu füllen, zu überprüfen, aber keine Zeit gibt. Wenn der Kunde den dritten Schritt erreicht hat, wird er mit ziemlicher Sicherheit das Finale erreichen. Auf dem Trichter ist kein einziger Grund erkennbar, etwas zu vermuten.
Trotzdem haben wir uns entschlossen, unser Onboarding nicht am klassischen eindimensionalen Trichter, sondern mit der Markov-Kette zu analysieren. Wir haben ein bisschen mehr Events aktiviert, das Skript ausgeführt und Folgendes erhalten:

Es gibt nur eine Sache, die in diesem Chaos klar verstanden werden kann: etwas ist schief gelaufen. Der Onboarding-Prozess ist linear, er ist dem Design inhärent und sollte kein solches Netzwerk von Verbindungen aufweisen. Und hier können Sie sofort sehen, dass der Benutzer zwischen Schritten wirft, zwischen denen es überhaupt keine Übergänge geben sollte.

Es kann zwei Gründe für solch ein seltsames Bild geben:
- die Pfosten krochen in den Baumstamm;
- Schwärme sind im Produkt selbst vorhanden - Onboarding.
Der erste Grund tritt höchstwahrscheinlich auf, aber das Überprüfen ist ziemlich zeitaufwändig, und das Korrigieren der Protokolle hilft nicht, die Benutzeroberfläche zu verbessern. Aber mit dem zweiten, wenn es einen gibt, war es dringend notwendig, etwas zu tun. Deshalb haben wir die Knoten untersucht, die Kanten identifiziert, die nicht sein sollten, und nach den Ursachen für ihr Auftreten gesucht. Wir haben gesehen, dass einige Benutzer in Zyklen gingen und im Kreis gingen, andere von der Mitte bis zum Anfang herausfielen und der dritte im Prinzip nicht aus den ersten beiden Schritten herauskommen konnte. Die Daten wurden an die Qualitätssicherung übertragen - und ja, es stellte sich heraus, dass es beim Onboarding genügend Fehler gab: Dies ist ein solches Nebenprodukt, ein bisschen wie ein Krückenprodukt, es wurde nicht gründlich getestet, weil habe keine Probleme erwartet. Jetzt hat sich der gesamte Aufnahmevorgang geändert.
Diese Geschichte zeigte uns die unerwartete Anwendung von Markov-Ketten im Bereich der Qualitätssicherung.
Probieren Sie es selbst aus!
Ich habe mein
Python-Skript zum Erlernen von Markov-Ketten öffentlich zugänglich gemacht - verwenden Sie es für die Gesundheit. Dokumentation auf GitHub, Fragen können hier gestellt werden, ich werde versuchen alles zu beantworten.
Gute und nützliche Links:
NetworkX-Bibliothek ,
Graphviz Visualizer . Und hier
auf Habré gibt es einen Artikel über Markov-Ketten. Die Grafiken im Artikel werden mit
Gephi erstellt .