Bagikan melalui


OneVersusAllTrainer Kelas

Definisi

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.

Berlaku untuk

Lihat juga