次の方法で共有


LinearSvmTrainer クラス

定義

IEstimator<TTransformer>線形 SVM でトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

public sealed class LinearSvmTrainer : Microsoft.ML.Trainers.OnlineLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type LinearSvmTrainer = class
    inherit OnlineLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class LinearSvmTrainer
Inherits OnlineLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
継承

注釈

このトレーナーを作成するには、 LinearSvm または LinearSvm(Options)を使用します

入力列と出力列

入力ラベル列データは Boolean にする必要があります。 入力特徴列データは、既知のサイズの Singleベクターである必要があります。 このトレーナーからは、以下の列が出力されます。

出力列の名前 列の型 説明
Score Single モデルによって計算された無制限のスコア。
PredictedLabel Boolean スコアの符号に基づく予測ラベル。 負のスコアは false にマップされ、正のスコアは true にマップされます。

トレーナーの特性

機械学習タスク 二項分類
正規化は必要ですか? はい
キャッシュは必要ですか? いいえ
Microsoft.ML に加えて必要な NuGet なし
ONNX にエクスポート可能 はい

トレーニング アルゴリズムの詳細

線形 SVM は、 SVM の問題を解決することによって、二項分類用の特徴空間でハイパープレーンを検出するアルゴリズムを実装します。 たとえば、特徴値が $f_0、f_1,..., f_{D-1}$ の場合、ポイントがどの辺にあるかを決定することで予測が行われます。 これは、$\sum_{i = 0}^{D-1} \left(w_i * f_i \right) + b$ の符号と同じです。ここで、$w_0、w_1,..., w_{D-1}$ はアルゴリズムによって計算される重みであり、$b$ はアルゴリズムによって計算されるバイアスです。

線形 SVM は、確率的勾配降下ステップと投影ステップを交互に行う PEGASOS メソッドを実装しています。この方法は、Shalev-Shwartz、Singer、Srebro によって この論文 で紹介されています。

使用例へのリンクについては、「参照」セクションを参照してください。

フィールド

FeatureColumn

トレーナーが期待する特徴列。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

トレーナーが期待するラベル列。 できます null。これは、ラベルがトレーニングに使用されていないことを示します。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

トレーナーが期待する重み列。 できます。 nullこれは、トレーニングに重量が使用されていないことを示します。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)

プロパティ

Info

IEstimator<TTransformer>線形 SVM でトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

(継承元 OnlineLinearTrainer<TTransformer,TModel>)

メソッド

Fit(IDataView, LinearModelParameters)

既にトレーニング済modelParametersみのを使用して、トレーニングOnlineLinearTrainer<TTransformer,TModel>を続行し、を返します。ITransformer

(継承元 OnlineLinearTrainer<TTransformer,TModel>)
Fit(IDataView)

をトレーニングして返します ITransformer

(継承元 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

IEstimator<TTransformer>線形 SVM でトレーニングされた線形二項分類モデルを使用してターゲットを予測する。

(継承元 TrainerEstimatorBase<TTransformer,TModel>)

拡張メソッド

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

エスティメーター チェーンに 'キャッシュ チェックポイント' を追加します。 これにより、ダウンストリームエスティメーターがキャッシュされたデータに対してトレーニングされます。 複数のデータを受け取るトレーナーが渡す前にキャッシュ チェックポイントを設定すると便利です。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

エスティメーターを指定すると、デリゲートを 1 回 Fit(IDataView) 呼び出すラップ オブジェクトが呼び出されます。 多くの場合、エスティメーターが適合した内容に関する情報を返すことが重要です。そのため Fit(IDataView) 、メソッドは一般的 ITransformerなオブジェクトではなく、具体的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> 多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得するエスティメーターがこのチェーンのどこかに埋もれる場所を介して EstimatorChain<TLastTransformer> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください