Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Penting pikeun urang ngartos naon anu lumangsung ka murid urang salami latihan sareng kumaha kajadian ieu mangaruhan hasilna, janten urang ngawangun Peta Perjalanan Pelanggan - peta pangalaman palanggan. Barina ogé, prosés diajar téh lain hal anu terus-terusan sarta integral, éta mangrupa ranté tina acara interconnected jeung tindakan siswa, sarta lampah ieu bisa greatly rupa-rupa diantara siswa béda. Ayeuna anjeunna parantos réngsé pelajaran: naon anu bakal anjeunna laksanakeun salajengna? Naha éta badé angkat ka PR? Naha éta bakal ngaluncurkeun aplikasi sélulér? Naha anjeunna bakal ngarobih kursus, naroskeun pikeun ngarobih guru? Naha anjeun badé langsung kana pelajaran salajengna? Atawa bakal anjeunna ngan ninggalkeun kuciwa? Naha mungkin, ku nganalisa peta ieu, pikeun ngaidentipikasi pola-pola anu nyababkeun parantosan suksés tina kursus atanapi, sabalikna, ka "dropout" murid?

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Biasana, khusus, alat sumber tertutup anu mahal pisan dianggo pikeun ngawangun CJM. Tapi urang hayang datang nepi ka hal basajan, merlukeun usaha minimal na, upami mungkin, open source. Janten ideu muncul pikeun nganggo ranté Markov - sareng kami suksés. Urang ngawangun peta, napsirkeun data ngeunaan paripolah murid dina bentuk grafik, ningali jawaban anu teu jelas pikeun masalah bisnis global, bahkan mendakan bug anu disumputkeun. Urang ngalakukeun sadayana ieu nganggo solusi skrip Python open source. Dina tulisan ieu kuring bakal ngobrol ngeunaan dua kasus kalayan hasil anu teu jelas sareng ngabagi naskah ka sadayana.

Janten, ranté Markov nunjukkeun kamungkinan transisi antara kajadian. Ieu conto primitif ti Wikipedia:

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Di dieu "E" jeung "A" mangrupakeun acara, panah mangrupakeun transisi antara aranjeunna (kaasup transisi tina hiji acara ka sarua), sarta beurat panah mangrupakeun kamungkinan transisi ("weighted diarahkeun grafik").

Naon anu anjeun pake?

Sirkuit ieu dilatih kalawan fungsionalitas Python baku, nu ieu fed kalawan log aktivitas murid. Grafik dina matriks anu dihasilkeun diwangun ku perpustakaan NetworkX.

Logna sapertos kieu:

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Ieu mangrupikeun file csv anu ngandung méja tilu kolom: id murid, nami acara, waktos éta lumangsung. Tilu widang ieu cukup pikeun ngalacak gerakan klien, ngawangun peta sareng pamustunganana kéngingkeun ranté Markov.

Perpustakaan mulihkeun grafik anu diwangun dina format .dot atanapi .gexf. Pikeun visualize urut, anjeun tiasa nganggo bebas pakét Graphviz (alat gvedit), kami digarap kalawan .gexf na Gephi, oge bebas .

Salajengna Abdi hoyong masihan dua conto ngagunakeun ranté Markov, nu diwenangkeun urang nyandak katingal anyar dina tujuan urang, prosés atikan, sarta ékosistem Skyeng sorangan. Muhun, ngalereskeun bug.

Kasus kahiji: aplikasi mobile

Pikeun mimitian, urang ngajalajah perjalanan murid ngalangkungan produk anu paling populér urang — kursus Umum. Dina waktos éta, kuring damel di departemén barudak Skyeng sareng urang hoyong ningali kumaha efektifna aplikasi mobile damel sareng pamiarsa barudak urang.

Nyandak log sareng ngajalankeunana ngaliwatan naskah, kuring ngagaduhan sapertos kieu:

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Titik awal nyaéta Mimitian Umum, sareng di handap aya tilu titik kaluaran: murid "saré," ngarobih kursus, sareng réngsé kursus.

  • Saré, "Saré" - ieu hartosna anjeunna henteu deui nyandak kelas, paling dipikaresep anjeunna murag. Kami optimis nyauran kaayaan ieu "saré", sabab ... dina tiori, anjeunna masih boga kasempetan pikeun nuluykeun studi na. Hasil awon pikeun urang.
  • Diturunkeun umum, Ngarobih kursus - gentos tina Umum ka anu sanés sareng leungit pikeun ranté Markov kami.
  • Réngsé tangtu, Réngsé tangtu - kaayaan idéal, jalma geus réngsé 80% tina palajaran (teu sakabeh palajaran diperlukeun).

Lebet kana titik kelas anu suksés hartosna suksés ngarengsekeun pelajaran dina platform kami sareng guru. Éta ngarékam kamajuan sapanjang kursus sareng pendekatan kana hasil anu dipikahoyong - "réngsé kursus." Kadé urang murid hadir saloba mungkin.

Pikeun kéngingkeun kacindekan kuantitatif anu langkung akurat pikeun aplikasi sélulér (titik sési aplikasi), kami ngawangun ranté anu misah pikeun tiap titik ahir teras ngabandingkeun beurat ujungna sapasang:

  • ti sési aplikasi deui ka dinya;
  • ti sési aplikasi ka kelas suksés;
  • ti kelas suksés ka sési aplikasi.

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python
Di kénca aya murid anu réngsé kursus, di katuhu aya anu "saré"

Tilu sisi ieu nunjukkeun hubungan antara kasuksésan murid sareng panggunaan aplikasi mobile. Kami ngarepkeun yén murid anu réngsé kursus bakal gaduh sambungan anu langkung kuat pikeun aplikasina tibatan murid anu saré. Nanging, kanyataanna urang ngagaduhan hasil anu sabalikna:

  • kami mastikeun yén grup béda pamaké berinteraksi sareng aplikasi mobile béda;
  • siswa suksés ngagunakeun aplikasi mobile kirang intensif;
  • siswa anu saré leuwih aktip ngagunakeun aplikasi mobile.

Ieu ngandung harti yén siswa anu saré mimiti méakkeun beuki loba waktu dina aplikasi mobile na, tungtungna, tetep di dinya salawasna.

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Awalna kami kaget, tapi saatos mikir ngeunaan éta, kami sadar yén ieu mangrupikeun pangaruh anu alami. Dina hiji waktos, abdi diajar basa Perancis nyalira nganggo dua alat: aplikasi seluler sareng ceramah grammar di YouTube. Mimitina, kuring ngabagi waktos antara aranjeunna dina nisbah 50 dugi ka 50. Tapi aplikasina langkung pikaresepeun, aya gamification, sadayana saderhana, gancang sareng jelas, tapi dina ceramah anjeun kedah ngalenyepan éta, nyerat hiji hal. , latihan dina buku catetan. Saeutik demi saeutik, kuring mimiti nyéépkeun langkung seueur waktos dina smartphone kuring, dugi ka pangsa na naék kana 100%: upami anjeun ngagantung dina tilu jam, anjeun nyiptakeun perasaan palsu ngeunaan padamelan anu parantos réngsé, ku sabab éta anjeun henteu hoyong angkat sareng ngadangukeun. nanaon.

Tapi kumaha ieu tiasa? Barina ogé, kami khusus nyiptakeun aplikasi mobile, diwangun kana éta kurva Ebbinghaus, gamified eta, dijieun pikaresepeun ambéh jalma bakal méakkeun waktu di dinya, tapi tétéla yén éta ngan distracts aranjeunna? Kanyataanna, alesanana nyaéta yén tim aplikasi mobile coped kalawan tugas na teuing ogé, salaku hasil nu eta janten cool, produk swasembada sarta mimiti ragrag kaluar tina ékosistem urang.

Salaku hasil tina panalungtikan, éta janten jelas yén aplikasi mobile kudu dirobah kumaha bae age ambéh maranéhanana bakal kirang distracting tina kursus utama ulikan. Jeung boh barudak boh déwasa. Karya ieu ayeuna dijalankeun.

Kasus kadua: bug onboarding

Onboarding mangrupikeun prosedur tambahan opsional nalika ngadaptar murid anyar, ngaleungitkeun poténsi masalah téknis di hareup. Skenario dasar nganggap yén hiji jalma geus didaptarkeun dina kaca badarat, miboga aksés ka akun pribadi-Na, dikontak tur dibéré palajaran bubuka. Dina waktos anu sami, urang perhatikeun perséntase ageung kasusah téknis salami palajaran bubuka: versi browser anu salah, mikropon atanapi sora henteu tiasa dianggo, guru henteu tiasa langsung nyarankeun solusi, sareng sadayana ieu hususna sesah nalika datang. ka barudak. Ku sabab éta, kami parantos ngembangkeun aplikasi tambahan dina akun pribadi anjeun, dimana anjeun tiasa ngalengkepan opat léngkah saderhana: parios panyungsi anjeun, kaméra, mikropon sareng pastikeun yén kolotna bakal caket nalika palajaran bubuka (sanggeus sadayana, aranjeunna anu mayar. pendidikan anak-anakna).

Sababaraha halaman onboarding ieu nunjukkeun corong sapertos kieu:

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python
1: blok dimimitian ku tilu rada béda (gumantung kana klien nu) formulir login jeung kecap akses.
2: kotak centang satuju kana prosedur onboarding tambahan.
2.1-2.3: Pariksa ayana indungna, Vérsi Chrome jeung sora.
3: blok ahir.

Sigana pisan alam: dina dua hambalan kahiji, lolobana datang ninggalkeun, nyadar yén aya hal pikeun ngeusian kaluar, pariksa, tapi euweuh waktu. Upami klien parantos ngahontal léngkah katilu, maka anjeunna ampir pasti bakal ngahontal final. Henteu aya alesan tunggal pikeun nyangka naon waé dina corong.

Tapi, kami mutuskeun pikeun nganalisis onboarding kami henteu dina corong hiji diménsi klasik, tapi nganggo ranté Markov. Urang hurungkeun sakedik deui acara, ngajalankeun naskah sareng nampi ieu:

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Dina huru-hara ieu, ngan ukur hiji hal anu tiasa kahartos: aya anu salah. Prosés onboarding linier, ieu alamiah dina rarancang, teu kudu aya web sapertos sambungan di dinya. Sareng di dieu langsung écés yén pangguna dialungkeun antara léngkah-léngkah, antara anu kedahna teu aya transisi.

Kumaha kami nganggo ranté Markov dina ngevaluasi solusi sareng mendakan bug. Kalayan skrip Python

Aya dua alesan pikeun gambar aneh ieu:

  • shoals crept kana database log;
  • Aya kasalahan dina produk sorangan - onboarding.

Alesan kahiji anu paling dipikaresep leres, tapi nguji éta cukup kuli-intensif, sarta koréksi log moal mantuan ngaronjatkeun UX. Tapi kalayan anu kadua, upami aya, hal anu kedah dilakukeun sacara gancang. Ku alatan éta, urang indit ka kasampak di titik, ngaidentipikasi edges nu teu kudu aya, jeung néangan alesan pikeun lumangsungna maranéhanana. Urang nempo yén sababaraha pamaké nyangkut jeung leumpang di bunderan, batur murag kaluar ti tengah ka awal, jeung nu lianna, prinsipna mah, teu bisa kaluar tina dua hambalan kahiji. Kami mindahkeun data ka QA - sareng enya, tétéla aya cukup bug dina onboarding: ieu mangrupikeun produk sampingan, sakedik kruk, éta henteu diuji cukup jero, sabab ... Kami henteu nyangka aya masalah. Ayeuna sadayana prosés ngarékam parantos robih.

Carita ieu nunjukkeun ka kami aplikasi anu teu kaduga tina ranté Markov dina widang QA.

Coba éta sorangan!

Kuring dipasang milik Aksara Python pikeun latihan ranté Markov dina domain publik - make eta pikeun kaséhatan Anjeun. Dokuméntasi dina GitHub, patarosan tiasa ditaroskeun di dieu, kuring bakal nyobian ngajawab sadayana.

Nya, tautan anu mangpaat: Perpustakaan NetworkX, Graphviz visualizer. Jeung di dieu aya artikel ngeunaan Habré ngeunaan Markov ranté. Grafik dina artikel dijieun ngagunakeun Gephi.

sumber: www.habr.com

Tambahkeun komentar