Bias Data dalam Pembelajaran Mesin


18

Saya sedang mengerjakan proyek Machine Learning dengan data yang sudah (berat) bias oleh pemilihan data.

Mari kita asumsikan Anda memiliki seperangkat aturan kode keras. Bagaimana Anda membangun model pembelajaran mesin untuk menggantinya, ketika semua data yang dapat digunakan adalah data yang sudah disaring oleh aturan-aturan itu?

Untuk memperjelas, saya kira contoh terbaik adalah Penilaian Risiko Kredit : Tugasnya adalah menyaring semua klien yang kemungkinan gagal melakukan pembayaran.

  • Sekarang, satu-satunya (berlabel) data yang Anda miliki berasal dari klien yang telah diterima oleh seperangkat aturan, karena hanya setelah menerima Anda akan melihat apakah seseorang membayar atau tidak (jelas). Anda tidak tahu seberapa bagus seperangkat aturan itu dan seberapa besar mereka akan mempengaruhi distribusi yang dibayar ke yang tidak dibayar. Selain itu, Anda memiliki data yang tidak berlabel dari klien yang telah ditolak, lagi karena serangkaian aturan. Jadi, Anda tidak tahu apa yang akan terjadi dengan klien-klien itu jika mereka diterima.

Misalnya salah satu aturan bisa jadi: "Jika usia klien <18 tahun, maka jangan terima"

Pengklasifikasi tidak memiliki cara untuk mempelajari cara menangani klien yang telah difilter oleh aturan ini. Bagaimana classifier seharusnya mempelajari pola di sini?

Mengabaikan masalah ini, akan menyebabkan model terpapar ke data yang belum pernah ditemui sebelumnya. Pada dasarnya, saya ingin memperkirakan nilai f (x) ketika x berada di luar [a, b] di sini.


8
Cara ini umumnya ditangani dalam penilaian risiko kredit adalah dengan tidak menyaring proporsi tertentu pelamar dengan aturan. Sejumlah kecil pelamar diterima secara acak, dan ditandai seperti itu.
Matthew Drury

Ini sangat bagus untuk diketahui. Mungkin saya bahkan dapat mengatur hal-hal untuk melakukan hal yang sama.
Laksan Nathan

1
Ketika saya menjelaskan masalah ini kepada non-pakar, saya menggambar awan (kenyataan), dan poligon yang mendekati awan (model). Saya menunjukkan kesalahan positif palsu dan kesalahan negatif palsu. Jelas secara visual bahwa saya membutuhkan kedua kesalahan untuk meningkatkan model, jadi untuk memperkirakan cloud lebih baik.
MSalters

Mempersiapkan presentasi saya sekarang. Analogi ini sangat berguna, terima kasih!
Laksan Nathan

Ini disebut dilema eksplorasi-eksploitasi.
seanv507

Jawaban:


12

Anda benar untuk khawatir - bahkan model terbaik dapat gagal secara spektakuler jika distribusi data out-of-sample berbeda secara signifikan dari distribusi data yang dilatih / diuji oleh model tersebut.

Saya pikir yang terbaik yang dapat Anda lakukan adalah melatih model pada data berlabel yang Anda miliki, tetapi cobalah untuk menjaga agar model tetap dapat ditafsirkan. Itu mungkin berarti hanya terbatas pada model sederhana. Kemudian, Anda dapat mencoba untuk alasan bagaimana aturan yang dipelajari oleh model Anda dapat berinteraksi dengan aturan sebelumnya yang Anda miliki, dalam upaya untuk memperkirakan seberapa baik model Anda mungkin bekerja pada populasi tanpa filter.

Misalnya - misalkan, model Anda menemukan bahwa dalam dataset berlabel Anda, semakin muda klien, semakin besar kemungkinan mereka untuk default. Maka mungkin masuk akal untuk mengasumsikan bahwa model Anda akan bekerja dengan baik jika Anda menghapus filter sebelumnya "Jika usia klien <18 tahun, maka jangan terima".


4

Saya tidak yakin saya sepenuhnya memahami pertanyaan itu, tetapi sejauh yang saya mengerti Anda bertanya bagaimana melatih classifier untuk memprediksi sampel yang berada di luar domain sampel yang telah dilihatnya. Ini, secara umum dan sejauh yang saya tahu, tidak mungkin. Teori pembelajaran mesin didasarkan pada gagasan "minimalisasi risiko empiris," yang bermula untuk mengasumsikan bahwa rangkaian pelatihan Anda adalah perkiraan yang baik dari distribusi Anda yang sebenarnya atas sampel dan label. Jika asumsi itu dilanggar, sebenarnya tidak ada jaminan.

Anda menyebutkan data yang tidak berlabel - Saya tidak tahu apakah ini akan menyelesaikan masalah Anda, tetapi pembelajaran semi-diawasi memiliki banyak metode untuk mencoba mempelajari pengklasifikasi yang diberikan data yang berlabel dan tidak berlabel, dan Anda mungkin ingin mempertimbangkan untuk melihat ke dalamnya (misalnya , SVM transduktif).


Saya setuju, tidak ada "solusi" untuk masalah saya. Tapi mungkin ada beberapa saran praktis tentang cara menangani masalah seperti ini.
Laksan Nathan

2

Aturan Anda mungkin memberi Anda cara untuk melakukan augmentasi data . Salin sampel positif, ubah usia menjadi 17, dan kemudian tandai sebagai sampel negatif.

Prosedur ini tidak perlu sepele atau berguna untuk semua dataset. Saya bekerja dengan data NLP dan sulit untuk melakukannya dengan baik di domain itu. Misalnya, jika Anda memiliki fitur lain yang berkorelasi dengan usia, Anda mungkin berakhir dengan sampel yang tidak realistis. Namun, ia menyediakan jalan untuk mengekspos sistem ke sesuatu seperti sampel yang tidak berhasil masuk ke dalam dataset.


Menambahkan noise ke data tentu saja merupakan cara untuk mengatasi masalah ini. Tetapi hanya dalam beberapa kasus di mana data klien dapat dengan mudah diklasifikasikan. Saya tidak akan melakukannya dalam tingkat yang lagi akan menghasilkan pengetahuan domain "bias" output -kolektif / persepsi subjektif yang mengarah pada tabrakan retrospektif dari dugaan pengetahuan.
Laksan Nathan

2

Satu hal yang berhasil bagi kami dalam situasi serupa adalah melakukan sedikit pembelajaran penguatan (mengeksplorasi dan mengeksploitasi). Di atas model berdasarkan aturan, kami menjalankan penjelajah yang dengan kemungkinan kecil akan mengubah respons dari model, sehingga dalam kasus-kasus tertentu di mana model tidak akan merekomendasikan kartu ke 17 tahun, penjelajah akan membalikkan model keputusan dan mengeluarkan kartu. Dari kasus-kasus sesekali ini Anda akan menghasilkan data pembelajaran untuk model pembelajaran di masa depan di mana ia dapat digunakan untuk memutuskan untuk merekomendasikan kartu untuk anak berusia 17 tahun berdasarkan jika kartu yang dikeluarkan untuk anak berusia 17 tahun oleh penjelajah tidak default dan Anda dapat membangun sistem yang dapat bekerja di luar bias model yang ada.


Karena kasus-kasus sesekali ini terkait dengan risiko keuangan tertentu, itu akan menjadi pendekatan langkah-demi-langkah yang berpotensi mengungkapkan pola baru dalam jangka panjang. Pada dasarnya trade-off eksplorasi-eksploitasi seperti yang Anda sebutkan. Ini pasti akan dipertimbangkan dalam proyek.
Laksan Nathan

2

Dari sudut pandang praktis, sulit / tidak masuk akal untuk meminta model untuk memprediksi sesuatu pada kasus yang tidak mungkin dalam sistem saat ini (tidak ada makan siang gratis).

Salah satu cara untuk menghindari masalah itu adalah dengan menambahkan pengacakan ke sistem saat ini (digunakan), misalnya untuk menambahkan kemungkinan untuk mem-bypass (beberapa) aturan dengan probabilitas yang kecil dan terkontrol (dan karenanya merupakan biaya yang dapat diprediksi).

Setelah Anda berhasil meyakinkan orang-orang yang bertanggung jawab atas sistem untuk melakukan hal itu, maka Anda dapat menggunakan metode evaluasi kebijakan seperti sampel penting untuk mengajukan pertanyaan "bagaimana-jika". Misalnya apa yang akan menjadi risiko kredit yang diharapkan jika kita mengizinkan orang yang saat ini dijatuhkan oleh aturan untuk mengambil kredit. Seseorang bahkan dapat mensimulasikan efek model prediksi (bias) Anda pada populasi itu. Referensi yang bagus untuk metode semacam itu adalah makalah Bottou tentang pembelajaran dan penalaran kontrafaktual.


Referensi yang bagus, terima kasih. Saya akan meluangkan waktu untuk melewatinya.
Laksan Nathan

1

Jawaban statistik klasik adalah bahwa jika proses seleksi dalam data dan dijelaskan oleh model atau seleksi secara acak maka model parametrik merenungkannya dengan benar. Lihat Donald Rubin paper Inference and Missing data (1976). Anda perlu memasukkan mekanisme pemilihan data dalam model Anda. Ini adalah bidang di mana inferensi parametrik harus lebih baik daripada pembelajaran mesin murni.


1

Ini mirip dengan dilema sesudah-kehidupan: berapa rasio perbuatan baik dan buruk (data) yang cukup untuk masuk surga daripada neraka (kelas), setelah satu orang mati (saring!). Di sini, kematian berfungsi sebagai filter, yang mengarah ke nilai-nilai yang hilang menuju skema pembelajaran yang diawasi.

Saya ingin menyatukan antara masalah nilai hilang dan masalah 'data bias'. Tidak ada yang namanya data bias, ada yang namanya 'model bias' yang menjelaskan data tersebut, tetapi data itu sendiri tidak bias, itu hanya hilang. Jika data yang hilang berkorelasi bermakna dengan data yang dapat diobservasi, maka sangat mungkin untuk melatih model yang tidak bias dan mencapai hasil prediksi yang baik.

Jika data yang hilang benar-benar tidak berkorelasi dengan data yang dapat diobservasi, maka ini merupakan kasus 'Anda tidak tahu apa yang tidak Anda ketahui'. Anda dapat menggunakan metode pembelajaran yang tidak diawasi atau tidak diawasi. Masalahnya adalah di luar bidang ilmu data.

Oleh karena itu, demi solusi yang bermakna, mari kita asumsikan bahwa data yang hilang berkorelasi dengan data yang dapat diobservasi. Kami akan memanfaatkan kata korelasi.

Ada beberapa algoritma penambangan data yang berusaha memecahkan masalah seperti itu. Anda dapat mencoba 'Metode ensemble' seperti algoritma Bagging-n-Boosting atau 'frequent pattern mining' seperti Apriori dan FP-growth. Anda juga dapat menjelajahi metode dalam Statistik Kuat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.