Bagikan melalui


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(Options).

Kolom Input dan Output

Data kolom label input harus Single. 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 diprediksi oleh model.

Karakteristik Pelatih

Tugas pembelajaran mesin Regresi
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 cembung. Algoritma dapat diskalakan karena merupakan algoritma pelatihan streaming seperti yang dijelaskan dalam makalah terbaik KDD.

Konvergensi ditimpa 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 minimalisasi risiko empiris (yaitu, ERM) untuk merumuskan masalah pengoptimalan yang dibangun pada 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 menggambarkan 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 mensyaratkan 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 norma L1 dan L2 memiliki efek dan penggunaan yang berbeda yang saling melengkapi dalam hal-hal tertentu.

Bersama dengan algoritma pengoptimalan yang diimplementasikan, 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 sparitas model terlatih tetapi masih dapat mencegah overfitting dengan menghindari nilai parameter besar. Terkadang, menggunakan L2-norma 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-norma menyiratkan bahwa distribusi semua parameter model adalah distribusi Laplace sementara L2-norma menyiratkan distribusi Gaussia 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 regresi menggunakan metode ascent koordinat ganda stochastic.

(Diperoleh dari StochasticTrainerBase<TTransformer,TModel>)

Metode

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

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 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> di mana estimator yang ingin kita dapatkan transformator dimakamkan di suatu tempat dalam rantai ini. Untuk skenario itu, kita dapat melalui metode ini melampirkan delegasi yang akan dipanggil setelah fit dipanggil.

Berlaku untuk

Lihat juga