Bagikan melalui


SdcaLogisticRegressionBinaryTrainer Kelas

Definisi

IEstimator<TTransformer> untuk melatih model klasifikasi regresi logistik biner menggunakan metode ascent koordinat ganda stochastic. Model terlatih dikalibrasi dan dapat menghasilkan probabilitas dengan memberi makan nilai output fungsi linier ke PlattCalibrator.

public sealed class SdcaLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.SdcaBinaryTrainerBase<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type SdcaLogisticRegressionBinaryTrainer = class
    inherit SdcaBinaryTrainerBase<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class SdcaLogisticRegressionBinaryTrainer
Inherits SdcaBinaryTrainerBase(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
Warisan

Keterangan

Untuk membuat pelatih ini, gunakan SdcaLogisticRegression atau SdcaLogisticRegression(Options).

Kolom Input dan Output

Data kolom label input harus Boolean. Data kolom fitur input harus merupakan vektor berukuran besar yang diketahui dari Single.

Pelatih ini menghasilkan kolom berikut:

Nama Kolom Output Jenis Kolom Deskripsi
Score Single Skor tidak terikat yang dihitung oleh model.
PredictedLabel Boolean Label yang diprediksi, berdasarkan tanda skor. Skor negatif memetakan ke false dan skor positif memetakan ke true.
Probability Single Probabilitas dihitung dengan mengkalibrasi skor memiliki true sebagai label. Nilai probabilitas berada dalam rentang [0, 1].

Karakteristik Pelatih

Tugas pembelajaran mesin Klasifikasi biner
Apakah normalisasi diperlukan? Ya
Apakah penembolokan diperlukan? Tidak
NuGet yang diperlukan selain Microsoft.ML Tidak ada
Dapat diekspor ke ONNX Ya

Detail Algoritma Pelatihan

Pelatih ini didasarkan pada metode Stochastic Dual Coordinate Ascent (SDCA), teknik pengoptimalan canggih untuk fungsi objektif konveks. Algoritma dapat diskalakan karena ini adalah algoritma pelatihan streaming seperti yang dijelaskan dalam makalah terbaik KDD.

Konvergensi dijalani dengan secara berkala memberlakukan sinkronisasi antara variabel primal dan ganda dalam utas terpisah. Beberapa pilihan fungsi kerugian juga disediakan seperti kehilangan engsel dan kehilangan logistik. Tergantung pada kerugian yang digunakan, model terlatih dapat, misalnya, mendukung mesin vektor atau regresi logistik. Metode SDCA menggabungkan beberapa properti terbaik seperti kemampuan untuk melakukan pembelajaran streaming (tanpa menyesuaikan seluruh himpunan data ke dalam memori Anda), mencapai hasil yang wajar dengan beberapa pemindaian seluruh himpunan data (misalnya, lihat eksperimen dalam makalah ini), dan tidak menghabiskan komputasi pada nol dalam himpunan data jarang.

Perhatikan bahwa SDCA adalah algoritma pengoptimalan stochastic dan streaming. Hasilnya tergantung pada urutan data pelatihan karena toleransi berhenti tidak cukup ketat. Dalam pengoptimalan yang sangat cembung, solusi optimalnya unik dan oleh karena itu semua orang akhirnya mencapai tempat yang sama. Bahkan dalam kasus yang tidak sangat cembung, Anda akan mendapatkan solusi yang sama baiknya dari eksekusi hingga eksekusi. Untuk hasil yang dapat direproduksi, disarankan agar satu set 'Acak' ke False dan 'NumThreads' ke 1.

Kelas ini menggunakan minimisasi risiko empiris (yaitu, ERM) untuk merumuskan masalah pengoptimalan yang dibangun berdasarkan data yang dikumpulkan. Perhatikan bahwa risiko empiris biasanya diukur dengan menerapkan fungsi kerugian pada prediksi model pada titik data yang dikumpulkan. Jika data pelatihan tidak berisi poin data yang cukup (misalnya, untuk melatih model linier di ruang $n$-dimensi, kita memerlukan setidaknya $n$ poin data), overfitting dapat terjadi sehingga model yang dihasilkan oleh ERM pandai menjelaskan data pelatihan tetapi mungkin gagal memprediksi hasil yang benar dalam peristiwa yang tidak terlihat. Regularisasi adalah teknik umum untuk meringankan fenomena seperti itu dengan menghukum besarnya (biasanya diukur oleh fungsi norma) parameter model. Pelatih ini mendukung regularisasi jaring elastis, yang menghukut kombinasi linier L1-norma (LASSO), $|| \textbf{w}_c || _1$, dan L2-norm (ridge), $|| \textbf{w}_c || _2^2$ regularisasi untuk $c=1,\titik,m$. Regularisasi L1-norma dan L2-norma memiliki efek dan penggunaan yang berbeda yang saling melengkapi dalam hal-hal tertentu.

Bersama dengan algoritma pengoptimalan yang diterapkan, regularisasi L1-norm dapat meningkatkan sparitas bobot model, $\textbf{w}_1,\dots,\textbf{w}_m$. Untuk himpunan data dimensi tinggi dan jarang, jika pengguna dengan hati-hati memilih koefisien L1-norma, dimungkinkan untuk mencapai kualitas prediksi yang baik dengan model yang hanya memiliki beberapa bobot bukan nol (misalnya, 1% dari total bobot model) tanpa memengaruhi daya prediksinya. Sebaliknya, L2-norma tidak dapat meningkatkan sparsitas model terlatih tetapi masih dapat mencegah overfitting dengan menghindari nilai parameter besar. Terkadang, menggunakan L2-norm menyebabkan kualitas prediksi yang lebih baik, sehingga pengguna mungkin masih ingin mencobanya dan menyempurnakan koefisien L1-norma dan L2-norma. Perhatikan bahwa secara konseptual, menggunakan L1-norm menyiratkan bahwa distribusi semua parameter model adalah distribusi Laplace sementara L2-norma menyiratkan distribusi Gaussian untuk mereka.

Regularisasi agresif (yaitu, menetapkan koefisien besar ke istilah regularisasi L1-norma atau L2-norma) dapat membahayakan kapasitas prediktif dengan mengecualikan variabel penting dari model. Misalnya, koefisien L1-norma yang sangat besar dapat memaksa semua parameter menjadi nol dan menyebabkan model sepele. Oleh karena itu, memilih koefisien regularisasi yang tepat penting dalam praktiknya.

Untuk informasi selengkapnya, lihat:

Periksa bagian Lihat Juga untuk tautan ke contoh penggunaan.

Bidang

FeatureColumn

Kolom fitur yang diharapkan pelatih.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

Kolom label yang diharapkan pelatih. Dapat berupa null, yang menunjukkan bahwa label tidak digunakan untuk pelatihan.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

Kolom berat yang diharapkan pelatih. Dapat berupa null, yang menunjukkan bahwa berat tidak digunakan untuk pelatihan.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)

Properti

Info

IEstimator<TTransformer> untuk melatih model klasifikasi regresi logistik biner menggunakan metode ascent koordinat ganda stochastic. Model terlatih dikalibrasi dan dapat menghasilkan probabilitas dengan memberi makan nilai output fungsi linier ke PlattCalibrator.

(Diperoleh dari SdcaBinaryTrainerBase<TModelParameters>)

Metode

Fit(IDataView)

Melatih dan mengembalikan ITransformer.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer> untuk melatih model klasifikasi regresi logistik biner menggunakan metode ascent koordinat ganda stochastic. Model terlatih dikalibrasi dan dapat menghasilkan probabilitas dengan memberi makan nilai output fungsi linier ke PlattCalibrator.

(Diperoleh dari TrainerEstimatorBase<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