Cara memilih algoritma ML.NET
Untuk setiap tugas ML.NET, ada beberapa algoritma pelatihan yang dapat dipilih. Mana yang harus dipilih tergantung pada masalah yang coba Anda selesaikan, karakteristik data Anda, serta sumber daya komputasi dan penyimpanan yang Anda miliki. Penting untuk dicatat bahwa melatih model pembelajaran mesin adalah proses berulang. Anda mungkin perlu mencoba beberapa algoritma untuk menemukan algoritma yang paling sesuai.
Algoritma beroperasi pada fitur. Fitur adalah nilai numerik yang dihitung dari data input Anda. Ini adalah input optimal untuk algoritma pembelajaran mesin. Anda mengubah data input mentah Anda menjadi fitur menggunakan satu atau beberapa transformasi data. Misalnya, data teks diubah menjadi sekumpulan jumlah kata dan jumlah kombinasi kata. Setelah fitur diekstrak dari jenis data mentah menggunakan transformasi data, fitur tersebut disebut sebagai fitur. Misalnya, teks yang ditampilkan, atau data gambar yang ditampilkan.
Pelatih = Algoritma + Tugas
Algoritma adalah matematika yang dijalankan untuk menghasilkan model. Algoritma yang berbeda menghasilkan model dengan karakteristik yang berbeda.
Dengan ML.NET, algoritma yang sama dapat diterapkan ke tugas yang berbeda. Misalnya, Stochastic Dual Coordinate Ascent dapat digunakan untuk Klasifikasi Biner, Klasifikasi Multikelas, dan Regresi. Perbedaannya adalah bagaimana output algoritma ditafsirkan agar sesuai dengan tugas.
Untuk setiap kombinasi algoritma/tugas, ML.NET menyediakan komponen yang menjalankan algoritma pelatihan dan membuat interpretasi. Komponen-komponen ini disebut pelatih. Misalnya, SdcaRegressionTrainer menggunakan algoritma StochasticDualCoordinatedAscent yang diterapkan ke tugas Regresi .
Algoritma linier
Algoritma linier menghasilkan model yang menghitung skor dari kombinasi linier data input dan serangkaian bobot. Bobot adalah parameter model yang diperkirakan selama pelatihan.
Algoritma linier bekerja dengan baik untuk fitur yang dapat dipisahkan secara linier.
Sebelum berlatih dengan algoritma linier, fitur harus dinormalisasi. Ini mencegah satu fitur memiliki lebih banyak pengaruh atas hasilnya daripada yang lain.
Secara umum, algoritma linier dapat diskalakan, cepat, murah untuk dilatih, dan murah untuk diprediksi. Mereka menskalakan berdasarkan jumlah fitur dan kira-kira berdasarkan ukuran himpunan data pelatihan.
Algoritma linier membuat beberapa kali melewati data pelatihan. Jika himpunan data Anda sesuai dengan memori, maka menambahkan titik pemeriksaan cache ke alur ML.NET Anda sebelum menambahkan pelatih akan membuat pelatihan berjalan lebih cepat.
Rata-rata perceptron
Terbaik untuk klasifikasi teks.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
AveragedPerceptronTrainer | Klasifikasi biner | Ya |
Stochastic dual coordinated ascent
Penyetelan tidak diperlukan untuk performa default yang baik.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
SdcaLogisticRegressionBinaryTrainer | Klasifikasi biner | Ya |
SdcaNonCalibratedBinaryTrainer | Klasifikasi biner | Ya |
SdcaMaximumEntropyMulticlassTrainer | Klasifikasi multikelas | Ya |
SdcaNonCalibratedMulticlassTrainer | Klasifikasi multikelas | Ya |
SdcaRegressionTrainer | Regresi | Ya |
L-BFGS
Gunakan saat jumlah fitur besar. Menghasilkan statistik pelatihan regresi logistik, tetapi tidak menskalakan serta AveragedPerceptronTrainer.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
LbfgsLogisticRegressionBinaryTrainer | Klasifikasi biner | Ya |
LbfgsMaximumEntropyMulticlassTrainer | Klasifikasi multikelas | Ya |
LbfgsPoissonRegressionTrainer | Regresi | Ya |
Penurunan gradien stochastic simbolis
Pelatih klasifikasi biner linier tercepat dan paling akurat. Menskalakan dengan baik dengan jumlah prosesor.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
SymbolicSgdLogisticRegressionBinaryTrainer | Klasifikasi biner | Ya |
Penurunan gradien online
Menerapkan penurunan gradien stochastic standar (non-batch), dengan pilihan fungsi kehilangan, dan opsi untuk memperbarui vektor berat menggunakan rata-rata vektor yang terlihat dari waktu ke waktu.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
OnlineGradientDescentTrainer | Regresi | Ya |
Algoritma pohon keputusan
Algoritma pohon keputusan membuat model yang berisi serangkaian keputusan: secara efektif bagan alur melalui nilai data.
Fitur tidak perlu dipisahkan secara linier untuk menggunakan jenis algoritma ini. Dan fitur tidak perlu dinormalisasi, karena nilai individu dalam vektor fitur digunakan secara independen dalam proses keputusan.
Algoritma pohon keputusan umumnya sangat akurat.
Kecuali untuk Model Aditif Umum (GAM), model pohon dapat kurang menjelaskan ketika jumlah fitur besar.
Algoritma pohon keputusan mengambil lebih banyak sumber daya dan tidak menskalakan seperti halnya yang linier. Mereka berkinerja baik pada himpunan data yang dapat masuk ke dalam memori.
Pohon keputusan yang ditingkatkan adalah ansambel pohon kecil di mana setiap pohon menilai data input dan meneruskan skor ke pohon berikutnya untuk menghasilkan skor yang lebih baik, dan sebagainya, di mana setiap pohon dalam ansambel membaik pada sebelumnya.
Mesin yang didorong gradien ringan
Tercepat dan paling akurat dari pelatih pohon klasifikasi biner. Sangat dapat ditunjukkan.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
LightGbmBinaryTrainer | Klasifikasi biner | Ya |
LightGbmMulticlassTrainer | Klasifikasi multikelas | Ya |
LightGbmRegressionTrainer | Regresi | Ya |
LightGbmRankingTrainer | Peringkat teratas | No |
Pohon cepat
Gunakan untuk data gambar yang ditampilkan. Tahan terhadap data yang tidak seimbang. Sangat dapat ditunjukkan.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
FastTreeBinaryTrainer | Klasifikasi biner | Ya |
FastTreeRegressionTrainer | Regresi | Ya |
FastTreeTweedieTrainer | Regresi | Ya |
FastTreeRankingTrainer | Peringkat teratas | No |
Hutan cepat
Bekerja dengan baik dengan data yang berisik.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
FastForestBinaryTrainer | Klasifikasi biner | Ya |
FastForestRegressionTrainer | Regresi | Ya |
Model aditif umum (GAM)
Terbaik untuk masalah yang berkinerja baik dengan algoritma pohon tetapi di mana keterjelaskan adalah prioritas.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
GamBinaryTrainer | Klasifikasi biner | No |
GamRegressionTrainer | Regresi | No |
Faktorisasi matriks
Faktorisasi Matriks
Digunakan untuk pemfilteran kolaboratif dalam rekomendasi.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
MatrixFactorizationTrainer | Rekomendasi | No |
Mesin Faktorisasi Sadar Bidang
Terbaik untuk data kategoris jarang, dengan himpunan data besar.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
FieldAwareFactorizationMachineTrainer | Klasifikasi biner | No |
Algoritma meta
Pelatih ini membuat pelatih multikelas dari pelatih biner. Gunakan dengan AveragedPerceptronTrainer, , SymbolicSgdLogisticRegressionBinaryTrainerLbfgsLogisticRegressionBinaryTrainer, LightGbmBinaryTrainer, FastTreeBinaryTrainer, , GamBinaryTrainerFastForestBinaryTrainer.
Satu versus semua
Pengklasifikasi multikelas ini melatih satu pengklasifikasi biner untuk setiap kelas, yang membedakan kelas tersebut dari semua kelas lainnya. Dibatasi dalam skala dengan jumlah kelas yang akan dikategorikan.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
OneVersusAllTrainer | Klasifikasi multikelas | Ya |
Coupling berpasangan
Pengklasifikasi multikelas ini melatih algoritma klasifikasi biner pada setiap pasangan kelas. Dibatasi dalam skala dengan jumlah kelas, karena setiap kombinasi dari dua kelas harus dilatih.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
PairwiseCouplingTrainer | Klasifikasi multikelas | No |
K-Means
Digunakan untuk pengklusteran.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
KMeansTrainer | Pengklusteran | Ya |
Analisis komponen utama
Digunakan untuk deteksi anomali.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
RandomizedPcaTrainer | Deteksi anomali | No |
Naive Bayes
Gunakan algoritma klasifikasi multi-kelas ini saat fitur independen, dan himpunan data pelatihan kecil.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
NaiveBayesMulticlassTrainer | Klasifikasi multikelas | Ya |
Pelatih Sebelumnya
Gunakan algoritma klasifikasi biner ini untuk menggaris bawahi performa pelatih lain. Agar efektif, metrik pelatih lain harus lebih baik daripada pelatih sebelumnya.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
PriorTrainer | Klasifikasi biner | Ya |
Mesin vektor pendukung
Mesin vektor dukungan (SVM) adalah kelas model pembelajaran yang diawasi yang sangat populer dan diteliti dengan baik, yang dapat digunakan dalam tugas klasifikasi linier dan non-linier.
Penelitian terbaru telah berfokus pada cara untuk mengoptimalkan model ini untuk menskalakan secara efisien ke set pelatihan yang lebih besar.
SVM Linier
Memprediksi target menggunakan model klasifikasi biner linier yang dilatih melalui data berlabel boolean. Bergantian antara langkah-langkah penurunan gradien stochastic dan langkah-langkah proyeksi.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
LinearSvmTrainer | Klasifikasi biner | Ya |
SVM Mendalam Lokal
Memprediksi target menggunakan model klasifikasi biner non-linier. Mengurangi biaya waktu prediksi; biaya prediksi tumbuh secara logaritma dengan ukuran set pelatihan, daripada secara linier, dengan kerugian yang dapat ditoleransi dalam akurasi klasifikasi.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
LdSvmTrainer | Klasifikasi biner | Ya |
Kuadrat paling sedikit biasa
Kuadrat paling sedikit biasa (OLS) adalah salah satu teknik yang paling umum digunakan dalam regresi linier.
Kuadrat terkecil biasa mengacu pada fungsi kerugian, yang menghitung kesalahan sebagai jumlah kuadrat jarak dari nilai aktual ke garis yang diprediksi, dan sesuai dengan model dengan meminimalkan kesalahan kuadrat. Metode ini mengasumsikan hubungan linier yang kuat antara input dan variabel dependen.
Pelatih | Tugas | ONNX Dapat Diekspor |
---|---|---|
OlsTrainer | Regresi | Ya |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk