Tugas pembelajaran mesin di ML.NET
Pembelajaran mesin tugas adalah jenis prediksi atau inferensi yang didasarkan pada keduanya:
- Masalah atau pertanyaan
- Data yang tersedia
Misalnya, tugas klasifikasi menetapkan data ke kategori, dan mengelompokkan data grup tugas sesuai dengan kesamaan.
Tugas pembelajaran mesin mengandalkan pola dalam data daripada diprogram secara eksplisit.
Artikel ini menjelaskan berbagai tugas pembelajaran mesin yang tersedia dalam ML.NET dan beberapa kasus penggunaan umum.
Setelah Anda memutuskan tugas mana yang berfungsi untuk skenario Anda, maka Anda perlu memilih algoritma terbaik untuk melatih model Anda. Algoritma yang tersedia tercantum di bagian untuk setiap tugas.
Tugas klasifikasi
Klasifikasi biner
Klasifikasi biner adalah tugas pembelajaran mesin
- Memahami sentimen komentar Twitter positif atau negatif.
- Mendiagnosis apakah pasien memiliki penyakit tertentu.
- Membuat keputusan untuk menandai email sebagai spam.
- Menentukan apakah foto berisi item tertentu, seperti anjing atau buah.
Untuk informasi selengkapnya, lihat artikel klasifikasi Biner
Pelatih klasifikasi biner
Anda dapat melatih model klasifikasi biner menggunakan algoritma berikut:
- AveragedPerceptronTrainer
- SdcaLogisticRegressionBinaryTrainer
- SdcaNonCalibratedBinaryTrainer
- SymbolicSgdLogisticRegressionBinaryTrainer
- LbfgsLogisticRegressionBinaryTrainer
- LightGbmBinaryTrainer
- FastTreeBinaryTrainer
- FastForestBinaryTrainer
- GamBinaryTrainer
- FieldAwareFactorizationMachineTrainer
- PriorTrainer
- LinearSvmTrainer
Input dan output klasifikasi biner
Untuk hasil terbaik dengan klasifikasi biner, data pelatihan harus seimbang (yaitu, jumlah data pelatihan positif dan negatif yang sama). Nilai yang hilang harus ditangani sebelum pelatihan.
Data kolom label input harus berupa Boolean. Data kolom fitur input harus menjadi vektor ukuran tetap Single.
Pelatih ini menghasilkan kolom berikut:
Nama Kolom Output | Tipe Kolom | Deskripsi |
---|---|---|
Score |
Single | Skor mentah yang dihitung model. |
PredictedLabel |
Boolean | Label yang diprediksi, berdasarkan tanda skor. Skor negatif dipetakan ke false dan skor positif dipetakan ke true . |
Klasifikasi multikelas
Klasifikasi multikelas adalah tugas pembelajaran mesin
- Mengategorikan penerbangan sebagai "awal", "tepat waktu", atau "terlambat".
- Memahami ulasan film sebagai "positif", "netral", atau "negatif".
- Mengategorikan ulasan hotel sebagai "lokasi", "harga", atau "kebersihan", misalnya.
Untuk informasi selengkapnya, lihat artikel klasifikasi multikelas
Nota
One-vs.-rest mengoptimalkan algoritme klasifikasi biner untuk bekerja dengan himpunan data multikelas.
Pelatih klasifikasi multikelas
Anda dapat melatih model klasifikasi multikelas menggunakan algoritma pelatihan berikut:
- TextClassificationTrainer
- LightGbmMulticlassTrainer
- SdcaMaximumEntropyMulticlassTrainer
- SdcaNonCalibratedMulticlassTrainer
- LbfgsMaximumEntropyMulticlassTrainer
- NaiveBayesMulticlassTrainer
- OneVersusAllTrainer
- PairwiseCouplingTrainer
Input dan output klasifikasi multikelas
Data kolom label input harus kunci jenis. Kolom fitur harus merupakan vektor ukuran tetap Single.
Pelatih ini menghasilkan yang berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Vektor Single | Skor semua kelas. Nilai yang lebih tinggi berarti probabilitas yang lebih tinggi untuk masuk ke kelas terkait. Jika elemen i -th memiliki nilai terbesar, indeks label yang diprediksi akan i . Perhatikan bahwa i adalah indeks berbasis nol. |
PredictedLabel |
kunci | Indeks label yang diprediksi. Jika nilainya i , label aktual akan menjadi kategori ke-i dalam jenis label input yang berupa nilai kunci. |
Klasifikasi teks
Klasifikasi teks adalah subkataan klasifikasi multikelas yang berkaitan khusus dengan teks mentah. Teks menimbulkan tantangan menarik karena Anda harus memperhitungkan konteks dan semantik di mana teks terjadi. Dengan demikian, mungkin sulit untuk mengodekan makna dan konteks.
Model pembelajaran mendalam telah muncul sebagai teknik yang menjanjikan untuk menyelesaikan masalah bahasa alami. Lebih khusus lagi, jenis jaringan neural yang dikenal sebagai transformator telah menjadi cara yang dominan untuk memecahkan masalah bahasa alami seperti klasifikasi teks, terjemahan, ringkasan, dan jawaban atas pertanyaan. Beberapa arsitektur transformator populer untuk tugas bahasa alami meliputi:
- Representasi encoder dua arah dari transformator (BERT)
- Pendekatan pra-pelatihan BERT yang dioptimalkan secara efektif (RoBERTa)
- Transformer generatif yang telah dilatih sebelumnya (GPT)
API klasifikasi teks ML.NET didukung oleh TorchSharp. TorchSharp adalah pustaka .NET yang menyediakan akses ke pustaka yang mendukung PyTorch. TorchSharp berisi blok penyusun untuk membangun jaringan saraf dari awal di .NET. ML.NET mengabstraksi beberapa kompleksitas TorchSharp ke tingkat skenario. Ini menggunakan versi yang telah dilatih sebelumnya dari model NAS-BERT dan menyempurnakannya dengan data Anda.
Untuk contoh klasifikasi teks, lihat Mulai menggunakan API klasifikasi teks.
Klasifikasi gambar
Klasifikasi gambar adalah tugas pembelajaran mesin
- Menentukan jenis anjing sebagai "Siberian Husky", "Golden Retriever", "Poodle", dll.
- Menentukan apakah produk manufaktur rusak atau tidak.
- Menentukan jenis bunga apa seperti "Mawar", "Bunga Matahari", dan lain-lain.
Pelatih klasifikasi gambar
Anda dapat melatih model klasifikasi gambar menggunakan algoritma pelatihan berikut:
Input dan output klasifikasi gambar
Data kolom label input harus jenis kunci. Kolom fitur harus merupakan vektor berukuran variabel Byte.
Pelatih ini menghasilkan kolom berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Single | Skor semua kelas. Nilai yang lebih tinggi berarti probabilitas yang lebih tinggi untuk masuk ke kelas terkait. Jika elemen i -th memiliki nilai terbesar, indeks label yang diprediksi akan i . (i adalah indeks berbasis nol.) |
PredictedLabel |
Kunci jenis | Indeks label yang diprediksikan. Jika nilainya i , label aktual akan menjadi kategori ke-i dalam jenis label input yang bernilai kunci. |
Regresi
Regresi adalah tugas pembelajaran mesin terawasi yang digunakan untuk memprediksi nilai label dari fitur-fitur yang terkait. Label dapat memiliki nilai nyata apa pun dan bukan dari sekumpulan nilai terbatas seperti dalam tugas klasifikasi. Algoritma regresi memodelkan dependensi label pada fitur terkaitnya untuk menentukan bagaimana label akan berubah karena nilai fitur bervariasi. Input algoritma regresi adalah sekumpulan contoh dengan label nilai yang diketahui. Keluaran algoritma regresi adalah fungsi, yang dapat Anda gunakan untuk memprediksi nilai label untuk set fitur input baru. Contoh skenario regresi meliputi:
- Memprediksi harga rumah berdasarkan atribut rumah seperti jumlah kamar tidur, lokasi, atau ukuran.
- Memprediksi harga saham di masa mendatang berdasarkan data historis dan tren pasar saat ini.
- Memprediksi penjualan produk berdasarkan anggaran iklan.
- Menemukan artikel terkait dalam publikasi (kesamaan kalimat).
Pelatih regresi
Anda dapat melatih model regresi menggunakan algoritma berikut:
- SentenceSimilarityTrainer
- LbfgsPoissonRegressionTrainer
- LightGbmRegressionTrainer
- SdcaRegressionTrainer
- OlsTrainer
- OnlineGradientDescentTrainer
- FastTreeRegressionTrainer
- FastTreeTweedieTrainer
- FastForestRegressionTrainer
- GamRegressionTrainer
Masukan dan keluaran regresi
Data pada kolom label input harus Single.
Pelatih untuk tugas ini menghasilkan yang berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Single | Skor mentah yang diprediksi oleh model |
Pengelompokan
Pengklusteran adalah tugas pembelajaran mesin yang tidak diawasi yang digunakan untuk mengelompokkan instans data ke dalam kluster yang berisi karakteristik serupa. Pengklusteran juga dapat digunakan untuk mengidentifikasi hubungan dalam himpunan data yang mungkin tidak Anda dapatkan secara logis dengan menelusuri atau pengamatan sederhana. Input dan output algoritma pengklusteran bergantung pada metodologi yang dipilih. Anda dapat mengambil pendekatan distribusi, sentroid, konektivitas, atau berbasis kepadatan. ML.NET saat ini mendukung pendekatan berbasis sentroid menggunakan pengklusteran K-Means. Contoh skenario pengklusteran meliputi:
- Memahami segmen tamu hotel berdasarkan kebiasaan dan karakteristik pilihan hotel.
- Mengidentifikasi segmen dan demografi pelanggan untuk membantu membangun kampanye iklan yang ditargetkan.
- Mengategorikan inventarisasi berdasarkan metrik manufaktur.
Pelatih pengklusteran
Anda dapat melatih model pengklusteran menggunakan algoritma berikut:
Pengklusteran input dan output
Data fitur input harus Single. Tidak ada label yang diperlukan.
Pelatih ini menghasilkan yang berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Vektor Single | Jarak titik data yang diberikan ke semua sentroid kluster. |
PredictedLabel |
kunci jenis | Indeks kluster terdekat yang diprediksi oleh model. |
Deteksi anomali
Tugas deteksi anomali membuat model deteksi anomali dengan menggunakan analisis komponen utama (PCA). Deteksi anomali berbasis PCA membantu Anda membangun model dalam skenario di mana mudah untuk mendapatkan data pelatihan dari satu kelas, seperti transaksi yang valid, tetapi sulit untuk mendapatkan sampel yang memadai dari anomali yang ditargetkan.
Teknik yang mapan dalam pembelajaran mesin, PCA sering digunakan dalam analisis data eksploratif karena mengungkapkan struktur dalam data dan menjelaskan varians dalam data. PCA bekerja dengan menganalisis data yang berisi beberapa variabel. Ini mencari korelasi di antara variabel dan menentukan kombinasi nilai yang paling baik menangkap perbedaan hasil. Nilai fitur gabungan ini digunakan untuk membuat ruang fitur yang lebih ringkas yang disebut komponen utama.
Deteksi anomali mencakup banyak tugas penting dalam pembelajaran mesin:
- Mengidentifikasi transaksi yang berpotensi penipuan.
- Pola pembelajaran yang menunjukkan bahwa intrusi jaringan telah terjadi.
- Menemukan kluster pasien yang abnormal.
- Memeriksa nilai yang dimasukkan ke dalam sistem.
Karena anomali adalah peristiwa langka menurut definisi, mungkin sulit untuk mengumpulkan sampel data yang representatif untuk digunakan untuk pemodelan. Algoritma yang termasuk dalam kategori ini telah dirancang khusus untuk mengatasi tantangan inti membangun dan melatih model dengan menggunakan himpunan data yang tidak seimbang.
Pelatih deteksi anomali
Anda dapat melatih model deteksi anomali menggunakan algoritma berikut:
Deteksi anomali: input dan output
Fitur input harus menjadi vektor berukuran tetap Single.
Pelatih ini menghasilkan yang berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Single | Skor non-negatif dan tidak terbatas yang dihitung oleh model deteksi anomali. |
PredictedLabel |
Boolean |
true jika input merupakan anomali atau false jika bukan. |
Peringkat
Sebuah tugas peringkat membangun sebuah peringkat dari sekumpulan contoh berlabel. Contoh set ini terdiri dari grup instans yang dapat dinilai dengan kriteria tertentu. Label peringkat adalah { 0, 1, 2, 3, 4 } untuk setiap instans. Ranker dilatih untuk memberi peringkat kelompok instans baru dengan skor yang tidak diketahui untuk masing-masing instans. pemelajar peringkat ML.NET berbasis pemeringkatan yang dipelajari mesin.
Pemeringkatan algoritma pelatihan
Anda dapat melatih model peringkat dengan algoritma berikut:
Memberi peringkat input dan output
Jenis data label input harus kunci jenis atau Single. Nilai label menentukan relevansi, di mana nilai yang lebih tinggi menunjukkan relevansi yang lebih tinggi. Jika label adalah kunci tipe jenis, maka indeks kunci merupakan nilai relevansi, di mana indeks terkecil merupakan yang paling tidak relevan. Jika label adalah Single, nilai yang lebih besar menunjukkan relevansi yang lebih tinggi.
Data fitur harus merupakan vektor dengan ukuran tetap
Pelatih ini menghasilkan yang berikut:
Nama Output | Jenis | Deskripsi |
---|---|---|
Score |
Single | Skor tidak terbatas yang dihitung oleh model untuk menentukan prediksi. |
Rekomendasi
Tugas rekomendasi memungkinkan pembuatan daftar produk atau layanan yang direkomendasikan. ML.NET menggunakan faktorisasi matriks (MF), sebuah algoritma pemfilteran kolaboratif untuk rekomendasi saat Anda memiliki data peringkat produk historis di katalog Anda. Misalnya, Anda memiliki data peringkat film historis untuk pengguna Anda dan ingin merekomendasikan film lain yang kemungkinan akan mereka tonton berikutnya.
Algoritma pelatihan rekomendasi
Anda dapat melatih model rekomendasi dengan algoritma berikut:
Peramalan
Tugas prakiraan menggunakan data rangkaian waktu sebelumnya untuk membuat prediksi tentang perilaku di masa mendatang. Skenario yang berlaku untuk prakiraan termasuk prakiraan cuaca, prediksi penjualan musiman, dan pemeliharaan prediktif.
Pelatih peramalan
Anda dapat melatih model prakiraan dengan algoritma berikut:
Deteksi objek
Deteksi objek adalah tugas pembelajaran mesin yang diawasi yang digunakan untuk memprediksi kelas (kategori) gambar tetapi juga memberikan kotak pembatas tempat kategori tersebut berada dalam gambar. Alih-alih mengklasifikasikan satu objek dalam gambar, deteksi objek dapat mendeteksi beberapa objek dalam gambar. Contoh deteksi objek meliputi:
- Mendeteksi mobil, tanda, atau orang pada gambar jalan.
- Mendeteksi cacat pada gambar produk.
- Mendeteksi area yang menjadi perhatian pada gambar X-Ray.
Pelatihan model deteksi objek saat ini hanya tersedia di Model Builder menggunakan Azure Machine Learning.