Bagikan melalui


Pisahkan Data menggunakan Recommender Split

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.

Artikel ini menjelaskan cara menggunakan opsi Recommender Split dalam modul Split Data Pembelajaran Mesin Studio (klasik). Opsi ini berguna saat Anda perlu menyiapkan himpunan data pelatihan dan pengujian untuk digunakan dengan model rekomendasi. Model-model ini tidak hanya memerlukan format tertentu, tetapi juga bisa sangat sulit untuk membagi peringkat, pengguna, dan item secara seimbang tanpa alat khusus.

Catatan

Berlaku untuk: Pembelajaran Mesin Studio (klasik) saja

Modul drag-and-drop serupa tersedia di Azure Machine Learning desainer.

Opsi Recommender split membuat proses ini lebih mudah dengan meminta jenis model rekomendasi yang anda kerjakan: misalnya, apakah Anda merekomendasikan item, menyarankan peringkat, atau menemukan pengguna terkait? Kemudian membagi dataset dengan kriteria yang Anda tentukan, seperti cara menangani pengguna dingin atau item dingin.

Saat Anda membagi himpunan data, modul mengembalikan dua himpunan data, satu ditujukan untuk pelatihan dan yang lainnya untuk pengujian atau evaluasi model. Jika himpunan data input berisi data tambahan per instans (seperti peringkat), data tersebut disimpan dalam output.

Untuk informasi umum tentang partisi data untuk eksperimen pembelajaran mesin, lihat

Opsi lain dalam modul Split Data mendukung berbagai cara untuk membagi data:

Membagi himpunan data yang digunakan oleh model rekomendasi

Opsi Recommender Split disediakan khusus untuk data yang digunakan untuk melatih sistem rekomendasi.

Sebelum Anda menggunakan opsi ini, pastikan data Anda dalam format yang kompatibel. Splitter recommender bekerja dengan asumsi himpunan data hanya terdiri dari pasangan item pengguna atau peringkat item pengguna tiga kali lipat. Untuk detailnya, lihat Memasukkan persyaratan data dalam artikel ini.

  1. Tambahkan modul Pisahkan Data ke eksperimen Anda, dan hubungkan sebagai input ke himpunan data yang ingin Anda pisahkan.

  2. Untuk mode Pemisahan, pilih Bagi recommender.

  3. Atur opsi berikut untuk mengontrol bagaimana nilai dibagi. Tentukan persentase yang direpresentasikan sebagai angka antara 0 dan 1.

    • Fraksi pelatihan hanya pengguna: Tentukan fraksi pengguna yang harus ditetapkan hanya ke kumpulan data pelatihan. Ini berarti baris tidak akan pernah digunakan untuk menguji model.

    • Fraksi peringkat pengguna tes untuk pelatihan: Tentukan bahwa beberapa bagian dari peringkat pengguna yang telah Anda kumpulkan dapat digunakan untuk pelatihan.

    • Sebagian kecil dari pengguna dingin: Pengguna dingin adalah pengguna yang belum pernah ditemui sistem sebelumnya. Biasanya, karena sistem tidak memiliki informasi tentang pengguna ini, mereka berharga untuk pelatihan, tetapi prediksi mungkin kurang akurat.

    • Sebagian kecil dari item dingin: Item dingin adalah item yang belum pernah ditemui sistem sebelumnya. Karena sistem tidak memiliki informasi tentang barang-barang ini, mereka berharga untuk pelatihan, tetapi prediksi mungkin kurang akurat.

    • Sebagian kecil pengguna yang diabaikan: Opsi ini memungkinkan rekomendasi untuk mengabaikan beberapa pengguna, yang memungkinkan Anda melatih model pada subset data. Ini mungkin berguna untuk alasan kinerja. Anda menentukan persentase pengguna yang harus diabaikan.

    • Fraksi item yang diabaikan: Splitter recommender dapat mengabaikan beberapa item dan melatih model pada subset data. Ini mungkin berguna untuk alasan kinerja. Anda menentukan persentase item yang akan diabaikan.

  4. Hapus item dingin yang terkadang diproduksi: Opsi ini biasanya diatur ke nol, untuk memastikan bahwa semua entitas dalam set pengujian disertakan dalam set pelatihan.

    Item dikatakan "kadang-kadang dingin" jika hanya ditutupi oleh set tes dan itu tidak secara eksplisit dipilih sebagai dingin. Item tersebut dapat dihasilkan dengan langkah-langkah (4) dan (6) dalam algoritma yang dijelaskan dalam bagian Bagaimana Data Recommender Dibagi .

  5. Benih acak untuk recommender: Tentukan nilai benih jika Anda ingin membagi data dengan cara yang sama setiap saat. Jika tidak, secara default data input dibagi secara acak, menggunakan nilai clock sistem sebagai benih.

  6. Jalankan eksperimen.

Contoh

Untuk contoh cara membagi satu set peringkat dan fitur yang digunakan untuk melatih atau menguji model rekomendasi, kami sarankan Anda meninjau panduan yang disediakan dengan eksperimen sampel ini di Galeri AI Azure: Rekomendasi Film

Catatan teknis

Bagian ini berisi detail implementasi, tips, dan jawaban atas pertanyaan yang sering diajukan.

Persyaratan untuk input data

Splitter recommender bekerja dengan asumsi himpunan data hanya terdiri dari pasangan item pengguna atau peringkat item pengguna tiga kali lipat. Oleh karena itu, modul Split Data tidak dapat bekerja pada himpunan data yang memiliki lebih dari tiga kolom, untuk menghindari kebingungan dengan data tipe fitur.

Jika himpunan data Anda berisi terlalu banyak kolom, Anda mungkin mendapatkan kesalahan ini:

Kesalahan 0022: Jumlah kolom yang dipilih dalam himpunan data input tidak sama dengan x

Sebagai solusinya, Anda dapat menggunakan Pilih Kolom dalam Himpunan Data untuk menghapus beberapa kolom. Anda selalu dapat menambahkan kolom kembali nanti, dengan menggunakan modul Tambahkan Kolom .

Atau, jika himpunan data Anda memiliki banyak fitur yang ingin Anda gunakan dalam model, bagi himpunan data menggunakan opsi yang berbeda, dan latih model menggunakan Train Model daripada Train Matchbox Recommender.

Untuk informasi terperinci tentang format data yang didukung, lihat Train Matchbox Recommender.

Tips penggunaan

  • Kesalahan dinaikkan jika himpunan data tidak berisi setidaknya dua baris.

  • Jika Anda menentukan angka sebagai persentase, atau jika Anda menggunakan string yang berisi karakter "%", nilai tersebut ditafsirkan sebagai persentase.

    Semua nilai persentase harus dalam kisaran (0, 100), tidak termasuk nilai 0 dan 100.

  • Jika Anda menentukan angka atau persentase yang merupakan angka titik mengambang kurang dari satu, dan Anda tidak menggunakan simbol persen (%), angka tersebut ditafsirkan sebagai nilai proporsional.

Detail implementasi

Algoritma berikut digunakan saat membagi data menjadi set pelatihan dan pengujian untuk digunakan dengan model rekomendasi:

  1. Sebagian kecil item yang diabaikan yang diminta dihapus dengan semua pengamatan terkait.

  2. Fraksi item dingin yang diminta dipindahkan ke set tes dengan semua pengamatan terkait.

  3. Sebagian kecil pengguna yang diabaikan yang tersisa setelah dua langkah pertama dihapus dengan semua pengamatan terkait.

  4. Sebagian kecil pengguna dingin yang diminta yang tersisa setelah dua langkah pertama dipindahkan ke set tes dengan semua pengamatan terkait.

  5. Sebagian kecil dari pengguna khusus pelatihan yang tersisa setelah dua langkah pertama dipindahkan ke pelatihan yang ditetapkan dengan semua pengamatan terkait.

  6. Untuk setiap pengguna yang tersisa setelah semua langkah sebelumnya, sebagian kecil yang diminta dari peringkat pengguna tes untuk pelatihan dipindahkan ke set pelatihan, dan sisanya dipindahkan ke set tes.

    Setidaknya satu pengamatan selalu dipindahkan ke set pelatihan untuk setiap pengguna.

  7. Jika diminta, instans yang terkait dengan item dingin yang kadang-kadang diproduksi dapat dihapus dari set pengujian.

    Item dikatakan "kadang-kadang dingin" jika hanya ditutupi oleh set tes, dan itu tidak secara eksplisit dipilih sebagai dingin. Barang-barang tersebut dapat diproduksi dengan langkah-langkah (4) dan (6).

    Penggunaan opsi ini yang diantisipasi adalah bahwa jumlah pengguna dan item dingin yang diminta diatur ke nol. Ini memastikan bahwa semua entitas dalam set pengujian disertakan dalam set pelatihan.

Lihat juga

PisahkanDataPartition dan Split