Tidak ada yang lebih menjengkelkan daripada panggilan telepon kejutan dari nomor yang tidak dikenal. Di zaman kita sebagai pembawa pesan dan komunikasi, korespondensi dengan nomor telepon asing yang berkedip-kedip di layar smartphone dapat menyebabkan setidaknya sedikit kegembiraan. Ini sangat menjengkelkan ketika sebuah panggilan datang tidak hanya tiba-tiba (seperti itu, panggilan ini), tetapi juga pada waktu yang tidak nyaman untuk Anda. Misalnya, ketika Anda belum benar-benar berhasil bangun, atau sebaliknya, Anda sudah dalam ayunan penuh di tempat tidur yang memikat setelah hari yang panjang. Beberapa panggilan bisnis pada akhir pekan, setelah jam sembilan malam atau malam hari - umumnya melampaui kebaikan dan kejahatan.

Ngomong-ngomong, tentang aku. Nama saya Natasha, saya bekerja di Skyeng sebagai Data Scientist dan saya terlibat dalam pengembangan berbagai produk perusahaan. Mengapa saya berbicara tentang panggilan tiba-tiba? Komunikasi suara dengan pelanggan yang hanya ingin memulai atau karena alasan yang tiba-tiba menghentikan pelatihan mereka adalah bagian dari model kerja perusahaan. Panggilan membantu untuk melibatkan dan mengembalikan orang ke proses belajar bahasa, atau langsung untuk mencari tahu apa yang salah. Salah satu tugas terakhir saya adalah menganalisis pekerjaan pusat panggilan kami. Saya membantu mereka memilih waktu terbaik untuk berhubungan dengan siswa di seluruh Rusia dan CIS: karena tidak ada yang suka menelepon secara acak setiap hari, dan membuat marah pengguna saya sendiri adalah hal terakhir.
Suasana hati orang-orang selama panggilan semacam itu sangat penting bagi kami, karena secara langsung memengaruhi konversi. Jadi izinkan saya memberi tahu Anda lebih banyak tentang bagaimana Skyeng memanggil siswa dan model perkiraan apa yang saya buat sehingga pelanggan kami merasa nyaman dan nyaman, dan kami mencapai tingkat konversi 60-70%.
Secara fisik tidak mungkin untuk menebak waktu yang nyaman bagi orang tertentu, kecuali jika Anda adalah seorang paranormal. Puji kemajuan, untuk mengidentifikasi pola-pola seperti itu datang dengan statistik, model yang plus atau minus akan cocok dengan sebagian besar pengguna.
Dalam analisis catatan CRM kami, yang mencatat aktivitas pusat panggilan, hipotesis panggilan bisnis di luar jam kerja dan kebutuhan untuk mengikuti akal sehat hanya dikonfirmasi. Jadi ternyata yang terbaik adalah menelepon orang dari Senin hingga Kamis, dari 10 hingga 18 jam (tiba-tiba!). Selama periode waktu inilah orang paling mungkin melakukan kontak dan panggilan berlangsung lebih dari 15 detik, yaitu, kita dianggap berhasil.
Untuk memulainya, kami memutuskan untuk menentukan pengaruh faktor manusia terhadap konversi, yaitu, melihat keberhasilan operator pusat panggilan:

Anda tidak perlu menjadi seorang detektif untuk melihat dua "jangkar" pada bagan ini. Kedua anomali ini adalah operator dengan efisiensi yang sangat rendah. Apa yang kita lakukan dengan data anomali, yang sifatnya terletak, kemungkinan besar, pada faktor manusia? Saya percaya bahwa kami sepenuhnya mengecualikan data tersebut dari model untuk mencapai kemurnian dan akurasi hasil selanjutnya. Apa yang sebenarnya saya lakukan. Sebenarnya, kedua operator ini, atau lebih tepatnya hasil mereka, begitu keluar dari gambaran di call center sehingga saya benar-benar yakin bahwa masalahnya bukanlah proses kerja, tetapi karyawan itu sendiri. Mungkin mereka adalah pendatang baru, yang juga memberi kita alasan untuk mengecualikan mereka.
Tetapi data enam operator lain dengan konversi di bawah 0,5 tetap dalam model. Saya percaya bahwa tidak ada situasi yang ideal, seperti orang-orang, jadi keenam ini akan menyeimbangkan perhitungan lebih lanjut kami dengan sisa sampel lima puluh karyawan.
Zona Waktu, Wilayah, dan Hari dalam Seminggu
Kami memiliki situasi yang sulit dengan zona waktu. Kami sekarang mengumpulkan cukup informasi untuk menentukan dari mana siswa itu berasal dan kapan yang terbaik baginya untuk menelepon. Tapi ini jauh dari biasanya. Lapisan-lapisan yang lama ini, tetapi masih berfungsi, yang menciptakan sejumlah ketidaknyamanan baik bagi pengguna kami maupun bagi operator pusat panggilan. Untuk memproses data lama ini, saya menulis perhitungan terpisah dari zona pengguna berdasarkan data tidak langsung lainnya (berdasarkan nomor telepon, wilayah, dan informasi tentang penggunaan aplikasi kami).
Jika Anda mulai menggali lebih dalam ke statistik CRM, Anda masih bisa mendapatkan seluruh lapisan informasi yang berguna untuk membuat model yang efektif. Untuk memulai, saya membuat jadwal konversi untuk hari-hari dalam seminggu untuk mengonfirmasi asumsi awal saya bahwa lebih baik menelepon pada hari kerja, kecuali hari Jumat. Sebenarnya, asumsi saya benar:

Pembagian seperti itu ke Moskow, St. Petersburg, dan kota-kota lain dibuat justru karena keraguan dalam hal menentukan zona waktu. Untuk hari nol kami telah mengambil masing-masing hari Senin, keenam - Minggu. Grafik di atas dengan jelas menunjukkan seberapa besar konversi yang menurun menurut wilayah pada akhir pekan, yang mengonfirmasi hipotesis masalah dengan zona waktu yang menjadi fokus operator call center.
Moskow dan Peter sedikit lebih baik. Mungkin karena penduduk kota-kota ini terbiasa dengan tingkat kehidupan yang lebih tinggi. Tetapi bahkan dengan semua ketabahan orang-orang Moskow dan penduduk kota atas Neva, angka-angka itu mengatakan bahwa "tidak ada yang bisa dihubungi dari Jumat hingga Minggu."
Batas bawah target kami sebesar 0,6 hanya tercapai sekali - pada hari Senin, yang mengejutkan, karena secara umum diyakini bahwa hari ini adalah yang paling sulit dan orang-orang enggan untuk menyelesaikan masalah sampingan pada hari Senin, karena mereka fokus untuk kembali ke ritme kerja setelah akhir pekan. Tidak, tidak, dan lagi tidak - jumlahnya tidak bohong. Lebih lanjut sepanjang minggu kita berjalan kurang lebih lancar, dan resesi dimulai hanya pada hari Kamis.
Yang lebih menarik adalah gambar saat mendekomposisi panggilan berdasarkan jam:
Perhatikan ekor yang kuat di sebelah kiri untuk daerah. Kemungkinan besar, panggilan ini dilakukan pada waktu yang tidak dapat diterima karena zona waktu yang tidak ditentukan dengan benarSekarang mari kita lihat konversi beberapa hari dalam seminggu:

Berikut adalah data untuk hari juara Senin kami. Di awal grafik, "daerah" didorong ke depan. Sekitar tengah hari, situasi diratakan. Ngomong-ngomong, perhatikan pergerakan simetris grafik kami sekitar 15 dan 16 jam; bahwa ibukota, bahwa daerah menunjukkan gerakan yang persis sama saat ini.
Tetapi pada hari Selasa, situasinya mulai berubah:

Dan pada hari Kamis, daerah menunjukkan keengganan mereka untuk menjawab panggilan:

Ingat saya mengatakan panggilan akhir pekan itu jahat? Secara umum, gambar statistik mengkonfirmasi kata-kata saya, tetapi ada satu "tetapi". Singkatnya, lihat sendiri:

Pukul 9-10 pagi, konversi di daerah baru saja bergulir! Dan sudah jam 11 pagi - hampir tidak keluar dari tanda 0,4, yaitu, melorot dua kali. Saya tidak tahu bagaimana ini bekerja dan mengapa itu terjadi, jadi saya bisa membagikan teori saya di komentar, saya ingin membacanya.
Jika kami meringkas semua data, kami dapat memperoleh aturan berikut untuk panggilan "berhasil":
- Senin: dari 13 hingga 17;
- Selasa: dari 12 hingga 18;
- Rabu: dari 11 hingga 12 dan dari 15 hingga 17;
- Kamis: dari 10 hingga 17;
- Jumat: dari 10 hingga 12;
- Sabtu: dari 16 hingga 18;
- Minggu: dari 13 hingga 14 dan dari 18 hingga 19.
Sebenarnya, semuanya cocok dengan kerangka akal sehat. Pada hari kerja dari Senin hingga Kamis - untuk menelepon hingga lima hingga enam malam, dan pada Jumat sore untuk menyelesaikan masalah apa pun hampir tidak mungkin. Statistik pada akhir pekan โmengapungโ sedikit, dengan penekanan pada sore hari, yah, ditambah puncak anomali yang disebutkan sebelumnya pada pukul 10 pagi pada hari Minggu keluar dari gambar. Dan semuanya stabil.
Apa yang saya lakukan dengan semua ini dan model apa yang saya buat
Sebelum melanjutkan untuk membangun model untuk call center, perlu untuk menarik beberapa kesimpulan. Pertama, itu semua tergantung pada waktu panggilan. Tapi di sini kita punya masalah.
Satu-satunya hal yang dapat kita lacak adalah wilayah pendaftaran nomor telepon, dan sudah dari informasi ini kita mulai dari pembangunan pusat panggilan. Tetapi sangat sering situasi muncul di mana kita tidak dapat menentukan dengan tepat dari wilayah mana angka yang ditunjukkan.
Ini adalah, dan bukan kemalasan fiksi dari daerah, yang mengarah pada fakta bahwa indikator umum konversi pengguna di luar Moscow Ring Road dan Ring Road mereda relatif terhadap ibukota. Apa yang bisa kita lakukan dalam situasi ini?
- Patuhi zona panas teridentifikasi untuk panggilan ke kawasan jika kami tidak memiliki cukup data.
- Kami perlu mencari alat untuk lebih akurat menentukan lokasi pengguna, agar tidak mengganggunya dengan panggilan kosong.
Poin kedua sangat penting. Ini adalah perbedaan yang mengurangi tingkat konversi keseluruhan, dan masih membuat marah pelanggan.
Tapi mari kita lanjutkan untuk membangun model. Berikut adalah daftar umum gejala yang telah saya identifikasi relevan:
- jam - jam panggilan (tanda kategori dari 0 hingga 23).
- hari kerja - hari dalam seminggu (tanda kategori dari 0 hingga 6).
- usia - usia siswa.
- seumur hidup - waktu hidup siswa (dalam pelajaran) pada saat panggilan berlangsung.
- app_hour_ {k} - musiman penggunaan aplikasi sehari-hari. Untuk setiap jam, k ditentukan sebagai fraksi tindakan dalam aplikasi pada jam tersebut (k = 0, ..., 23) dari jumlah total tindakan dalam aplikasi.
- app_weekday_ {k} - musiman musiman penggunaan aplikasi. Untuk setiap hari dalam minggu k ditentukan sebagai proporsi tindakan dalam aplikasi pada hari itu dalam seminggu (k = 0, ..., 6) dari jumlah total tindakan dalam aplikasi.
- class_hour_ {k} - musiman musiman pelajaran. Untuk setiap jam, k ditentukan sebagai bagian dari pelajaran pada jam itu (k = 0, ..., 23) dari total jumlah pelajaran.
- class_weekday_ {k} - musiman musiman penggunaan aplikasi. Untuk setiap hari dalam minggu k ditentukan sebagai persentase pelajaran pada hari itu dalam minggu itu (k = 0, ..., 6) dari total jumlah pelajaran.
- is_ru - 1 jika negara pelajarnya adalah Rusia dan 0 jika tidak.
- last_payment_amount - jumlah pembayaran terakhir.
- days_last_lesson - jumlah hari dari pelajaran terakhir (jika tidak ada pelajaran terakhir, ganti dengan angka -100).
- days_last_payment - jumlah hari dari pembayaran terakhir (jika tidak ada pembayaran terakhir, kami ganti dengan angka -100).
Awalnya, ada sekitar seratus tanda, tetapi perhitungan dan tes menunjukkan bahwa mereka tidak mempengaruhi hasil akhir, sehingga mereka dikeluarkan sebagai tidak informatif (misalnya, intensitas pelajaran, jenis kelamin siswa, levelnya, dan sebagainya). Sebagai model klasifikasi biner, perpustakaan meningkatkan gradien pada pohon keputusan CatBoost digunakan.
Dan inilah kualitas model saya (dalam sampel kontrol):

Hasil ini diperoleh untuk batas pemisahan kelas 0,5, yang merupakan nilai default. Kami menentukan batas pemisahan kelas optimal berdasarkan kurva ROC (karakteristik operasi penerima).
Untuk melakukan ini, kami membangun ketergantungan karakteristik seperti kelengkapan dan spesifisitas tergantung pada berbagai nilai batas yang memisahkan kelas:

Nilai optimal dari perbatasan akan menjadi tempat kita mendapatkan nilai kelengkapan dan spesifisitas tertinggi yang mungkin (yaitu, dalam hal ini, di mana grafik berpotongan). Untuk model yang dihasilkan, batas optimal adalah 0,56717.
Kualitas model dengan batas optimal adalah sebagai berikut:

Dalam situasi kami, keakuratan model lebih penting bagi kami daripada kelengkapannya. Akurasi yang meningkat inilah yang memungkinkan kami mengurangi jumlah prakiraan positif palsu, yaitu, memungkinkan kami mengurangi jumlah situasi ketika kami sedang menunggu panggilan yang berhasil, tetapi ternyata tidak berhasil.
Jika ingin meringkas mekanisme model:
- untuk setiap jam hari dan hari dalam seminggu untuk setiap siswa, probabilitas panggilan dihitung dengan mempertimbangkan karakteristik dan waktu setempatnya;
- untuk penyimpanan lebih lanjut, waktu dipilih dari 9 hingga 20 jam untuk setiap hari dalam seminggu (waktu tersebut dipilih sesuai dengan zona waktu siswa);
- Sebelum menghemat, waktu dialihkan ke waktu Moskow, karena panggilan akan dilakukan di zona waktu Moskow;
- Hasilnya disimpan dalam database.
Jadi, sekarang operator call center telah memperkirakan data tentang kemungkinan panggilan untuk setiap pengguna, dan untuk setiap jam dan hari dalam seminggu. Jika panggilan tidak mendesak, maka operator dapat memilih slot paling optimal dalam seminggu, dan dalam kasus yang ekstrem - jika panggilan tidak dapat ditunda lagi - momen paling sukses dari hari kerja saat ini.
Tentu saja, setelah pengenalan model saya, akan perlu untuk berhenti sebentar, dan kemudian melakukan semua pekerjaan ini lagi, tetapi dengan data baru. Saya dapat melakukan beberapa kalkulasi abstrak tanpa akhir, menghitung probabilitas dan menambahkan variabel baru ke dalam model, tetapi sampai statistik yang tinggal mengkonfirmasi poin saya, masih terlalu dini untuk menutup pertanyaan ini.
Jika Anda menyukainya, setelah beberapa saat saya akan kembali dengan data baru yang diperoleh setelah pengenalan model perkiraan saya.