LinearSVR#
- class sklearn.svm.LinearSVR(*, epsilon=0.0, tol=0.0001, C=1.0, loss='epsilon_insensitive', fit_intercept=True, intercept_scaling=1.0, dual='auto', verbose=0, random_state=None, max_iter=1000)[Quelle]#
Lineare Support Vector Regression.
Ähnlich wie SVR mit Parameter kernel=’linear‘, aber implementiert in Bezug auf liblinear anstatt libsvm, wodurch es mehr Flexibilität bei der Wahl von Straf- und Verlustfunktionen hat und besser auf große Stichprobensätze skalieren sollte.
Die Hauptunterschiede zwischen
LinearSVRundSVRliegen in der standardmäßig verwendeten Verlustfunktion und in der Behandlung der Intercept-Regularisierung zwischen diesen beiden Implementierungen.Diese Klasse unterstützt sowohl dichte als auch spärliche Eingaben.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.16.
- Parameter:
- epsilonfloat, Standard=0.0
Epsilon-Parameter in der epsilon-unempfindlichen Verlustfunktion. Beachten Sie, dass der Wert dieses Parameters von der Skala der Zielvariablen y abhängt. Wenn Sie unsicher sind, setzen Sie
epsilon=0.- tolfloat, Standard=1e-4
Toleranz für die Abbruchkriterien.
- Cfloat, Standardwert=1.0
Regularisierungsparameter. Die Stärke der Regularisierung ist umgekehrt proportional zu C. Muss strikt positiv sein.
- loss{‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, Standard=’epsilon_insensitive’
Gibt die Verlustfunktion an. Die epsilon-unempfindliche Verlustfunktion (Standard-SVR) ist die L1-Verlustfunktion, während die quadratische epsilon-unempfindliche Verlustfunktion ('squared_epsilon_insensitive') die L2-Verlustfunktion ist.
- fit_interceptbool, Standardwert=True
Ob ein Intercept angepasst werden soll oder nicht. Wenn auf True gesetzt, wird der Merkmalsvektor um einen Intercept-Term erweitert:
[x_1, ..., x_n, 1], wobei 1 dem Intercept entspricht. Wenn auf False gesetzt, wird kein Intercept in den Berechnungen verwendet (d. h. es wird erwartet, dass die Daten bereits zentriert sind).- intercept_scalingfloat, Standardwert=1.0
Wenn
fit_interceptTrue ist, wird der Instanzvektor x zu[x_1, ..., x_n, intercept_scaling], d. h. ein "synthetisches" Merkmal mit einem konstanten Wert gleichintercept_scalingwird an den Instanzvektor angehängt. Der Intercept wird zu intercept_scaling * synthetisches Merkmalsgewicht. Beachten Sie, dass liblinear intern den Intercept bestraft und ihn wie jeden anderen Term im Merkmalsvektor behandelt. Um die Auswirkungen der Regularisierung auf den Intercept zu verringern, kann der Parameterintercept_scalingauf einen Wert größer als 1 gesetzt werden; je höher der Wert vonintercept_scaling, desto geringer die Auswirkung der Regularisierung darauf. Dann werden die Gewichte zu[w_x_1, ..., w_x_n, w_intercept*intercept_scaling], wobeiw_x_1, ..., w_x_ndie Gewichtsmerkmale und das Intercept-Gewicht mitintercept_scalingskaliert werden. Diese Skalierung ermöglicht, dass der Intercept-Term ein anderes Regularisierungsverhalten aufweist als die anderen Merkmale.- dual"auto" oder bool, Standard="auto"
Wählen Sie den Algorithmus, um entweder das duale oder das primäre Optimierungsproblem zu lösen. Bevorzugen Sie dual=False, wenn n_samples > n_features.
dual="auto"wählt den Wert des Parameters automatisch basierend auf den Werten vonn_samples,n_featuresundloss. Wennn_samples<n_featuresund der Optimierer die gewähltelossunterstützt, wird dual auf True gesetzt, andernfalls auf False.Geändert in Version 1.3: Die Option
"auto"wurde in Version 1.3 hinzugefügt und ist die Standardeinstellung in Version 1.5.- verboseint, default=0
Aktiviert die ausführliche Ausgabe. Beachten Sie, dass diese Einstellung eine prozessinterne Laufzeiteinstellung in liblinear nutzt, die, wenn sie aktiviert ist, in einer multithreaded Umgebung möglicherweise nicht ordnungsgemäß funktioniert.
- random_stateint, RandomState-Instanz oder None, default=None
Steuert die Pseudo-Zufallszahlengenerierung zum Mischen der Daten. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.
- max_iterint, default=1000
Die maximale Anzahl der auszuführenden Iterationen.
- Attribute:
- coef_ndarray der Form (n_features) wenn n_classes == 2 sonst (n_classes, n_features)
Gewichte, die den Merkmalen zugewiesen werden (Koeffizienten im primären Problem).
coef_ist eine schreibgeschützte Eigenschaft, die ausraw_coef_abgeleitet wird und dem internen Speicherlayout von liblinear folgt.- intercept_ndarray der Form (1) wenn n_classes == 2 sonst (n_classes)
Konstanten in der Entscheidungsfunktion.
- 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.
- n_iter_int
Maximale Anzahl von Iterationen, die über alle Klassen hinweg ausgeführt wurden.
Siehe auch
LinearSVCImplementierung des Support Vector Machine-Klassifikators unter Verwendung derselben Bibliothek wie diese Klasse (liblinear).
SVRImplementierung der Support Vector Machine-Regression unter Verwendung von libsvm: Der Kernel kann nichtlinear sein, aber sein SMO-Algorithmus skaliert nicht so gut für große Stichprobensätze wie
LinearSVR.sklearn.linear_model.SGDRegressorSGDRegressor kann die gleiche Kostenfunktion wie LinearSVR optimieren, indem die Straf- und Verlustparameter angepasst werden. Darüber hinaus benötigt es weniger Speicher, ermöglicht inkrementelles (Online-)Lernen und implementiert verschiedene Verlustfunktionen und Regularisierungsregime.
Beispiele
>>> from sklearn.svm import LinearSVR >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_features=4, random_state=0) >>> regr = make_pipeline(StandardScaler(), ... LinearSVR(random_state=0, tol=1e-5)) >>> regr.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('linearsvr', LinearSVR(random_state=0, tol=1e-05))])
>>> print(regr.named_steps['linearsvr'].coef_) [18.582 27.023 44.357 64.522] >>> print(regr.named_steps['linearsvr'].intercept_) [-4.] >>> print(regr.predict([[0, 0, 0, 0]])) [-2.384]
- fit(X, y, sample_weight=None)[Quelle]#
Trainiert das Modell anhand der gegebenen Trainingsdaten.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yarray-like von Form (n_samples,)
Zielvektor relativ zu X.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Array von Gewichten, die einzelnen Stichproben zugeordnet sind. Wenn nicht bereitgestellt, erhält jede Stichprobe das Einheitsgewicht.
Hinzugefügt in Version 0.18.
- Gibt zurück:
- selfobject
Eine Instanz des Schätzers.
- get_metadata_routing()[Quelle]#
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)[Quelle]#
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.
- predict(X)[Quelle]#
Vorhersage mit dem linearen Modell.
- Parameter:
- Xarray-like oder sparse matrix, Form (n_samples, n_features)
Stichproben.
- Gibt zurück:
- Carray, Form (n_samples,)
Gibt vorhergesagte Werte zurück.
- score(X, y, sample_weight=None)[Quelle]#
Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.
Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Summe der quadrierten Residuen
((y_true - y_pred)** 2).sum()und \(v\) die Summe der gesamten Quadrate((y_true - y_true.mean()) ** 2).sum()ist. Der bestmögliche Score ist 1.0 und kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert vonyvorhersagt, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Score von 0.0 erzielen.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form
(n_samples, n_samples_fitted), wobein_samples_fitteddie Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Werte für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
\(R^2\) von
self.predict(X)bezogen aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufruf von
scoreauf einem Regressor verwendet wird, nutztmultioutput='uniform_average'ab Version 0.23, um konsistent mit dem Standardwert vonr2_scorezu bleiben. Dies beeinflusst diescore-Methode aller Multioutput-Regressoren (außerMultiOutputRegressor).
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LinearSVR[Quelle]#
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:
- 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)[Quelle]#
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_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LinearSVR[Quelle]#
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.