AveragedPerceptronTrainer Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Das IEstimator<TTransformer> Ziel mit einem linearen binären Klassifikationsmodell, das mit dem durchschnittlichen Perceptron trainiert wurde.
public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
- Vererbung
Hinweise
Um diesen Trainer zu erstellen, verwenden Sie "AveragedPerceptron " oder "AveragedPerceptron(Options)".
Eingabe- und Ausgabespalten
Die Daten in der Spalte für die Eingabezeichnung müssen Boolean sein. Die Spaltendaten der Eingabefeatures müssen ein Vektor mit bekannter Größe sein Single. Der Trainer gibt folgende Spalten aus:
| Name der Ausgabespalte | Spaltentyp | Description |
|---|---|---|
Score |
Single | Die ungebundene Bewertung, die vom Modell berechnet wurde. |
PredictedLabel |
Boolean | Der vorhergesagte Bezeichnung, basierend auf dem Abzeichnen der Bewertung. Eine negative Bewertung wird false und eine positive Bewertung wird true zugeordnet. |
Trainermerkmale
| Machine Learning-Aufgabe | Binäre Klassifizierung |
| Ist normalisierung erforderlich? | Yes |
| Ist zwischenspeichern erforderlich? | No |
| Erforderliches NuGet zusätzlich zu Microsoft.ML | Nichts |
| Exportierbar in ONNX | Yes |
Details des Schulungsalgorithmus
Das Perceptron ist ein Klassifizierungsalgorithmus, der seine Vorhersagen durch Die Suche nach einem getrennten Hyperplane macht. Mit Featurewerten $f_0, f_1,..., f_{D-1}$, wird beispielsweise die Vorhersage angegeben, indem bestimmt wird, auf welche Seite des Hyperplans der Punkt fällt. Das entspricht dem Vorzeichen der gewichteten Summe der Feautures, d. h. $\sum_{i = 0}^{D-1} (w_i * f_i) + b$, wobei $w_0, w_1,..., w_{D-1}$ die Gewichtungen sind, die vom Algorithmus berechnet werden, und $b$ ist die vom Algorithmus berechnete Verzerrung.
Das Perceptron ist ein Onlinealgorithmus, was bedeutet, dass es die Instanzen im Trainingssatz einzeln verarbeitet. Sie beginnt mit einer Reihe von Anfangsgewichten (null, zufällig oder initialisiert von einem vorherigen Lernenden). Anschließend wird für jedes Beispiel im Schulungssatz die gewichtete Summe der Features berechnet. Wenn dieser Wert dasselbe Vorzeichen wie die Beschriftung des aktuellen Beispiels aufweist, bleiben die Gewichtungen gleich. Wenn sie entgegengesetzte Zeichen aufweisen, wird der Gewichtungsvektor aktualisiert, indem entweder addiert oder subtrahiert wird (wenn die Beschriftung positiv oder negativ ist) den Featurevektor des aktuellen Beispiels multipliziert mit einem Faktor 0 < a <= 1, der als Lernrate bezeichnet wird. In einer Generalisierung dieses Algorithmus werden die Gewichtungen aktualisiert, indem der Featurevektor mit der Lernrate multipliziert wird, und durch den Farbverlauf einiger Verlustfunktion (im oben beschriebenen Fall ist der Verlust hinge-Loss, dessen Farbverlauf 1 ist, wenn er ungleich Null ist).
In "Averaged Perceptron" (auch als perceptron bezeichnet) wird für jede Iteration, d. h. durch die Trainingsdaten, ein Gewichtsvektor berechnet, wie oben erläutert. Die endgültige Vorhersage wird dann durch Durchschnittliches Berechnen der gewichteten Summe aus jedem Gewichtungsvektor berechnet und das Vorzeichen des Ergebnisses betrachtet.
Weitere Informationen finden Sie im Wikipedia-Eintrag für perceptron oder Large Margin Classification using the Perceptron Algorithm.
Im Abschnitt "Siehe auch" finden Sie Links zu Verwendungsbeispielen.
Felder
| Name | Beschreibung |
|---|---|
| FeatureColumn |
Die Featurespalte, die der Trainer erwartet. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| LabelColumn |
Die Bezeichnungsspalte, die der Trainer erwartet. Dies kann sein |
| WeightColumn |
Die Gewichtsspalte, die der Trainer erwartet. Dies kann sein |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Info |
Das IEstimator<TTransformer> Ziel mit einem linearen binären Klassifikationsmodell, das mit dem durchschnittlichen Perceptron trainiert wurde. (Geerbt von OnlineLinearTrainer<TTransformer,TModel>) |
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView, LinearModelParameters) |
Setzt die Schulung einer OnlineLinearTrainer<TTransformer,TModel> bereits trainierten |
| Fit(IDataView) |
Züge und Gibt einen ITransformer. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
| GetOutputSchema(SchemaShape) |
Das IEstimator<TTransformer> Ziel mit einem linearen binären Klassifikationsmodell, das mit dem durchschnittlichen Perceptron trainiert wurde. (Geerbt von TrainerEstimatorBase<TTransformer,TModel>) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird. |