Meningkatkan keputusan perniagaan dengan tiga alat interpretasi pembelajaran mesin

Maklum balas Pembelajaran Mesin adalah topik penyelidikan yang sangat panas dan kertas saintifik dan artikel baru mengenai subjek ini diterbitkan setiap minggu. Artikel ini membentangkan tiga alat pelengkap yang merangkumi kebanyakan keperluan interpretasi Mesin Pembelajaran kami di ManoMano di mana kami membantu lebih dari satu juta orang Eropah setiap hari untuk mencari apa yang mereka inginkan dalam katalog kami sebanyak 3 juta produk DIY dan berkebun:

  1. Kepentingan yang penting: ciri-ciri apa model paling banyak digunakan?
  2. Plot pergantungan separa: bagaimana model menggunakan pemboleh ubah tertentu?
  3. Sumbangan ciri: mengapa model membuat ramalan khusus ini?
xkcd

Mengapa kita harus mentafsirkan model pembelajaran mesin kita?

  • Memahami perniagaan anda: Faktor-faktor yang mendorong kadar penukaran tapak web? Apakah impak harga penghantaran ke atasnya?
  • Buat kepercayaan dengan rakan niaga: Kenapa ramalan ramalan jualan ini begitu tinggi? Kerana produk itu dijual 157 kali minggu lalu dan bermusim untuk kategorinya berkembang.
  • Ambil tindakan yang berkaitan untuk menyelesaikan masalah: Mengapa pelanggan ini mungkin berpura-pura? Kerana dia mempunyai masalah kualiti bulan lepas.
  • Debug / memperbaiki model: Kenapa ramalan ramalan jualan ini begitu tinggi? Nilai yang hilang dalam dataset pengeluaran. Kenapa kita terlalu rendah? Penjualan produk ini adalah rendah kerana ia tidak ada saham dan kami tidak perasan.
Kuasa ramalan vs dilema Kebolehterjemahan (© ManoMano)

Gunakan kes: pemodelan kadar penukaran menggunakan Pokok Boosting Gradient

Untuk menggambarkan ketiga-tiga alat tersebut, kami menumpukan pada pemodelan kadar penukaran produk. Berikut adalah kumpulan data latihan kami seperti:

Kami cuba meramalkan kadar penukaran sesuatu produk pada hari tertentu, bergantung kepada ciri berdasarkan produk (harga, penarafan, masa penghantaran, dan lain-lain) dan hari dalam seminggu. Untuk mempermudahkan analisis berikut, kami secara buatan sampel dataset kami mempunyai kadar penukaran rata-rata 10%.

Kami menggunakan LightGBM, model ensemble yang sangat kuat menggunakan pokok. Alat ini digunakan secara meluas dalam pertandingan Sains Data.

Kepentingan penting

Kepentingan penting ialah alat untuk mengira dan cepat memvisualisasikan betapa berguna setiap ciri dalam model kami. Alat ini biasanya digunakan dalam model ensemble seperti Hutan Rawak atau Gradient Boosting Trees. Semakin banyak ciri yang digunakan untuk membuat keputusan penting dengan pokok keputusan, semakin tinggi kepentingan relatifnya. Untuk butiran lanjut tentang bagaimana kepentingan penting dikira, anda boleh merujuk kepada siaran blog ini. Mari kita memvisualkan plot kepentingan ciri untuk model ramalan kami:

Menurut carta bar ini, ciri yang paling penting untuk meramalkan kadar penukaran adalah harga produk, harga penghantaran, penarafan dan masa penghantaran. Ia bertepatan dengan intuisi perniagaan kami, yang bagus.

Pengaruh nilai yang hilang

Mari cuba persediaan lain, bayangkan kita mempunyai masalah kualiti data, dan untuk sebab tertentu, 90% nilai harga hilang. Selepas latihan semula model, inilah yang kita dapat:

Kita boleh mengandaikan bahawa harga bukanlah ciri penting, yang benar-benar salah. Kita sepatutnya meluangkan masa memperbaiki kualiti data untuk memperbaiki model kita. Dengan cara ini, nilai yang hilang juga boleh mengandungi maklumat. Sebagai contoh, mempunyai penarafan purata yang hilang hanya bermakna tidak ada penarafan, dan produk itu tidak popular atau baru.

Pengaruh pembolehubah berkorelasi

Mari tambahkan tiga ciri harga yang berkait (dan bising) dan lihat apa yang berlaku:

Di sini, pentingnya ciri "harga" kami menurun daripada 38% kepada 24%. Kepentingan pembolehubah ini telah diagihkan di kalangan pembolehubah berkorelasi. Tambahan pula, menambahkan ciri-ciri bising meningkatkan memori dan penggunaan CPU dan meningkatkan risiko overfitting. Oleh itu, ciri penting mengikut alat ini mungkin bukan ciri yang diperlukan.

Kebaikan dan keburukan kepentingan penting

  • (+) Sangat mudah untuk dilaksanakan, itu adalah beberapa baris kod
  • (+) Cepat memberikan pandangan yang baik pada isyarat
  • (+) Alat yang cekap untuk mengesan masalah kualiti data dalam dataset latihan
  • (-) Sensitif kepada ciri-ciri korelasi
  • (-) Sensitif kepada nilai yang hilang
  • (-) Tidak memberikan hubungan antara ciri dan fungsi sasaran (dalam contoh kita, kita tahu bahawa harga sangat berkaitan dengan sasaran, tetapi kita tidak tahu ke arah mana)

Plot pergantungan separa

Plot pergantungan separa berguna untuk memvisualisasikan kesan ciri pada sasaran yang diramalkan, meminggirkan nilai-nilai semua ciri-ciri lain. Alat sedemikian membantu memahami korelasi antara sasaran dan ciri, semua perkara lain menjadi sama. Untuk demonstrasi matematik yang lengkap, anda boleh merujuk kepada bab ini Elemen Pembelajaran Statistik. Plot pergantungan separa boleh digunakan dengan setiap model pembelajaran mesin. Kami mengesyorkan menggunakan pakej python PDPBox yang lengkap.

Untuk menggambarkan pergantungan separa, mari kita ambil contoh kehidupan sebenar yang berkaitan dengan kes penggunaan kami. Anggapkan pemilik perniagaan ingin mengetahui kesan harga penghantaran pada kadar penukaran. Mengetahui bahawa harga penghantaran sangat dikaitkan dengan harga produk, kita mula dengan mengira ciri shipping_ratio yang merupakan nisbah antara harga penghantaran produk dan harga totalnya:

Mari kita membuat analisis univariat dengan mengira kadar penukaran purata oleh bin ship_ratio:

Grafik yang dihasilkan cukup jelas: kadar penukaran secara positif berkorelasi dengan ciri nisbah_shipping! Adakah kita berkomunikasi dengan pemilik perniagaan dan menasihati mereka untuk meningkatkan harga penghantaran semua produk kami untuk meningkatkan kadar penukaran? Sudah tentu tidak, kerana korelasi tidak bermaksud penyebab. Mari kita membuat analisis pergantungan separa pada pembolehubah yang sama dan perhatikan perbezaannya:

Seperti yang dijangkakan dan apabila kami mengambil kira semua ciri lain yang digunakan oleh model ramalan, ciri penghantaran_ratio bersaling negatif dengan kadar penukaran yang diramalkan. Perhatikan bahawa kita masih tidak melihat penyebab sebenar, tetapi korelasi diperbetulkan daripada ciri-ciri lain.

Kebaikan dan keburukan plot pergantungan separa

  • (+) Menunjukkan hubungan antara ciri dan pemboleh ubah kami
  • (+) Membolehkan anda melihat pengaruh yang tidak tersurat daripada satu ciri yang lain, berbanding dengan analisis univariat yang standard
  • (-) Memakan masa pada dataset besar
  • (-) Terhad kepada plot dua dimensi
  • (-) Sensitif kepada korelasi ciri

Sumbangan ciri

Sumbangan ciri mengira kesan setiap ciri pada ramalan yang diberikan. Ia memberi pemahaman mikro setiap ramalan. Seperti plot pergantungan separa, sumbangan ciri boleh dikira tanpa mengira model pembelajaran mesin yang digunakan. Anda boleh merujuk kepada catatan blog ini jika anda ingin tahu bagaimana ia dikira untuk Hutan Rawak. Fungsi meramalkan LightGBM menyediakan parameter untuk mengira mereka secara langsung. Mari kita ramalkan salah satu produk yang paling popular di ManoMano - gerudi dari Makita - dan perhatikan sumbangan setiap ciri:

Produk ini mempunyai banyak penilaian yang baik (644 penilaian, dengan nilai purata 4.69 / 5). Oleh itu sumbangan bilangan penarafan kepada kadar penukaran yang diramalkan ialah + 12%. Bagaimanapun, harga (167.99 €) di atas purata. Produk mahal cenderung mempunyai kadar penukaran yang lebih rendah. Oleh itu sumbangannya kepada kadar penukaran yang diramalkan adalah -7.5%. Perhatikan bahawa jumlah sumbangan adalah sama dengan kadar penukaran yang diramalkan (kita juga perlu menambah pemintas kepada jumlah itu).

Kita boleh mengulangi proses ini untuk produk lain dan perhatikan perbezaan:

Walaupun produk ini mempunyai kadar penukaran yang diramalkan mirip dengan gerudi Makita terdahulu, ia mempunyai satu lagi "profil": ia jauh lebih murah (34.2 €) dan ia dinilai dengan baik tetapi masa penghantaran dan harga dissuasive (6.9 € untuk penghantaran dalam 8 hari).

Seperti dua kaedah terdahulu, sumbangan ciri sensitif terhadap korelasi ciri: jika anda memberi suai model dengan dua ciri yang sangat berkaitan, sumbangan ramalan akan dibahagikan secara buatan oleh dua.

Kebaikan dan keburukan sumbangan ciri

  • (+) Penjelasan mikro ramalan sebagai jumlah sumbangan ciri
  • (+) Membantu menyiasat ramalan untuk akhirnya mengesan masalah model atau masalah kualiti data
  • (+) Bina kepercayaan dengan pemilik perniagaan dengan menerangkan kepada mereka bagaimana algoritma berkelakuan
  • (+) Benarkan pemodelan preskriptif (vs pemodelan ramalan): menjelaskan mengapa pelanggan mungkin berpura-pura membantu mengambil tindakan yang betul
  • (-) Sensitif kepada korelasi ciri

Kesimpulan

Kami telah membentangkan tiga alat yang merangkumi kebanyakan keperluan interpretasi kami di ManoMano. Beberapa amaran jika anda menggunakannya keluar dari kotak:

  • Ciri-ciri yang sangat berkorelasi adalah gangguan untuk pembelajaran tafsiran mesin. Anda perlu menyingkirkannya sebelum cuba mentafsirkan model anda.
  • Cuba untuk mentafsirkan model dengan prestasi ramalan yang sangat lemah (mis. 0.51 AUC) tidak masuk akal. Kegunaan tafsiran secara langsung dikaitkan dengan isyarat ramalan yang ditangkap oleh model.

Perlu diingat bahawa alat penafsiran lain wujud (LIME, nilai Shapley, plot ICE, dan lain-lain). Rujuk kepada panduan lengkap Christoph Molnar untuk maklumat lanjut dan butiran matematik pada alat ini.

Kami berharap artikel ini berguna untuk anda dan kebimbangan interpretasi tidak lagi menjadi masalah apabila menggunakan teknik pembelajaran mesin yang kuat!

Ditulis oleh Jacques Peeters dan Romain Ayres.

Penghargaan

Alexandre Cazé, Yohan Grember, Chloé Martinot, Marin De Beauchamp, Bryce Tichit, Raphaël Siméon, Thomas Charuel, Louis Pery, Cyril Auberger, Matthieu Cornec dan rakan-rakan hebat kami di ManoMano.

Sertai kami

Kami sedang mencari rakan sekerja baru di ManoMano, melihat tawaran kerja kami!