OneVersusAllTrainer Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
IEstimator<TTransformer> untuk melatih pengklasifikasi multi-kelas satu-versus-semua yang menggunakan pengklasifikasi biner yang ditentukan.
public sealed class OneVersusAllTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.OneVersusAllModelParameters>,Microsoft.ML.Trainers.OneVersusAllModelParameters>
type OneVersusAllTrainer = class
inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<OneVersusAllModelParameters>, OneVersusAllModelParameters>
Public NotInheritable Class OneVersusAllTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of OneVersusAllModelParameters), OneVersusAllModelParameters)
- Warisan
Keterangan
Untuk membuat pelatih ini, gunakan OneVersusAll.
Kolom Input dan Output
Data kolom label input harus berupa jenis kunci dan kolom fitur harus merupakan vektor berukuran yang diketahui dari Single.
Pelatih ini menghasilkan kolom berikut:
Nama Kolom Output | Jenis Kolom | Deskripsi |
---|---|---|
Score |
Vektor dari 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 adalah i. Perhatikan bahwa i adalah indeks berbasis nol. |
PredictedLabel |
jenis kunci | Indeks label yang diprediksi. Jika nilainya adalah i, label aktual akan menjadi kategori ke-i dalam jenis label input bernilai kunci. |
Karakteristik Pelatih
Tugas pembelajaran mesin | Klasifikasi multikelas |
Apakah normalisasi diperlukan? | Tergantung pada pengklasifikasi biner yang mendasarinya |
Apakah penembolokan diperlukan? | Ya |
NuGet yang diperlukan selain Microsoft.ML | Tidak ada |
Dapat diekspor ke ONNX | Ya |
Detail Algoritma Pelatihan
Dalam strategi satu-versus-semua (OVA), algoritma klasifikasi biner digunakan untuk melatih satu pengklasifikasi untuk setiap kelas, yang membedakan kelas tersebut dari semua kelas lainnya. Prediksi kemudian dilakukan dengan menjalankan pengklasifikasi biner ini dan memilih prediksi dengan skor keyakinan tertinggi. Algoritma ini dapat digunakan dengan salah satu pengklasifikasi biner di ML.NET. Beberapa pengklasifikasi biner sudah memiliki implementasi untuk masalah multi-kelas, sehingga pengguna dapat memilih salah satu tergantung pada konteksnya. Versi OVA dari pengklasifikasi biner, seperti membungkus LightGbmBinaryTrainer, bisa berbeda dari LightGbmMulticlassTrainer, yang mengembangkan pengklasifikasi multi-kelas secara langsung. Perhatikan bahwa bahkan jika pengklasifikasi menunjukkan bahwa pengklasifikasi tidak memerlukan penembolokan, OneVersusAll akan selalu meminta penembolokan, karena akan melakukan beberapa pass melalui himpunan data. Pelatih ini akan meminta normalisasi dari alur data jika pengklasifikasi menunjukkan akan mendapat manfaat darinya.
Ini dapat memungkinkan Anda untuk mengeksploitasi pelatih yang secara alami tidak memiliki opsi multikelas, misalnya, menggunakan FastTreeBinaryTrainer untuk menyelesaikan masalah multikelas. Secara bergantian, itu dapat memungkinkan ML.NET untuk memecahkan masalah "lebih sederhana" bahkan dalam kasus di mana pelatih memiliki opsi multikelas, tetapi menggunakannya secara langsung tidak praktis karena, biasanya, kendala memori. Misalnya, sementara regresi logistik multikelas adalah cara yang lebih berprinsip untuk menyelesaikan masalah multikelas, itu mengharuskan pelatih menyimpan lebih banyak keadaan menengah dalam bentuk riwayat L-BFGS untuk semua kelas secara bersamaan, bukan hanya satu per satu seperti yang akan diperlukan untuk model klasifikasi satu-versus-semua.
Periksa bagian Lihat Juga untuk tautan ke contoh penggunaan.
Properti
Info |
IEstimator<TTransformer> untuk melatih pengklasifikasi multi-kelas satu-versus-semua yang menggunakan pengklasifikasi biner yang ditentukan. (Diperoleh dari MetaMulticlassTrainer<TTransformer,TModel>) |
Metode
Fit(IDataView) |
MulticlassPredictionTransformer<TModel> Melatih model. |
GetOutputSchema(SchemaShape) |
Mendapatkan kolom output. (Diperoleh dari MetaMulticlassTrainer<TTransformer,TModel>) |
Metode Ekstensi
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Tambahkan 'titik pemeriksaan penembolokan' ke rantai estimator. Ini akan memastikan bahwa estimator hilir akan dilatih terhadap data cache. Sangat membantu untuk memiliki titik pemeriksaan penembolokan sebelum pelatih yang mengambil beberapa data berlalu. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Mengingat estimator, kembalikan objek pembungkus yang akan memanggil delegasi setelah Fit(IDataView) dipanggil. Seringkali penting bagi estimator untuk mengembalikan informasi tentang apa yang cocok, itulah sebabnya Fit(IDataView) metode mengembalikan objek yang ditik secara khusus, bukan hanya umum ITransformer. Namun, pada saat yang sama, IEstimator<TTransformer> sering dibentuk menjadi alur dengan banyak objek, jadi kita mungkin perlu membangun rantai estimator melalui EstimatorChain<TLastTransformer> tempat estimator yang ingin kita dapatkan transformator dikubur di suatu tempat dalam rantai ini. Untuk skenario itu, kita dapat melalui metode ini melampirkan delegasi yang akan dipanggil setelah pas dipanggil. |