SGDClassifier#
- class sklearn.linear_model.SGDClassifier(loss='hinge', *, penalty='l2', alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, epsilon=0.1, n_jobs=None, random_state=None, learning_rate='optimal', eta0=0.01, power_t=0.5, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, class_weight=None, warm_start=False, average=False)[source]#
Lineare Klassifikatoren (SVM, logistische Regression, etc.) mit SGD-Training.
Dieser Schätzer implementiert regulierte lineare Modelle mit stochastischem Gradientenabstieg (SGD)-Lernen: der Gradient der Verlustfunktion wird stichprobenweise geschätzt und das Modell wird dabei mit einem abnehmenden Stärkeprofil (auch Lernrate genannt) aktualisiert. SGD ermöglicht Minibatch-Lernen (online/out-of-core) über die Methode
partial_fit. Für beste Ergebnisse bei Verwendung des Standard-Lernratenschemas sollte die Datensatzmittelwert Null und Einheitsvarianz aufweisen.Diese Implementierung arbeitet mit Daten, die als dichte oder spärliche Arrays von Fließkommawerten für die Merkmale dargestellt werden. Das angepasste Modell kann über den
loss-Parameter gesteuert werden; standardmäßig passt es einen linearen Support Vector Machine (SVM) an.Der Regularisierer ist eine Strafe, die zur Verlustfunktion hinzugefügt wird und die Modellparameter zum Nullvektor hin schrumpft, indem entweder die quadrierte Euklidische Norm L2 oder die absolute Norm L1 oder eine Kombination aus beidem (Elastic Net) verwendet wird. Wenn die Parameteraktualisierung aufgrund des Regularisierers den Wert 0.0 überschreitet, wird die Aktualisierung auf 0.0 abgeschnitten, um das Erlernen spärlicher Modelle zu ermöglichen und eine Online-Merkmalsauswahl zu erzielen.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- loss{‘hinge’, ‘log_loss’, ‘modified_huber’, ‘squared_hinge’, ‘perceptron’, ‘squared_error’, ‘huber’, ‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, default=’hinge’
Die zu verwendende Verlustfunktion.
‘hinge’ ergibt einen linearen SVM.
‘log_loss’ ergibt eine logistische Regression, einen probabilistischen Klassifikator.
‘modified_huber’ ist eine weitere glatte Verlustfunktion, die Toleranz gegenüber Ausreißern sowie Wahrscheinlichkeitsschätzungen bietet.
‘squared_hinge’ ist wie hinge, aber quadratisch bestraft.
‘perceptron’ ist die lineare Verlustfunktion, die vom Perceptron-Algorithmus verwendet wird.
Die anderen Verlustfunktionen, ‘squared_error’, ‘huber’, ‘epsilon_insensitive’ und ‘squared_epsilon_insensitive’, sind für Regression konzipiert, können aber auch für Klassifikation nützlich sein; siehe
SGDRegressorfür eine Beschreibung.
Weitere Details zu den Formeln der Verlustfunktionen finden Sie im Benutzerhandbuch, und eine Visualisierung der Verlustfunktionen finden Sie unter SGD: Konvexe Verlustfunktionen.
- penalty{‘l2’, ‘l1’, ‘elasticnet’, None}, default=’l2’
Die zu verwendende Strafe (auch Regularisierungsterm). Standardmäßig ‘l2’, was der Standardregularisierer für lineare SVM-Modelle ist. ‘l1’ und ‘elasticnet’ können Sparsity im Modell bewirken (Merkmalsauswahl), die mit ‘l2’ nicht erreichbar ist. Keine Strafe wird hinzugefügt, wenn auf
Nonegesetzt.Eine Visualisierung der Strafen finden Sie unter SGD: Strafen.
- alphafloat, default=0.0001
Konstante, die den Regularisierungsterm multipliziert. Je höher der Wert, desto stärker die Regularisierung. Wird auch zur Berechnung der Lernrate verwendet, wenn
learning_rateauf 'optimal' gesetzt ist. Werte müssen im Bereich[0.0, inf)liegen.- l1_ratiofloat, default=0.15
Der Elastic Net-Mischungsparameter, mit 0 <= l1_ratio <= 1. l1_ratio=0 entspricht der L2-Strafe, l1_ratio=1 der L1-Strafe. Wird nur verwendet, wenn
penalty'elasticnet' ist. Werte müssen im Bereich[0.0, 1.0]liegen oder könnenNonesein, wennpenaltynicht 'elasticnet' ist.Geändert in Version 1.7:
l1_ratiokannNonesein, wennpenaltynicht "elasticnet" ist.- fit_interceptbool, Standardwert=True
Ob der Achsenabschnitt geschätzt werden soll oder nicht. Wenn False, wird angenommen, dass die Daten bereits zentriert sind.
- max_iterint, default=1000
Die maximale Anzahl von Durchläufen über die Trainingsdaten (auch Epochen genannt). Beeinflusst nur das Verhalten der
fit-Methode und nicht derpartial_fit-Methode. Werte müssen im Bereich[1, inf)liegen.Hinzugefügt in Version 0.19.
- tolfloat oder None, default=1e-3
Das Stoppkriterium. Wenn es nicht None ist, stoppt das Training, wenn (loss > best_loss - tol) für
n_iter_no_changeaufeinanderfolgende Epochen. Die Konvergenz wird anhand des Trainingsverlusts oder des Validierungsverlusts überprüft, abhängig vom Parameterearly_stopping. Werte müssen im Bereich[0.0, inf)liegen.Hinzugefügt in Version 0.19.
- shufflebool, Standard=True
Ob die Trainingsdaten nach jeder Epoche gemischt werden sollen oder nicht.
- verboseint, default=0
Die Ausführlichkeitsstufe. Werte müssen im Bereich
[0, inf)liegen.- epsilonfloat, default=0.1
Epsilon in den epsilon-unempfindlichen Verlustfunktionen; nur wenn
loss'huber', 'epsilon_insensitive' oder 'squared_epsilon_insensitive' ist. Für 'huber' bestimmt es den Schwellenwert, ab dem es weniger wichtig wird, die Vorhersage genau zu treffen. Bei epsilon-unempfindlichen Funktionen werden Unterschiede zwischen der aktuellen Vorhersage und dem korrekten Label ignoriert, wenn sie kleiner als dieser Schwellenwert sind. Werte müssen im Bereich[0.0, inf)liegen.- n_jobsint, default=None
Die Anzahl der CPUs, die für die OVA-Berechnung (One Versus All, für Mehrklassenprobleme) verwendet werden sollen.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet, alle Prozessoren zu verwenden. Weitere Einzelheiten finden Sie im Glossar.- random_stateint, RandomState instance, default=None
Wird zum Mischen der Daten verwendet, wenn
shuffleaufTruegesetzt ist. Geben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg an. Siehe Glossar. Ganzzahlwerte müssen im Bereich[0, 2**32 - 1]liegen.- learning_ratestr, default=’optimal’
Das Lernraten-Schema
‘constant’:
eta = eta0‘optimal’:
eta = 1.0 / (alpha * (t + t0))wobeit0nach einer von Leon Bottou vorgeschlagenen Heuristik gewählt wird.‘invscaling’:
eta = eta0 / pow(t, power_t)‘adaptive’:
eta = eta0, solange das Training abnimmt. Jedes Mal, wenn n_iter_no_change aufeinanderfolgende Epochen den Trainingsverlust nicht um tol verringern oder den Validierungs-Score nicht um tol erhöhen, wennearly_stoppingaufTruegesetzt ist, wird die aktuelle Lernrate durch 5 geteilt.‘pa1’: Passive-Aggressive-Algorithmus 1, siehe [1]. Nur mit
loss='hinge'. Die Aktualisierung istw += eta y xmiteta = min(eta0, loss/||x||**2).‘pa2’: Passive-Aggressive-Algorithmus 2, siehe [1]. Nur mit
loss='hinge'. Die Aktualisierung istw += eta y xmiteta = hinge_loss / (||x||**2 + 1/(2 eta0)).
Hinzugefügt in Version 0.20: Option ‘adaptive’ hinzugefügt.
Hinzugefügt in Version 1.8: Optionen ‘pa1’ und ‘pa2’ hinzugefügt
- eta0float, default=0.01
Die anfängliche Lernrate für die Schemata ‘constant’, ‘invscaling’ oder ‘adaptive’. Der Standardwert ist 0.01, aber beachten Sie, dass eta0 nicht von der Standard-Lernrate ‘optimal’ verwendet wird. Werte müssen im Bereich
(0.0, inf)liegen.Für PA-1 (
learning_rate=pa1) und PA-II (pa2) gibt es den Aggressivitätsparameter für den passiv-aggressiven Algorithmus an, siehe [1], wo er C genannt wirdFür PA-I ist es die maximale Schrittweite.
Für PA-II reguliert es die Schrittweite (je kleiner
eta0, desto stärker die Regularisierung).
Als allgemeine Faustregel für PA sollte
eta0klein sein, wenn die Daten verrauscht sind.- power_tfloat, default=0.5
Der Exponent für die umgekehrt proportionale Lernrate. Werte müssen im Bereich
[0.0, inf)liegen.Veraltet seit Version 1.8: Negative Werte für
power_tsind in Version 1.8 veraltet und lösen in 1.10 einen Fehler aus. Verwenden Sie stattdessen Werte im Bereich [0.0, inf).- early_stoppingbool, default=False
Ob frühes Stoppen verwendet werden soll, um das Training zu beenden, wenn sich der Validierungs-Score nicht verbessert. Wenn auf
Truegesetzt, wird automatisch ein stratifizierter Anteil der Trainingsdaten als Validierungsdatensatz zurückgestellt, und das Training wird beendet, wenn sich der vomscore-Methode zurückgegebene Validierungs-Score nicht um mindestens tol für n_iter_no_change aufeinanderfolgende Epochen verbessert.Siehe Frühes Stoppen von Stochastic Gradient Descent für ein Beispiel für die Auswirkungen des frühen Stoppens.
Hinzugefügt in Version 0.20: Option ‘early_stopping’ hinzugefügt
- validation_fractionfloat, default=0.1
Der Anteil der Trainingsdaten, der als Validierungsdatensatz für das frühe Stoppen zurückgestellt werden soll. Muss zwischen 0 und 1 liegen. Wird nur verwendet, wenn
early_stoppingTrue ist. Werte müssen im Bereich(0.0, 1.0)liegen.Hinzugefügt in Version 0.20: Option ‘validation_fraction’ hinzugefügt
- n_iter_no_changeint, default=5
Anzahl der Iterationen ohne Verbesserung, auf die gewartet wird, bevor die Anpassung gestoppt wird. Die Konvergenz wird anhand des Trainingsverlusts oder des Validierungsverlusts überprüft, abhängig vom Parameter
early_stopping. Ganzzahlwerte müssen im Bereich[1, max_iter)liegen.Hinzugefügt in Version 0.20: Option ‘n_iter_no_change’ hinzugefügt
- class_weightdict, {class_label: weight} oder “balanced”, default=None
Voreinstellung für den
class_weight-Fit-Parameter.Mit Klassen verbundene Gewichte. Wenn nicht angegeben, wird angenommen, dass alle Klassen das Gewicht eins haben.
Der Modus „balanced“ verwendet die Werte von y, um Gewichte automatisch invers proportional zur Klassenhäufigkeit in den Eingabedaten anzupassen, als
n_samples / (n_classes * np.bincount(y)).- warm_startbool, Standard=False
Wenn auf True gesetzt, wird die Lösung des vorherigen Aufrufs von fit als Initialisierung wiederverwendet, andernfalls wird die vorherige Lösung einfach verworfen. Siehe das Glossar.
Wiederholtes Aufrufen von fit oder partial_fit, wenn warm_start True ist, kann zu einer anderen Lösung führen als beim einmaligen Aufrufen von fit, aufgrund der Art und Weise, wie die Daten gemischt werden. Wenn eine dynamische Lernrate verwendet wird, wird die Lernrate in Abhängigkeit von der Anzahl der bereits gesehenen Stichproben angepasst. Das Aufrufen von
fitsetzt diesen Zähler zurück, währendpartial_fitdazu führt, dass der vorhandene Zähler erhöht wird.- averagebool oder int, default=False
Wenn auf
Truegesetzt, werden die gemittelten SGD-Gewichte über alle Aktualisierungen berechnet und das Ergebnis im Attributcoef_gespeichert. Wenn auf eine Ganzzahl größer als 1 gesetzt, beginnt das Mitteln, sobald die Gesamtzahl der gesehenen Stichprobenaverageerreicht.average=10beginnt also nach dem Sehen von 10 Stichproben mit dem Mitteln. Ganzzahlwerte müssen im Bereich[1, n_samples]liegen.
- Attribute:
- coef_ndarray von Form (1, n_features), wenn n_classes == 2, sonst (n_classes, n_features)
Den Merkmalen zugeordnete Gewichte.
- intercept_ndarray von Form (1,), wenn n_classes == 2, sonst (n_classes,)
Konstanten in der Entscheidungsfunktion.
- n_iter_int
Die tatsächliche Anzahl von Iterationen vor Erreichen des Stoppkriteriums. Bei Mehrklassenanpassungen ist dies das Maximum über jede binäre Anpassung.
- classes_array von Form (n_classes,)
- t_int
Anzahl der während des Trainings durchgeführten Gewichtungsaktualisierungen. Gleich wie
(n_iter_ * n_samples + 1).- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
sklearn.svm.LinearSVCLineare Support-Vektor-Klassifikation.
LogisticRegressionLogistische Regression.
PerceptronErbt von SGDClassifier.
Perceptron()ist äquivalent zuSGDClassifier(loss="perceptron", eta0=1, learning_rate="constant", penalty=None).
Referenzen
[1] (1,2)Online Passive-Aggressive Algorithms <http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf> K. Crammer, O. Dekel, J. Keshat, S. Shalev-Shwartz, Y. Singer - JMLR (2006)
Beispiele
>>> import numpy as np >>> from sklearn.linear_model import SGDClassifier >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.pipeline import make_pipeline >>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]]) >>> Y = np.array([1, 1, 2, 2]) >>> # Always scale the input. The most convenient way is to use a pipeline. >>> clf = make_pipeline(StandardScaler(), ... SGDClassifier(max_iter=1000, tol=1e-3)) >>> clf.fit(X, Y) Pipeline(steps=[('standardscaler', StandardScaler()), ('sgdclassifier', SGDClassifier())]) >>> print(clf.predict([[-0.8, -1]])) [1]
- decision_function(X)[source]#
Konfidenz-Scores für Stichproben vorhersagen.
Der Konfidenz-Score für eine Stichprobe ist proportional zum vorzeichenbehafteten Abstand dieser Stichprobe zur Hyperebene.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Datenmatrix, für die wir die Konfidenz-Scores erhalten möchten.
- Gibt zurück:
- scoresndarray der Form (n_samples,) oder (n_samples, n_classes)
Konfidenz-Scores pro
(n_samples, n_classes)-Kombination. Im binären Fall, Konfidenz-Score fürself.classes_[1], wobei >0 bedeutet, dass diese Klasse vorhergesagt würde.
- densify()[source]#
Konvertiert die Koeffizientenmatrix in ein dichtes Array-Format.
Konvertiert das Mitglied
coef_(zurück) in ein numpy.ndarray. Dies ist das Standardformat voncoef_und wird für das Training benötigt, daher muss diese Methode nur auf Modellen aufgerufen werden, die zuvor verknappt wurden; andernfalls ist sie eine No-Op.- Gibt zurück:
- self
Angepasster Schätzer.
- fit(X, y, coef_init=None, intercept_init=None, sample_weight=None)[source]#
Lineares Modell mit stochastischem Gradientenabstieg anpassen.
- Parameter:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
Trainingsdaten.
- yndarray der Form (n_samples,)
Zielwerte.
- coef_initndarray von Form (n_classes, n_features), default=None
Die anfänglichen Koeffizienten zum Aufwärmen der Optimierung.
- intercept_initndarray von Form (n_classes,), default=None
Der anfängliche Achsenabschnitt zum Aufwärmen der Optimierung.
- sample_weightarray-like, shape (n_samples,), default=None
Gewichte, die auf einzelne Stichproben angewendet werden. Wenn nicht angegeben, werden einheitliche Gewichte angenommen. Diese Gewichte werden mit class_weight (über den Konstruktor übergeben) multipliziert, wenn class_weight angegeben ist.
- Gibt zurück:
- selfobject
Gibt eine Instanz von self zurück.
- get_metadata_routing()[source]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[source]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- partial_fit(X, y, classes=None, sample_weight=None)[source]#
Eine Epoche stochastischen Gradientenabstiegs auf gegebenen Stichproben durchführen.
Intern verwendet diese Methode
max_iter = 1. Daher ist nicht garantiert, dass nach einmaligem Aufrufen ein Minimum der Kostenfunktion erreicht wird. Angelegenheiten wie das Konvergieren der Zielfunktion, frühes Stoppen und Anpassungen der Lernrate sollten vom Benutzer gehandhabt werden.- Parameter:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
Teilmenge der Trainingsdaten.
- yndarray der Form (n_samples,)
Teilmenge der Zielwerte.
- classesndarray von Form (n_classes,), default=None
Klassen über alle Aufrufe von partial_fit hinweg. Kann über
np.unique(y_all)bezogen werden, wobei y_all der Zielvektor des gesamten Datensatzes ist. Dieses Argument ist für den ersten Aufruf von partial_fit erforderlich und kann bei nachfolgenden Aufrufen weggelassen werden. Beachten Sie, dass y nicht alle Labels inclassesenthalten muss.- sample_weightarray-like, shape (n_samples,), default=None
Gewichte, die auf einzelne Stichproben angewendet werden. Wenn nicht angegeben, werden einheitliche Gewichte angenommen.
- Gibt zurück:
- selfobject
Gibt eine Instanz von self zurück.
- predict(X)[source]#
Vorhersagen von Klassenbezeichnungen für Stichproben in X.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Datenmatrix, für die wir die Vorhersagen erhalten möchten.
- Gibt zurück:
- y_predndarray von Form (n_samples,)
Vektor, der die Klassenbezeichnungen für jede Stichprobe enthält.
- predict_log_proba(X)[source]#
Logarithmus der Wahrscheinlichkeitsschätzungen.
Diese Methode ist nur für die Verlustfunktionen „log_loss“ und „modified_huber“ verfügbar.
Wenn loss=”modified_huber”, können Wahrscheinlichkeitsschätzungen harte Nullen und Einsen sein, sodass die Logarithmierung nicht möglich ist.
Siehe
predict_probafür Details.- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Eingabedaten für die Vorhersage.
- Gibt zurück:
- Tarray-like, shape (n_samples, n_classes)
Gibt die Log-Wahrscheinlichkeit der Stichprobe für jede Klasse im Modell zurück, wobei die Klassen in der Reihenfolge von
self.classes_geordnet sind.
- predict_proba(X)[source]#
Wahrscheinlichkeitsschätzungen.
Diese Methode ist nur für die Verlustfunktionen „log_loss“ und „modified_huber“ verfügbar.
Mehrklassen-Wahrscheinlichkeitsschätzungen werden aus binären (one-vs-rest)-Schätzungen durch einfache Normalisierung abgeleitet, wie von Zadrozny und Elkan empfohlen.
Binäre Wahrscheinlichkeitsschätzungen für loss=”modified_huber” werden durch (clip(decision_function(X), -1, 1) + 1) / 2 gegeben. Für andere Verlustfunktionen ist es notwendig, eine ordnungsgemäße Wahrscheinlichkeitskalibrierung durchzuführen, indem der Klassifikator mit
CalibratedClassifierCVumschlossen wird.- Parameter:
- X{array-like, sparse matrix}, shape (n_samples, n_features)
Eingabedaten für die Vorhersage.
- Gibt zurück:
- ndarray von Form (n_samples, n_classes)
Gibt die Wahrscheinlichkeit der Stichprobe für jede Klasse im Modell zurück, wobei die Klassen in der Reihenfolge von
self.classes_geordnet sind.
Referenzen
Zadrozny und Elkan, „Transforming classifier scores into multiclass probability estimates“, SIGKDD’02, https://dl.acm.org/doi/pdf/10.1145/775047.775151
Die Begründung für die Formel im Fall loss=”modified_huber” befindet sich im Anhang B in: http://jmlr.csail.mit.edu/papers/volume2/zhang02c/zhang02c.pdf
- score(X, y, sample_weight=None)[source]#
Gibt die Genauigkeit für die bereitgestellten Daten und Bezeichnungen zurück.
Bei der Multi-Label-Klassifizierung ist dies die Subset-Genauigkeit, eine strenge Metrik, da für jede Stichprobe verlangt wird, dass jede Label-Menge korrekt vorhergesagt wird.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Bezeichnungen für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
Mittlere Genauigkeit von
self.predict(X)in Bezug aufy.
- set_fit_request(*, coef_init: bool | None | str = '$UNCHANGED$', intercept_init: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') SGDClassifier[source]#
Konfiguriert, ob Metadaten für die
fit-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- coef_initstr, True, False, oder None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
coef_initinfit.- intercept_initstr, True, False, oder None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
intercept_initinfit.- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinfit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_params(**params)[source]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_partial_fit_request(*, klassen: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') SGDClassifier[source]#
Konfiguriert, ob Metadaten für die
partial_fit-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und anpartial_fitübergeben, wenn sie bereitgestellt werden. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anpartial_fit.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- klassenstr, True, False, oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
klasseninpartial_fit.- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinpartial_fit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') SGDClassifier[source]#
Konfiguriert, ob Metadaten für die
score-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- sparsify()[source]#
Koeffizientenmatrix in Sparse-Format konvertieren.
Konvertiert das
coef_-Mitglied in eine scipy.sparse-Matrix, die für Modelle mit L1-Regularisierung speicher- und speichereffizienter sein kann als die übliche numpy.ndarray-Darstellung.Das
intercept_-Mitglied wird nicht konvertiert.- Gibt zurück:
- self
Angepasster Schätzer.
Anmerkungen
Für nicht-sparse Modelle, d.h. wenn nicht viele Nullen in
coef_vorhanden sind, kann dies tatsächlich den Speicherverbrauch *erhöhen*, also verwenden Sie diese Methode mit Vorsicht. Eine Faustregel besagt, dass die Anzahl der Nullelemente, die mit(coef_ == 0).sum()berechnet werden kann, mehr als 50 % betragen muss, damit dies signifikante Vorteile bringt.Nach dem Aufruf dieser Methode funktioniert die weitere Anpassung mit der Methode
partial_fit(falls vorhanden) nicht mehr, bis Siedensifyaufrufen.
Galeriebeispiele#
Vergleich von zufälliger Suche und Gitter-Suche zur Hyperparameter-Schätzung
Semi-überwachte Klassifikation auf einem Textdatensatz
Klassifikation von Textdokumenten mit spärlichen Merkmalen