Seimbangkan data Anda untuk pembelajaran mesin dengan Amazon SageMaker Data Wrangler

Node Sumber: 1600102

Pengatur Data Amazon SageMaker adalah kemampuan baru dari Amazon SageMaker yang mempercepat data scientist dan engineer dalam menyiapkan data untuk aplikasi machine learning (ML) dengan menggunakan antarmuka visual. Ini berisi lebih dari 300 transformasi data bawaan sehingga Anda dapat dengan cepat menormalkan, mengubah, dan menggabungkan fitur tanpa harus menulis kode apa pun.

Hari ini, kami dengan senang hati mengumumkan transformasi baru yang memungkinkan Anda menyeimbangkan set data dengan mudah dan efektif untuk pelatihan model ML. Kami menunjukkan bagaimana transformasi ini bekerja di pos ini.

Operator penyeimbangan baru

Operator penyeimbang yang baru diumumkan dikelompokkan dalam data saldo mengubah jenis di TAMBAHKAN TRANSFORMASI pane

Saat ini, operator transformasi hanya mendukung masalah klasifikasi biner. Dalam masalah klasifikasi biner, classifier bertugas mengklasifikasikan setiap sampel ke salah satu dari dua kelas. Ketika jumlah sampel di kelas mayoritas (lebih besar) jauh lebih besar daripada jumlah sampel di kelas minoritas (lebih kecil), dataset dianggap tidak seimbang. Kemiringan ini menantang untuk algoritma dan pengklasifikasi ML karena proses pelatihan cenderung bias terhadap kelas mayoritas.

Skema penyeimbangan, yang menambah data agar lebih seimbang sebelum melatih pengklasifikasi, diusulkan untuk mengatasi tantangan ini. Metode penyeimbangan yang paling sederhana adalah oversampling kelas minoritas dengan menduplikasi sampel minoritas atau undersampling kelas mayoritas dengan menghilangkan sampel mayoritas. Gagasan menambahkan sampel minoritas sintetis ke data tabular pertama kali diusulkan dalam Teknik Oversampling Minoritas Sintetis (SMOTE), di mana sampel minoritas sintetis dibuat dengan menginterpolasi pasangan titik minoritas asli. SMOTE dan skema penyeimbangan lainnya dipelajari secara ekstensif secara empiris dan terbukti meningkatkan kinerja prediksi dalam berbagai skenario, sesuai publikasi Untuk SMOTE, atau tidak untuk SMOTE.

Data Wrangler sekarang mendukung operator penyeimbangan berikut sebagai bagian dari data saldo mengubah:

  • Oversampler acak – Menggandakan sampel minoritas secara acak
  • Undersampler acak – Hapus sampel mayoritas secara acak
  • HALUS – Hasilkan sampel minoritas sintetik dengan menginterpolasi sampel minoritas nyata

Sekarang mari kita bahas operator penyeimbang yang berbeda secara rinci.

sampel berlebih acak

Oversampling acak mencakup pemilihan contoh acak dari kelas minoritas dengan penggantian dan melengkapi data pelatihan dengan banyak salinan dari instance ini. Oleh karena itu, mungkin saja satu instance dapat dipilih beberapa kali. Dengan Acak sampel berlebih transform type, Data Wrangler secara otomatis melakukan oversampling kelas minoritas untuk Anda dengan menduplikasi sampel minoritas di dataset Anda.

sampel bawah acak

Undersampling acak adalah kebalikan dari oversampling acak. Metode ini berusaha untuk memilih dan menghapus sampel secara acak dari kelas mayoritas, akibatnya mengurangi jumlah contoh di kelas mayoritas dalam data yang ditransformasikan. Itu Acak di bawah sampel transform type memungkinkan Data Wrangler secara otomatis mengambil sampel kelas mayoritas untuk Anda dengan menghapus sampel mayoritas di kumpulan data Anda.

HALUS

Dalam SMOTE, sampel minoritas sintetik ditambahkan ke data untuk mencapai rasio yang diinginkan antara sampel mayoritas dan minoritas. Sampel sintetik dihasilkan oleh interpolasi pasangan titik minoritas asli. Itu HALUS transform mendukung penyeimbangan kumpulan data termasuk fitur numerik dan non-numerik. Fitur numerik diinterpolasi dengan rata-rata tertimbang. Namun, Anda tidak dapat menerapkan interpolasi rata-rata tertimbang ke fitur non-numerik—rata-rata tidak mungkin dilakukan “dog” dan “cat” Misalnya. Sebagai gantinya, fitur non-numerik disalin dari salah satu sampel minoritas asli menurut bobot rata-rata.

Misalnya, pertimbangkan dua sampel, A dan B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

Asumsikan sampel diinterpolasi dengan bobot 0.3 untuk sampel A dan 0.7 untuk sampel B. Oleh karena itu, bidang numerik dirata-ratakan dengan bobot ini untuk menghasilkan masing-masing 0.3 dan 0.6. Bidang selanjutnya diisi dengan “dog” dengan probabilitas 0.3 dan “cow” dengan probabilitas 0.7. Demikian pula, yang berikutnya sama “carnivore” dengan probabilitas 0.3 dan “herbivore” dengan probabilitas 0.7. Penyalinan acak dilakukan secara independen untuk setiap fitur, jadi contoh C di bawah ini adalah hasil yang memungkinkan:

C = [0.3, 0.6, "dog", "herbivore"]

Contoh ini menunjukkan bagaimana proses interpolasi dapat menghasilkan sampel sintetik yang tidak realistis, seperti anjing herbivora. Ini lebih sering terjadi pada fitur kategorikal tetapi juga dapat terjadi pada fitur numerik. Meskipun beberapa sampel sintetik mungkin tidak realistis, SMOTE masih dapat meningkatkan performa klasifikasi.

Untuk menghasilkan sampel yang lebih realistis secara heuristik, SMOTE hanya menginterpolasi pasangan yang dekat dalam ruang fitur. Secara teknis, setiap sampel diinterpolasi hanya dengan k tetangga terdekatnya, di mana nilai umum untuk k adalah 5. Dalam penerapan SMOTE kami, hanya fitur numerik yang digunakan untuk menghitung jarak antar titik (jarak digunakan untuk menentukan lingkungan sekitar). masing-masing sampel). Menormalkan fitur numerik sebelum menghitung jarak adalah hal yang umum. Perhatikan bahwa fitur numerik dinormalisasi hanya untuk tujuan penghitungan jarak; fitur interpolasi yang dihasilkan tidak dinormalisasi.

Sekarang mari kita menyeimbangkan Kumpulan Data Dewasa (juga dikenal sebagai kumpulan data Sensus Pendapatan) menggunakan transformasi SMOTE bawaan yang disediakan oleh Data Wrangler. Kumpulan data multivariat ini mencakup enam fitur numerik dan delapan fitur string. Tujuan dari kumpulan data adalah tugas klasifikasi biner untuk memprediksi apakah pendapatan seseorang melebihi $50,000 per tahun atau tidak berdasarkan data sensus.

Anda juga dapat melihat distribusi kelas secara visual dengan membuat histogram menggunakan tipe analisis histogram di Data Wrangler. Distribusi target tidak seimbang dan rasio catatan dengan >50K untuk <=50K adalah sekitar 1:4.

Kita dapat menyeimbangkan data ini menggunakan HALUS operator ditemukan di bawah Data Saldo transform di Data Wrangler dengan langkah-langkah berikut:

  1. Pilih income sebagai kolom tujuan.

Kami ingin distribusi kolom ini lebih berimbang.

  1. Atur rasio yang diinginkan ke 0.66.

Oleh karena itu, rasio antara jumlah sampel minoritas dan mayoritas adalah 2:3 (bukan rasio mentah 1:4).

  1. Pilih HALUS sebagai transformasi untuk digunakan.
  2. Biarkan nilai default untuk Jumlah tetangga untuk rata-rata dan apakah atau tidak untuk normalisasi.
  3. Pilih Preview untuk mendapatkan pratinjau transformasi yang diterapkan dan memilih Add untuk menambahkan transformasi ke aliran data Anda.

Sekarang kita dapat membuat histogram baru yang mirip dengan apa yang kita lakukan sebelumnya untuk melihat distribusi kelas yang disesuaikan kembali. Gambar berikut menunjukkan histogram dari income kolom setelah menyeimbangkan dataset. Distribusi sampel sekarang 3:2, seperti yang dimaksudkan.

Kami sekarang dapat mengekspor data seimbang baru ini dan melatih pengklasifikasi di atasnya, yang dapat menghasilkan kualitas prediksi yang unggul.

Kesimpulan

Dalam posting ini, kami mendemonstrasikan cara menyeimbangkan data klasifikasi biner yang tidak seimbang menggunakan Data Wrangler. Data Wrangler menawarkan tiga operator penyeimbangan: undersampling acak, oversampling acak, dan SMOTE untuk menyeimbangkan ulang data dalam kumpulan data Anda yang tidak seimbang. Ketiga metode yang ditawarkan oleh Data Wrangler mendukung data multi-modal termasuk fitur numerik dan non-numerik.

Sebagai langkah selanjutnya, kami sarankan Anda mereplikasi contoh di postingan ini di aliran data Data Wrangler Anda untuk melihat apa yang kita diskusikan dalam tindakan. Jika Anda baru mengenal Data Wrangler atau Studio SageMaker, mengacu pada Memulai dengan Data Wrangler. Jika ada pertanyaan terkait postingan ini, silahkan tambahkan di kolom komentar.


Tentang Penulis

Yotam Elor adalah Ilmuwan Terapan Senior di Amazon SageMaker. Minat penelitiannya adalah dalam pembelajaran mesin, terutama untuk data tabular.

Arunprasath Shankar adalah Arsitek Solusi Spesialis Kecerdasan Buatan dan Pembelajaran Mesin (AI / ML) dengan AWS, membantu pelanggan global menskalakan solusi AI mereka secara efektif dan efisien di cloud. Di waktu senggangnya, Arun suka menonton film sci-fi dan mendengarkan musik klasik.

Sumber: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Stempel Waktu:

Lebih dari Blog Pembelajaran Mesin AWS