SMOTE
Penting
Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.
Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.
- Lihat informasi tentang memindahkan proyek pembelajaran mesin dari ML Studio (klasik) ke Azure Machine Learning.
- Mer informasjon tentang Azure Machine Learning.
ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.
Meningkatkan jumlah contoh insiden rendah dalam dataset menggunakan oversampling minoritas sintetis
Kategori: Transformasi / Manipulasi Data
Catatan
Berlaku untuk: Pembelajaran Mesin Studio (klasik) saja
Modul drag-and-drop serupa tersedia di Azure Machine Learning desainer.
Ringkasan Modul
Artikel ini menjelaskan cara menggunakan modul SMOTE di Pembelajaran Mesin Studio (klasik) untuk meningkatkan jumlah kasus yang kurang terwakili dalam himpunan data yang digunakan untuk pembelajaran mesin. SMOTE adalah cara yang lebih baik untuk meningkatkan jumlah kasus yang jarang terjadi daripada hanya menduplikasi kasus yang sudah ada.
Anda menghubungkan modul SMOTE ke himpunan data yang tidak seimbang. Ada banyak alasan mengapa dataset mungkin tidak seimbang: kategori yang Anda targetkan mungkin sangat jarang terjadi dalam populasi, atau data mungkin sulit dikumpulkan. Biasanya, Anda menggunakan SMOTE ketika kelas yang ingin Anda analisis kurang terwakili.
Modul mengembalikan himpunan data yang berisi sampel asli, ditambah jumlah tambahan sampel minoritas sintetis, tergantung pada persentase yang Anda tentukan.
Selengkapnya tentang SMOTE
SMOTE adalah singkatan dari Synthetic Minority Oversampling Technique. Ini adalah teknik statistik untuk meningkatkan jumlah kasus dalam dataset Anda secara seimbang. Modul ini bekerja dengan menghasilkan instans baru dari kasus minoritas yang ada yang Anda berikan sebagai input. Implementasi SMOTE ini tidak mengubah jumlah kasus mayoritas.
Contoh baru bukan hanya salinan kasus minoritas yang ada; sebaliknya, algoritma mengambil sampel ruang fitur untuk setiap kelas target dan tetangga terdekatnya, dan menghasilkan contoh baru yang menggabungkan fitur kasus target dengan fitur tetangganya. Pendekatan ini meningkatkan fitur yang tersedia untuk setiap kelas dan membuat sampel lebih umum.
SMOTE mengambil seluruh himpunan data sebagai input, tetap hanyai meningkatkan persentase kasus minoritas. Misalnya, misalkan Anda memiliki dataset yang tidak seimbang di mana hanya 1% dari kasus memiliki nilai target A (kelas minoritas), dan 99% kasus memiliki nilai B. Untuk meningkatkan persentase kasus minoritas menjadi dua kali persentase sebelumnya, Anda akan memasukkan 200 untuk persentase SMOTE di properti modul.
Contoh
Sebaiknya coba gunakan SMOTE dengan himpunan data kecil untuk melihat cara kerjanya. Contoh berikut menggunakan himpunan data Donor Darah yang tersedia di Pembelajaran Mesin Studio (klasik).
Jika Anda menambahkan himpunan data ke eksperimen, dan klik Visualisasikan pada output himpunan data, Anda dapat melihat bahwa, dari 748 baris atau kasus dalam himpunan data, ada 570 kasus (76%) dari Kelas 0, dan 178 kasus (24%) dari kelas 1. Meskipun ini tidak terlalu tidak seimbang, Kelas 1 mewakili orang-orang yang menyumbangkan darah, dan dengan demikian baris ini berisi ruang fitur yang ingin Anda model.
Untuk meningkatkan jumlah kasus, Anda dapat mengatur nilai persentase SMOTE, menggunakan kelipatan 100, sebagai berikut:
Kelas 0 | Kelas 1 | total | |
---|---|---|---|
Himpunan data asli (setara dengan persentase SMOTE = 0) |
570 76% |
178 24% |
748 |
Persentase SMOTE = 100 | 570 62% |
356 38% |
926 |
Persentase SMOTE = 200 | 570 52% |
534 48% |
1104 |
Persentase SMOTE = 300 | 570 44% |
712 56% |
1282 |
Peringatan
Meningkatkan jumlah kasus menggunakan SMOTE tidak dijamin menghasilkan model yang lebih akurat. Anda harus mencoba bereksperimen dengan persentase yang berbeda, set fitur yang berbeda, dan jumlah tetangga terdekat yang berbeda untuk melihat bagaimana menambahkan kasus memengaruhi model Anda.
Cara mengonfigurasi SMOTE
Tambahkan modul SMOTE ke eksperimen Anda. Anda dapat menemukan modul di bawah modul Transformasi Data, dalam kategori manipulasi.
Koneksi himpunan data yang ingin Anda tingkatkan. Jika Anda ingin menentukan ruang fitur untuk membangun kasus baru, baik dengan hanya menggunakan kolom tertentu, atau dengan mengecualikan beberapa, gunakan modul Pilih Kolom dalam Himpunan Data untuk mengisolasi kolom yang ingin Anda gunakan sebelum menggunakan SMOTE.
Jika tidak, pembuatan kasus baru menggunakan SMOTE didasarkan pada semua kolom yang Anda berikan sebagai input.
Pastikan kolom yang berisi label, atau kelas target, ditandai seperti itu.
Jika tidak ada kolom label, gunakan modul Edit Metadata untuk memilih kolom yang berisi label kelas, dan pilih Label dari daftar turun bawah Bidang .
Modul SMOTE secara otomatis mengidentifikasi kelas minoritas di kolom label, dan kemudian mendapatkan semua contoh untuk kelas minoritas.
Dalam opsi persentase SMOTE , ketik bilangan keseluruhan yang menunjukkan persentase target kasus minoritas dalam himpunan data output. Contohnya:
Anda mengetik 0 (%). Modul SMOTE mengembalikan himpunan data yang persis sama dengan yang Anda berikan sebagai input, tidak menambahkan kasus minoritas baru. Dalam himpunan data ini, proporsi kelas tidak berubah.
Anda mengetik 100 (%). Modul SMOTE menghasilkan kasus minoritas baru, menambahkan jumlah kasus minoritas yang sama yang ada dalam dataset asli. Karena SMOTE tidak meningkatkan jumlah kasus mayoritas, proporsi kasus setiap kelas sekarang telah berubah.
Anda mengetik 200 (%). Modul ini menggandakan persentase kasus minoritas dibandingkan dengan himpunan data asli. Ini tidak akan membuat kasus minoritas menjadi dua kali lipat dari sebelumnya. Sebaliknya, ukuran dataset meningkat sedemikian rupa sehingga jumlah kasus mayoritas tetap sama, dan jumlah kasus minoritas meningkat sampai sesuai dengan nilai persentase yang diinginkan.
Catatan
Gunakan hanya kelipatan 100 untuk persentase SMOTE.
Gunakan opsi Jumlah tetangga terdekat untuk menentukan ukuran ruang fitur yang digunakan algoritma SMOTE saat membangun kasus baru. Tetangga terdekat adalah deretan data (kasus) yang sangat mirip dengan beberapa kasus target. Jarak antara dua kasus diukur dengan menggabungkan vektor yang tertimbang dari semua fitur.
- Dengan meningkatkan jumlah tetangga terdekat, Anda mendapatkan fitur dari lebih banyak kasus.
- Dengan tetap membuat jumlah tetangga terdekat rendah, Anda menggunakan fitur yang serupa dengan sampel asli.
Ketik nilai di kotak teks benih acak jika Anda ingin memastikan hasil yang sama selama menjalankan eksperimen yang sama, dengan data yang sama. Jika tidak, modul menghasilkan benih acak berdasarkan nilai jam prosesor saat percobaan diterapkan, yang dapat menyebabkan hasil yang sedikit berbeda saat berjalan.
Jalankan eksperimen.
Output modul adalah himpunan data yang berisi baris asli ditambah beberapa jumlah baris tambahan dengan kasus minoritas.
Tip
Jika Anda ingin mengetahui baris baru mana yang ditambahkan, Anda dapat menggunakan modul Terapkan Transformasi SQL atau Gabung Data.
Catatan teknis
Saat menerbitkan model yang menggunakan modul SMOTE , hapus SMOTE dari eksperimen prediktif sebelum dipublikasikan sebagai layanan web. Alasannya adalah bahwa SMOTE dimaksudkan untuk meningkatkan model selama pelatihan, dan tidak dimaksudkan untuk mencetak gol. Anda mungkin mendapatkan kesalahan jika eksperimen prediktif yang dipublikasikan berisi modul SMOTE.
Anda sering bisa mendapatkan hasil yang lebih baik jika Anda menerapkan pembersihan nilai yang hilang atau transformasi lain untuk memperbaiki data sebelum menerapkan SMOTE.
Beberapa peneliti telah menyelidiki apakah SMOTE efektif pada data dimensi tinggi atau jarang, seperti yang digunakan dalam klasifikasi teks atau dataset genomik. Makalah ini memiliki ringkasan efek yang baik dan validitas teoritis penerapan SMOTE dalam kasus seperti itu: Blagus dan Lusa: SMOTE untuk data yang tidak seimbang kelas dimensi tinggi
Jika SMOTE tidak efektif dalam himpunan data Anda, pendekatan lain yang mungkin Anda pertimbangkan termasuk berbagai metode untuk oversampling kasus minoritas atau undersampling kasus mayoritas, serta teknik ensemble yang membantu pelajar secara langsung, dengan menggunakan pengelompokan, mengantongi, atau peningkatan adaptif.
Input yang diharapkan
Nama | Jenis | Deskripsi |
---|---|---|
Sampel | Tabel Data | Kumpulan data sampel |
Parameter modul
Nama | Rentang | Jenis | Default | Deskripsi |
---|---|---|---|---|
Persentase SMOTE | >=0 | Bilangan bulat | 100 | Jumlah oversampling dalam kelipatan 100. |
Jumlah tetangga terdekat | >=1 | Bilangan bulat | 1 | Jumlah tetangga terdekat untuk menggambar fitur untuk kasus baru |
Benih acak | Apa pun | Bilangan bulat | 0 | Benih untuk generator angka acak |
Output
Nama | Jenis | Deskripsi |
---|---|---|
Tabel | Tabel Data | Tabel Data yang berisi sampel asli ditambah jumlah tambahan sampel kelas minoritas sintetis. Jumlah sampel baru adalah (smotePercent / 100) * T, di mana T adalah jumlah sampel kelas minoritas. |