Daten vorbereiten
In diesem Schritt lernst du, wie du die Trainings- und Testdaten aus CSV-Dateien einliest und eine Labelkodierung auf den nicht numerischen Features durchführst.
-
Öffne die Datei predict.py
in deinem Code-Editor.
-
In der Funktion getData()
erfülle die folgenden Aufgaben:
- Lies die Trainingsdaten aus der Datei
credit_risk_train.csv
mithilfe von pd.read_csv()
.
- Lies die Testdaten aus der Datei
credit_risk_test.csv
mithilfe von pd.read_csv()
.
- Rufe die Funktion
label()
auf, um eine Labelkodierung auf den nicht numerischen Features in den Trainings- und Testdaten durchzuführen.
- Teile die Trainingsdaten in
x_train
, y_train
, x_test
und y_test
auf.
def getData():
"""
Liest Daten aus csv-Dateien. Und teilt die Trainingsdaten in Trainings- und Testdaten für die Validierung auf.
"""
## Schritt 1. Lies Daten aus csv-Dateien
data = pd.read_csv(trainfile)
test = pd.read_csv(testfile)
## Schritt 2. Labelkodierung
data = label(data)
test = label(test)
## Schritt 3. Teile Trainingsdaten in Trainings- und Testdaten auf
x_train, y_train = data.iloc[:, :-1].to_numpy(), data.iloc[:, -1].to_numpy()
x_test = test.iloc[:, :].to_numpy()
y_test = None
return x_train, y_train, x_test, y_test
- In der Funktion
label()
erfülle die Implementierung des Labelkodierungsprozesses:
- Gehe durch jede Spalte in den Daten.
- Wenn der Spaltendatentyp
object
ist, erstelle eine Instanz von LabelEncoder
und passe sie an die Spaltenwerte an.
- Wenn der Spaltenname
"RISK"
ist, speichere die LabelEncoder
-Instanz in der Variable convertor
.
- Transformiere die Spaltenwerte mit der
LabelEncoder
-Instanz und aktualisiere die Spalte in den Daten.
- Gebe die aktualisierten Daten zurück.
def label(data):
"""
Verwendet die Labelkodierung, um die nicht numerischen Features zu verarbeiten.
"""
global convertor
for col in data.columns:
if data[col].dtype == "object":
le = LE()
if col == "RISK":
convertor = le
le.fit(data[col])
data[col] = le.transform(data[col])
return data
Nach Abschluss dieses Schritts wirst du die Trainings- und Testdaten für den nächsten Schritt vorbereitet haben.