Bagikan melalui


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