Kovarianzverschiebung

Kovarianzverschiebung
Das Ändern der Verteilungen verschiedener Variablen vom Zug zu Test wird als Datensatzverschiebung bezeichnet. Dies kann zu verschiedenen Problemen führen, wenn Sie Werte im bereitgestellten Modell prognostizieren. Verschiebung kommt in einer Vielzahl von Formen. Eine der Verschiebungen ist die Kovarianzverschiebung, die innerhalb der unabhängigen Variablen von Zug- und Testdaten auftritt. Wir werden uns detailliert mit Datensatzverlagerung befassen, einschließlich seiner Erklärung, Ursachen, Identifizierung und Kovariantenverschiebung.

Was sind Varianz und Kovarianz?

Die Streuung von Daten wird anhand der Varianz gemessen. Es zeigt uns, wie verteilt die Daten rund um eine bestimmte „wahre“ oder „korrekte“ Zahl sind (zentrale Tendenz - ein Maß davon ist der Mittelwert der Daten. In einer univariaten Analyse wird die Begriffsvarianz verwendet, um das Verhalten einer einzelnen Variablen zu beschreiben. Kovarianz wird in der multivariaten Analyse verwendet, um das gemeinsame Verhalten von zwei Variablen zu untersuchen. Wenn sich zwei Variablen in die gleiche Richtung bewegen, ist ihre Kovarianz positiv; Es ist negativ, wenn sie sich in entgegengesetzte Richtungen bewegen.

Was ist Datensatzverschiebung?

Wenn sich die Verteilung Ihrer Zug- und Testdaten unterscheidet, wird dies als Datensatzverschiebung bezeichnet. Da das Modell auf einer Verteilung geschult wurde und jetzt zur Vorhersage verschiedener Datenverteilungen verwendet wird, was zu einer geringeren Genauigkeit der Testdaten führt, sollten Sie Ihre Zug- und Datenverteilungen immer testen und sie so ähnlich wie machbar machen.

Arten von Datenverschiebung

  1. Änderungen in den unabhängigen Variablen oder Merkmalen des Datensatzes: Kovariate Verschiebung
  2. Änderungen in der Zielvariablen oder der abhängigen Variablen im Datensatz:
    Frühere Wahrscheinlichkeitsverschiebung
  3. Änderung der Verbindung zwischen der Unabhängigen und der Zielvariablen über Datensätze hinweg: Konzeptverschiebung

Warum tritt eine Datensatzverschiebung auf??

Probenauswahlverzerrung: Die Variation der Verteilung ist auf die Tatsache zurückzuführen, dass Trainingsdaten über eine verzerrte Methode erhalten wurden und die Betriebsumgebung, aus der Testdaten erhalten wurden, nicht genau darstellt.

Nicht stationäre Umgebungen: Die Trainingsumgebung unterscheidet sich von der Testumgebung, entweder Zeit oder Raum.

Was ist eine kovariate Verschiebung des maschinellen Lernens?

Der Unterschied zwischen Trainings- und Testdatensatzverteilungen wird als kovariate Verschiebung bezeichnet. Dies bedeutet, dass das Training des Datensatzes auf einer Art von Verteilung durchgeführt wird und das Modell verwendet wird, um die Daten einer anderen Verteilung vorherzusagen. Kovariate Verschiebung kann darauf hinweisen, dass das Modell nicht gut genug verallgemeinern kann. Die Fähigkeit eines Modells, sich auf neue Daten anzuwenden, die aus den Trainingsdaten erfasst wurden, wird als Generalisierung bezeichnet. Sie würden denken, sie würden aus der gleichen Verteilung stammen, aber das ist fast nie der Fall. Infolgedessen müssen Sie Ihre Modelle über den neuesten Zugset auf dem Laufenden halten. Dies wird typischerweise durch Änderungen im Zustand latenter Variablen verursacht, die zeitlich (einschließlich Änderungen in der Stationarität eines zeitlichen Prozesses), räumlich oder weniger offensichtlich sein können. Es ist auch möglich, sich als in einer unbekannten „Region“ des Datenuniversums zu betrachten. Es ist ein faszinierendes Forschungsfeld, weil es in der Natur auf verschiedene Weise beobachtet werden kann. Wir können uns im Datenraum durch kreative Extrapolation damit befassen, dies funktioniert jedoch selten und Alternativen wie die Neugestaltung latenter Variablen oder der Versuch, eine Vorhersagefunktion anpassungsfähig an die Domäne zu machen. Besondere Umstände wie stationäre Zeitvariablen und gelegentlich sind reine numerische Daten erforderlich, um festzustellen, ob wir wirklich außerhalb unseres ursprünglichen Kovariatenraums gegangen sind. In diesem Szenario können wir den Datenraum des konvexen Rumpfes berechnen und feststellen, ob unser neuer Datenpunkt außerhalb ihm fällt. Dies ist natürlich rechenintensiv, so dass es selten geschehen ist, bis unsere Prognosen falsch sind. Es ist natürlich anwendungsabhängig.

Beispiele für die kovariante Verschiebung

Die Erkennung von Kovariate -Drift und anderen Arten von Modelldrift ist ein wichtiger Schritt zur Verbesserung der Testgenauigkeit des Modells. Im Folgenden finden Sie einige Beispiele für die kovariate Verschiebung in den Anwendungsfällen für maschinelles Lernen:

Bildklassifizierung und Gesichtserkennung: Ein Modell wurde möglicherweise auf Bildern von nur wenigen Hunderassen ausgebildet, es wird jedoch schlecht abschneiden, wenn es verwendet wird, um Rassen zu prognostizieren, die in den Trainingsdaten nicht vorhanden waren.

Spracherkennung und Übersetzung: Ein Modell kann auf Rednern mit einem bestimmten Akzent geschult werden. Wenn das Modell mit Sprache mit neuen Dialekten oder Akzenten verwendet wird, kann es mit den Trainingsdaten ein hohes Maß an Genauigkeit erreichen, es wird jedoch bei Verwendung mit neuen Dialekten oder Akzenten ungenau.

Gesundheitspflege: Ein Modell, das auf zugänglichen Trainingsdaten von Patienten in den 20ern ausgebildet ist, ist bei Screening von Patienten ab 60 Jahren weniger genau.

Umgang mit Kovarianzverschiebung

Wir lassen die als Driften in unserer Strategie für den Umgang mit Datensatzverschiebung eingestuften Funktionen fallen. Das ledigliche Entfernen von Funktionen kann jedoch zu einem gewissen Datenverlust führen. Später können wir einfach die weniger wichtigen Funktionen fallen lassen. Infolgedessen werden Merkmale mit einem Driftwert, der größer als ein bestimmter Schwellenwert ist. Im Folgenden finden Sie den Code, der die Merkmals Bedeutung für ein lineares Regressionsmodell berechnet und zeigt.

von Sklearn.Datensätze importieren make_regression
von SKL
verdienen.linear_model import linearregression
von Matplotlib Pyplot importieren
X, y = make_regression (n_samples = 2000, n_features = 15, n_informative = 5, random_state = 1)
Modell = linearRegression ()
Modell.fit (x, y)
coef_array = Modell.coef_
für i, v in Enumerate (coef_array):
print ('feature: %0d, Punktzahl: %.5f ' % (i, v))
Pyplot.bar ([x für x im Bereich (len (coef_array))], coef_array)
Pyplot.zeigen()

Ausgang

Feature: 0, Punktzahl: 0.00000
Feature: 1, Punktzahl: 0.00000
Merkmal: 2, Punktzahl: 51.76768
Feature: 3, Punktzahl: 0.00000
Feature: 4, Punktzahl: 0.00000
Feature: 5, Punktzahl: 0.00000
Feature: 6, Punktzahl: 77.69109
Feature: 7, Punktzahl: 0.00000
Feature: 8, Punktzahl: 41.53725
Feature: 9, Punktzahl: 0.00000
Merkmal: 10, Punktzahl: 14.19662
Feature: 11, Punktzahl: 80.91086
Feature: 12, Punktzahl: -0.00000
Feature: 13, Punktzahl: -0.00000
Feature: 14, Punktzahl: -0.00000

Abschluss

Dieser Artikel schau. Die Verschiebung von Datenverteilungen vom Training zu Testdaten wird als Datensatzverschiebung bezeichnet. Unterschiedliche Trainings- und Testbedingungen können die Kovarianz zwischen den unabhängigen Variablen verschieben. Nach der Schätzung der Merkmals Bedeutung können wir das Feature -Abbruch verwenden, um die Datensatzverschiebung zu beseitigen.