“Akankah kucing itu bertahan hidup di rumah saya? Saya bertanya-tanya sebelum mengambil teman berbulu saya dari penampungan hewan peliharaan. Dan saya memutuskan untuk menguji hipotesis saya menggunakan Process Mining, arahan analisis proses yang relatif baru namun berkembang secara aktif ini. Di antara produk perangkat lunak di bidang ini, ada cukup banyak alternatif, khususnya: Celonis, Disco, ProM, Apramore. Saya memutuskan untuk mencoba perpustakaan bahasa Python - PM4PY (Proses Penambangan untuk Python), versi pertama muncul di GitHublebih dari setahun yang lalu, pada akhir 2018. Keunikannya adalah bahwa ini adalah perangkat lunak gratis, dan tidak memiliki batasan baik dalam hal jumlah file yang diunduh dan jumlah peristiwa yang dipertimbangkan dalam log (log peristiwa). PM4PY juga memiliki dokumentasi ekstensif yang menjelaskan fungsionalitas dasar - contoh kode dan informasi referensi dapat ditemukan di situs resmi - pm4py.org .
Pertama-tama - ... tidak, bukan pesawat terbang, tapi data! PM4PY mendukung berbagai format input. Diantaranya: CSV (dibatasi koma), XES (eXtensible Event Stream), dan Parquet. Yang paling sederhana, baik dalam memahami maupun dalam hal fungsionalitas yang tersedia, adalah format CSV.
Dalam format inilah data pada rutinitas pagi disajikan, digunakan kemudian dalam contoh proses yang dipertimbangkan. Dalam rangkaian acara di pagi hari seperti "bangun", "sarapan", "gosok gigi", dll. langkah baru yang signifikan telah ditambahkan sebagai "beri makan kucing". Contoh ini dibuat secara artifisial dalam tabel MS Excel dan kemudian disimpan ke CSV (jumlah hari simulasi adalah 39, dan jumlah total peristiwa adalah 250). Impor data terjadi dalam dua baris kode. Yang pertama, yang disebut pabrik impor (kelas Python yang sesuai dari pustaka ini) dimuat, dan yang kedua, nama file data diumpankan ke input "pabrik" ini dan ditetapkan ke variabel yang diperlukan.
Log yang dimuat dari luar (dalam satu format atau lainnya) dapat diumpankan ke input "Penambang" - algoritme yang menganalisis log peristiwa yang dimuat ke memori dan mencoba membangun model yang seharusnya dari proses dalam bentuk jaring Petri menggunakan data masukan ini. Contoh algoritma yang tersedia di PM4PY: Alpha, IMDFb, Heuristic. Tetapi, jika Anda ingat, saya tidak tertarik pada grafik teoritis model proses yang ketat secara akademis, tetapi pada pertanyaan praktis murni tentang kelangsungan hidup kucing.
Dan oleh karena itu, kita beralih ke analisis praktis yang jauh lebih menarik dari proses dalam bentuk grafik DFG (Directly-Follows Graph), di mana simpul dari grafik adalah peristiwa log peristiwa yang kita muat, dan tepi terarah menghubungkan pasangan peristiwa yang terjadi satu demi satu setidaknya sekali ... Keuntungan dari tampilan ini adalah tampilan detail dari semua kemungkinan transisi. Sisi negatifnya adalah kekacauan gambar yang berlebihan dengan garis penghubung, yang jumlahnya meningkat tajam dengan peningkatan jumlah tindakan di log dan multivarian dari langkah-langkah aktual yang terjadi dalam proses yang diamati.
Dapat dilihat bahwa proses rutin pagi hari yang sudah sulit dengan penambahan satu langkah tambahan dengan memberi makan hewan peliharaan menjadi lebih sulit. DFG dapat diplot dalam hal frekuensi, mis. berapa banyak transisi dari satu titik ke titik lainnya. Dan Anda dapat membangun dalam konteks efisiensi waktu, memilih sebagai indikator nilai rata-rata waktu antara peristiwa. Anda juga dapat memilih nilai minimum, maksimum atau median sebagai indikator.
Untuk dapat mempersempit area data yang sedang dipertimbangkan, PM4PY menyediakan kemampuan untuk bekerja dengan filter (Anda dapat mengatur filter berdasarkan kolom yang mirip dengan bekerja di perpustakaan pandas) dan dengan opsi (urutan langkah khas) dari log. Misalnya, pada gambar di atas, DFG ditampilkan dengan semua opsi, tanpa batasan. Tetapi Anda dapat memilih, misalnya, 3 urutan langkah yang paling sering, lalu gambarnya akan jauh lebih sederhana.
Harus diingat bahwa kesederhanaan pada gambar di sebelah kanan muncul karena membuang opsi yang lebih langka, yang mengandung atipikal tetapi tidak menarik bagi kami, tetapi opsi yang cukup dapat diterima, dan penyimpangan penting dari proses standar yang sangat menarik bagi kami.
Hasilnya, kami melihat bahwa, bahkan dalam rangkaian peristiwa yang paling umum, langkah "beri makan kucing" hanya terjadi pada 4 dari 8 kasus, dan di setengah dari kasus (4) tindakan ini dilewati dan tidak ada tindakan kembali. Itu. dalam hal ini, lebih baik tidak terburu-buru dan, tanpa mengambil tanggung jawab tambahan, melatih disiplin dan komitmen Anda, tanpa meyakinkan hewan dengan perhatian, yang sebenarnya tidak akan terjadi.