Vorverarbeitung in Sklearn

Vorverarbeitung in Sklearn
Datenvorverarbeitung, eine entscheidende Phase des Data Mining, kann vor der Nutzung als Änderung oder Ablegen von Daten definiert werden, um die Leistung zu gewährleisten oder zu erhöhen. Die Datenvorbereitung umfasst mehrere Verfahren wie die explorative Datenanalyse, das Entfernen unnötiger Informationen und das Hinzufügen der erforderlichen Informationen. Wir werden über Datenvorverarbeitung und darüber sprechen, wie es in Sklearn in diesem Artikel verwendet wird.

Was ist Datenverarbeitung?

Datenvorverarbeitung ist eine kritische Phase im maschinellen Lernen, die die Datenqualität verbessert, um das Extrahieren wertvoller Erkenntnisse aus den Daten zu fördern. Die Datenvorbereitung im maschinellen Lernen ist der Prozess, um die Rohdaten vorzubereiten (Reinigung und Organisation), um maschinelles Lernmodelle zu erstellen und zu trainieren. Datenvorverarbeitung im maschinellen Lernen ist, um es einfach auszudrücken, ein Data Mining -Ansatz, der Rohdaten in ein Format umwandelt, das lesbar und verständlich ist.

Warum brauchen wir Datenvorverarbeitung?

Daten in der realen Welt fehlen häufig bestimmte Attributwerte oder -trends und sind häufig inkonsistent, fehlerhaft (enthält Fehler oder Ausreißer) und unvollständig. Die Datenvorbereitung kommt in dieser Situation ins Spiel, da sie die Rohdaten reinigen, formatieren und organisieren, wodurch sie für maschinelle Lernmodelle verwendet werden können.

Datenvorverarbeitung befasst sich mit den folgenden:

  • Fehlende Daten: Entfernen, korrigieren und unterstellen
  • Engineering -Funktionen: Neue Funktionen aus Rohdaten extrapolieren.
  • Datenformatierung: Die Daten sind im gewünschten Format möglicherweise nicht verfügbar. Beispielsweise ist es eine einfache Textdatei, die wir in einen Datenrahmen konvertieren müssen.
  • Datennormalisierung: Nicht alle Daten können in normalisierter Form vorliegen. Daher skalieren wir es für Effizienzzwecke auf den angegebenen Bereich
  • Zersetzung: Entfernen redundanter Daten zur Verbesserung der Leistung

Standards für die Scikit-Learn-API

Es gibt mehrere Spezifikationen für die Art von Daten, die der Sklearn verarbeiten wird.

  • Konstante Werte (keine kategorialen Variablen).
  • Es fehlen keine Werte.
  • Jede Spalte sollte eine andere Prädiktorvariable enthalten.
  • Jede Zeile sollte eine Merkmalsbeobachtung enthalten.
  • Es muss so viele Etiketten für jedes Merkmal geben, wie es Beobachtungen davon gibt.

Implementierung der Vorverarbeitung sklearn

Importieren der Bibliotheken und Daten

# Importieren der Bibliotheken und Klassen
von sklearn import SVM, Datensätze
Pandas als PD importieren
von Sklearn.Import SimpleImputer importieren
von Sklearn.Vorverarbeitungs -Importstandardscaler
von Sklearn.Vorverarbeitung importieren OneHoTenCoder
# Laden des Iris -Datensatzes
Data = Datensätze.load_iris ()
df = pd.DataFrame (Data = Data.Daten, Spalten = Daten.feature_names)

Laden Sie die ersten 5 Zeilen der Daten

df.Kopf()

Ausgang

Sepallänge (cm) Sepalbreite (CM) Blütenblattlänge (cm) Blütenbreite (CM)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Informationen zu Typen und Nullwerten erhalten

df.die Info()

Ausgang

RangeIndex: 150 Einträge, 0 bis 149
Datenspalten (insgesamt 4 Spalten):
# Spalte Nicht-Null-Graf DTYPE
--- ------ -------------- -----
0 Sepallänge (cm) 150 Nicht-Null-Float64
1 Sepalbreite (cm) 150 Nicht-Null-Float64
2 Blütenblattlänge (cm) 150 Nicht-Null-Float64
3 Blütenbreite (cm) 150 Nicht-Null-Float64
DTYPES: Float64 (4)

Füllen Sie fehlende Werte des Datenrahmens mit sklearn aus:

Impter = SimpleImputer (Strategie = 'Mittelwert')
df ['Sepal Breite (cm)'] = Impter.FIT_TRANSFORM (dF [['Sepal Breite (cm)']])

Wir können alle Spalten für die Ausführung dieser Aufgabe in allen Spalten itererieren.

Skalierung der Daten mit Standardskaler

Scaler = StandardsCaler ()
Scaler.fit (df)
# Die Daten transformieren
Scaler.Transformation (df) [: 10]

Ausgang

Array ([[-0).90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]]))

Eine heiße Kodierung

CNODER = ONEHOTENCODER (Handle_UunkNOWN = 'Ignore')
X = [['A', 1], ['B', 3], ['B', 2]]
Encoder.fit (x)
Druck (Encoder.Kategorien_)
Encoder.Transformation (x).toArray ()

Ausgang

[Array (['A', 'B'], dType = Object), Array ([1, 2, 3], dType = Objekt)]
Array ([[1)., 0., 1., 0., 0.],
[0., 1., 0., 0., 1.],
[0., 1., 0., 1., 0.]]))

Abschluss

Wir haben in diesem Artikel die Vorverarbeitung und ihre Implementierung in der Sklearn Python -Bibliothek besprochen. Um die Extraktion nützlicher Erkenntnisse aus den Daten zu erleichtern, ist die Datenvorverarbeitung ein entscheidender Schritt im maschinellen Lernen. Es erhöht die Qualität der Daten. Dann diskutierten wir die Implementierung in Sklearn. Wir haben zuerst Informationen zu Daten abgerufen, einschließlich der fehlenden Werte und Datentypen, und dann die fehlenden Werte ausgefüllt. Wir haben auch an der Skalierung der Daten und einer heißen Kodierung gearbeitet.