Einführung
In diesem Projekt lernst du, wie du ein maschinelles Lernklassifizierungsmodell zum Vorhersagen des Risikostands von Kreditkarteninhabern aufbaust. Das Projekt umfasst die Vorverarbeitung der Daten, das Training eines Support Vector Machine (SVM)-Modells und das Speichern der Vorhersagergebnisse in eine CSV-Datei.
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du die Daten vorbereitest, indem du eine Labelkodierung auf nicht numerischen Features durchführst
- Wie du ein maschinelles Lernklassifizierungsmodell mit den Trainingsdaten trainst
- Wie du die Vorhersagergebnisse in eine CSV-Datei speicherst
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Daten für maschinelle Lernaufgaben vorzuverarbeiten und vorzubereiten
- Ein Support Vector Machine (SVM)-Modell für die Klassifizierung zu trainieren
- Die Vorhersagergebnisse in eine CSV-Datei zu speichern
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.pyin deinem Code-Editor.In der Funktion
getData()erfülle die folgenden Aufgaben:- Lies die Trainingsdaten aus der Datei
credit_risk_train.csvmithilfe vonpd.read_csv(). - Lies die Testdaten aus der Datei
credit_risk_test.csvmithilfe vonpd.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_testundy_testauf.
- Lies die Trainingsdaten aus der Datei
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
objectist, erstelle eine Instanz vonLabelEncoderund passe sie an die Spaltenwerte an. - Wenn der Spaltenname
"RISK"ist, speichere dieLabelEncoder-Instanz in der Variableconvertor. - 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.
Modell trainieren
In diesem Schritt lernst du, wie du ein maschinelles Lernklassifizierungsmodell mit den Trainingsdaten trainierst.
- In der Funktion
predict()erfülle die folgenden Aufgaben:- Erstelle eine Instanz des
SVC-Modells aus dem Modulsklearn.svm. - Passe das Modell an die Daten
x_trainundy_trainan, indem du diefit()-Methode verwendest.
- Erstelle eine Instanz des
def predict(model=MODEL):
"""
Verwende das Modell, um das Ergebnis vorherzusagen.
"""
## Schritt 1. Hole das Modell
predictor = model()
## Schritt 2. Hole die Daten
x_train, y_train, x_test, _ = getData()
## Schritt 3. Trainiere das Modell
predictor.fit(x_train, y_train)
## Schritt 4. Vorhersage und Speicherung
res = predictor.predict(x_test)
save(res)
Nach Abschluss dieses Schritts wird das Modell trainiert und bereit für die Vorhersage auf den Testdaten.
Vorhersagen speichern
In diesem Schritt lernst du, wie du die Vorhersagergebnisse in die Datei credit_risk_pred.csv speicherst.
- In der Funktion
save()erfülle die folgenden Aufgaben:- Verwende die Variable
convertor, um die Vorhersagergebnisse zurück in die ursprünglichen Labels zu transformieren. - Erstelle einen Pandas DataFrame mit den Vorhersagergebnissen und speichere ihn in die Datei
credit_risk_pred.csvmithilfe vonpd.DataFrame().to_csv().
- Verwende die Variable
def save(result):
"""
Speichert das Ergebnis in eine csv-Datei.
"""
result = convertor.inverse_transform(result)
dataframe = pd.DataFrame({"RISK": result})
dataframe.to_csv("credit_risk_pred.csv", index=False, sep=",")
Nach Abschluss dieses Schritts werden die Vorhersagergebnisse in die Datei credit_risk_pred.csv gespeichert.
Vorhersage ausführen
In diesem letzten Schritt wirst du den Vorhersageprozess ausführen und die Ausgabe überprüfen.
- Im Block
if __name__ == "__main__":rufe die Funktionpredict()auf, um den Vorhersageprozess auszuführen. - Öffne in deinem Terminal die Datei
predict.pymit dem folgenden Befehl:
python3 predict.py
- Nachdem du die Datei
predict.pyausgeführt hast, solltest du die folgende Ausgabe sehen:
Predict done!
- Überprüfe die Datei
credit_risk_pred.csvim Projektverzeichnis. Sie sollte die Vorhersagergebnisse für die Testdaten enthalten.
Herzlichen Glückwunsch! Du hast das Projekt zur Risikovorhersage von Kreditkarteninhabern erfolgreich abgeschlossen. Du hast gelernt, wie du:
- Die Daten vorbereitest, indem du eine Labelkodierung auf nicht numerischen Features durchführst
- Ein maschinelles Lernklassifizierungsmodell mit den Trainingsdaten trainierst
- Die Vorhersagergebnisse in eine CSV-Datei speicherst
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.



