Bagikan melalui


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.

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

  1. Tambahkan modul SMOTE ke eksperimen Anda. Anda dapat menemukan modul di bawah modul Transformasi Data, dalam kategori manipulasi.

  2. 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.

  3. 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 .

  4. Modul SMOTE secara otomatis mengidentifikasi kelas minoritas di kolom label, dan kemudian mendapatkan semua contoh untuk kelas minoritas.

  5. 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.

  6. 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.
  7. 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.

  8. 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.

Lihat juga

Sampel dan Split
Daftar Modul A-Z