SdcaRegressionTrainer Kelas

Definisi

IEstimator<TTransformer> untuk melatih model regresi menggunakan metode ascent koordinat ganda stochastic.

public sealed class SdcaRegressionTrainer : Microsoft.ML.Trainers.SdcaTrainerBase<Microsoft.ML.Trainers.SdcaRegressionTrainer.Options,Microsoft.ML.Data.RegressionPredictionTransformer<Microsoft.ML.Trainers.LinearRegressionModelParameters>,Microsoft.ML.Trainers.LinearRegressionModelParameters>
type SdcaRegressionTrainer = class
    inherit SdcaTrainerBase<SdcaRegressionTrainer.Options, RegressionPredictionTransformer<LinearRegressionModelParameters>, LinearRegressionModelParameters>
Public NotInheritable Class SdcaRegressionTrainer
Inherits SdcaTrainerBase(Of SdcaRegressionTrainer.Options, RegressionPredictionTransformer(Of LinearRegressionModelParameters), LinearRegressionModelParameters)
Warisan

Keterangan

Untuk membuat pelatih ini, gunakan Sdca atau Sdca(Opsi).

Kolom Input dan Output

Data kolom label input harus berupa Single. Data kolom fitur input harus merupakan vektor berukuran dikenal dari Single.

Pelatih ini menghasilkan kolom berikut:

Nama Kolom Output Tipe Kolom Description
Score Single Skor tidak terbatas yang diprediksi oleh model.

Karakteristik Pelatih

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

Detail Algoritma Pelatihan

Pelatih ini didasarkan pada metode Stochastic Dual Coordinate Ascent (SDCA), teknik pengoptimalan canggih untuk fungsi tujuan konveks. Algoritma dapat diskalakan karena merupakan 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 kehilangan 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 yang 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 optimal unik dan oleh karena itu semua orang akhirnya mencapai tempat yang sama. Bahkan dalam kasus non-cembung yang kuat, Anda akan mendapatkan solusi yang sama baiknya dari dijalankan hingga dijalankan. 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 kehilangan 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 jelas. Regularisasi adalah teknik umum untuk meringankan fenomena seperti itu dengan menghukum besarnya (biasanya diukur oleh fungsi norma) parameter model. Pelatih ini mendukung regularisasi bersih elastis, yang mengharamkan kombinasi linier L1-norma (LASSO), $|| \textbf{w}_c ||_1$, dan L2-norm (punggung bukit), $|| \textbf{w}_c ||_2^2$ regularisasi untuk $c=1,\titik,m$. Regularisasi L1-norma dan L2-norma memiliki efek dan penggunaan yang berbeda yang melengkapi dalam hal-hal tertentu.

Bersama dengan algoritma pengoptimalan yang diimplementasikan, regularisasi L1-norm dapat meningkatkan sparitas bobot model, $\textbf{w}_1,\titik,\textbf{w}_m$. Untuk himpunan data dimensi tinggi dan jarang, jika pengguna memilih koefisien norma L1 dengan hati-hati, 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-norm tidak dapat meningkatkan sparitas model terlatih tetapi masih dapat mencegah overfitting dengan menghindari nilai parameter besar. Terkadang, menggunakan L2-norm mengarah pada 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

Nama Deskripsi
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

Nama Deskripsi
Info

IEstimator<TTransformer> untuk melatih model regresi menggunakan metode ascent koordinat ganda stochastic.

(Diperoleh dari StochasticTrainerBase<TTransformer,TModel>)

Metode

Nama Deskripsi
Fit(IDataView)

Melatih dan mengembalikan ITransformer.

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

IEstimator<TTransformer> untuk melatih model regresi menggunakan metode ascent koordinat ganda stochastic.

(Diperoleh dari TrainerEstimatorBase<TTransformer,TModel>)

Metode Ekstensi

Nama Deskripsi
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 lolos.

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 di ketik 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 cocok dipanggil.

Berlaku untuk

Lihat juga