QuadraticDiscriminantAnalysis#

class sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(*, solver='svd', shrinkage=None, priors=None, reg_param=0.0, store_covariance=False, tol=0.0001, covariance_estimator=None)[source]#

Quadratische Diskriminanzanalyse.

Ein Klassifikator mit einer quadratischen Entscheidungsgrenze, der durch Anpassung der klassenbedingten Dichten an die Daten und Anwendung der Bayes-Regel erzeugt wird.

Das Modell passt eine Gaußsche Dichte an jede Klasse an.

Hinzugefügt in Version 0.17.

Für einen Vergleich zwischen QuadraticDiscriminantAnalysis und LinearDiscriminantAnalysis siehe Linear und Quadratische Diskriminanzanalyse mit Kovarianzellipsoid.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
solver{‘svd’, ‘eigen’}, default=’svd’
Zu verwendender Löser, mögliche Werte
  • ‘svd’: Singuläre Zerlegung (Standard). Berechnet die Kovarianzmatrix nicht, daher wird dieser Löser für Daten mit einer großen Anzahl von Merkmalen empfohlen.

  • ‘eigen’: Eigenwertzerlegung. Kann mit Schrumpfung oder einem benutzerdefinierten Kovarianzschätzer kombiniert werden.

shrinkage‘auto‘ oder float, default=None
Schrumpfungsparameter, mögliche Werte
  • None: keine Schrumpfung (Standard).

  • ‘auto’: automatische Schrumpfung nach dem Ledoit-Wolf-Lemma.

  • float zwischen 0 und 1: fester Schrumpfungsparameter.

Die Aktivierung der Schrumpfung wird voraussichtlich das Modell verbessern, wenn einige Klassen im Vergleich zur Anzahl der Merkmale relativ wenige Trainingsdatenpunkte aufweisen, indem sie Überanpassung während des Kovarianzschätzschritts mildert.

Dies sollte auf None belassen werden, wenn covariance_estimator verwendet wird. Beachten Sie, dass die Schrumpfung nur mit dem ‘eigen’-Löser funktioniert.

priorsarray-like von Form (n_classes,), default=None

Klassen-A-priori-Wahrscheinlichkeiten. Standardmäßig werden die Klassenanteile aus den Trainingsdaten abgeleitet.

reg_paramfloat, default=0.0

Reguliert die Kovarianzschätzungen pro Klasse, indem S2 transformiert wird als S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features), wobei S2 dem scaling_ Attribut einer gegebenen Klasse entspricht.

store_covariancebool, default=False

Wenn True, werden die Klassenkova­rianz­matrizen explizit berechnet und im Attribut self.covariance_ gespeichert.

Hinzugefügt in Version 0.17.

tolfloat, default=1.0e-4

Absolute Schwelle für die Kovarianzmatrix, damit sie nach Anwendung einer gewissen Regularisierung (siehe reg_param) für jede Sk, wobei Sk die Kovarianzmatrix für die k-te Klasse darstellt, als Rang-defizitär betrachtet wird. Dieser Parameter beeinflusst die Vorhersagen nicht. Er steuert, wann eine Warnung ausgegeben wird, wenn die Kovarianzmatrix nicht vollen Rang hat.

Hinzugefügt in Version 0.17.

covariance_estimatorKovarianzschätzer, default=None

Wenn nicht None, wird covariance_estimator verwendet, um die Kovarianzmatrizen zu schätzen, anstatt sich auf den empirischen Kovarianzschätzer (mit möglicher Schrumpfung) zu verlassen. Das Objekt sollte eine fit-Methode und ein covariance_ Attribut wie die Schätzer in sklearn.covariance haben. Wenn None, steuert der Schrumpfungsparameter die Schätzung.

Dies sollte auf None belassen werden, wenn shrinkage verwendet wird. Beachten Sie, dass covariance_estimator nur mit dem ‘eigen’-Löser funktioniert.

Attribute:
covariance_Liste von n_classes Elementen der Form ndarray von Shape (n_features, n_features)

Gibt für jede Klasse die Kovarianzmatrix an, die mithilfe der Stichproben dieser Klasse geschätzt wurde. Die Schätzungen sind unverzerrt. Nur vorhanden, wenn store_covariance True ist.

means_array-ähnlich der Form (n_classes, n_features)

Klassenweise Mittelwerte.

priors_array-ähnlich der Form (n_classes,)

Klassen-A-priori-Wahrscheinlichkeiten (summiert sich zu 1).

rotations_Liste von n_classes Elementen der Form ndarray von Shape (n_features, n_k)

Für jede Klasse k ein Array der Form (n_features, n_k), wobei n_k = min(n_features, Anzahl der Elemente in Klasse k). Es ist die Rotation der Gaußschen Verteilung, d.h. ihre Hauptachse. Es entspricht V, der Matrix der Eigenvektoren aus der SVD von Xk = U S Vt, wobei Xk die zentrierte Matrix der Stichproben aus Klasse k ist.

scalings_Liste von n_classes Elementen der Form ndarray von Shape (n_k,)

Enthält für jede Klasse die Skalierung der Gaußschen Verteilungen entlang ihrer Hauptachsen, d.h. die Varianz im rotierten Koordinatensystem. Es entspricht S^2 / (n_samples - 1), wobei S die Diagonalmatrix der singulären Werte aus der SVD von Xk ist, wobei Xk die zentrierte Matrix der Stichproben aus Klasse k ist.

classes_ndarray der Form (n_classes,)

Eindeutige Klassenbezeichnungen.

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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

LinearDiscriminantAnalysis

Lineare Diskriminanzanalyse.

Beispiele

>>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = QuadraticDiscriminantAnalysis()
>>> clf.fit(X, y)
QuadraticDiscriminantAnalysis()
>>> print(clf.predict([[-0.8, -1]]))
[1]
decision_function(X)[source]#

Anwenden der Entscheidungfunktion auf ein Array von Stichproben.

Die Entscheidungsfunktion ist gleich (bis auf einen konstanten Faktor) dem Log-Posteriori des Modells, d.h. log p(y = k | x). In einem binären Klassifizierungsszenario entspricht dies stattdessen der Differenz log p(y = 1 | x) - log p(y = 0 | x). Siehe Mathematische Formulierung der LDA- und QDA-Klassifikatoren.

Parameter:
Xarray-like der Form (n_samples, n_features)

Array von Stichproben (Testvektoren).

Gibt zurück:
Cndarray von Shape (n_samples,) oder (n_samples, n_classes)

Entscheidungsfunktionswerte, die sich auf jede Klasse pro Stichprobe beziehen. Im Fall von zwei Klassen hat die Form (n_samples,) und gibt das Log-Likelihood-Verhältnis der positiven Klasse an.

fit(X, y)[source]#

Modell anhand der gegebenen Trainingsdaten und Parameter anpassen.

Geändert in Version 0.19: store_covariances wurde in den Hauptkonstruktor als store_covariance verschoben.

Geändert in Version 0.19: tol wurde in den Hauptkonstruktor verschoben.

Parameter:
Xarray-like der Form (n_samples, n_features)

Trainingsvektor, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

yarray-like von Form (n_samples,)

Zielwerte (ganzzahlig).

Gibt zurück:
selfobject

Angepasster Schätzer.

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.

predict(X)[source]#

Klassifizierung auf einem Array von Vektoren X durchführen.

Gibt die Klassenbezeichnung für jede Stichprobe zurück.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Eingangsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
y_predndarray von Form (n_samples,)

Klassenbezeichnung für jede Stichprobe.

predict_log_proba(X)[source]#

Logarithmus der Klassenwahrscheinlichkeiten schätzen.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Eingabedaten.

Gibt zurück:
y_log_probandarray der Form (n_samples, n_classes)

Geschätzte Log-Wahrscheinlichkeiten.

predict_proba(X)[source]#

Klassenwahrscheinlichkeiten schätzen.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Eingabedaten.

Gibt zurück:
y_probandarray der Form (n_samples, n_classes)

Wahrscheinlichkeitsschätzung der Stichprobe für jede Klasse im Modell, wobei die Klassen in der Reihenfolge sortiert sind, wie sie in self.classes_ vorkommen.

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 auf y.

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_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') QuadraticDiscriminantAnalysis[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=True aktiviert ist (siehe sklearn.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, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • 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_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.