Kreditkarteninhaber-Risikovorhersage

PandasPandasBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL pandas(("Pandas")) -.-> pandas/DataSelectionGroup(["Data Selection"]) pandas(("Pandas")) -.-> pandas/DataManipulationGroup(["Data Manipulation"]) pandas(("Pandas")) -.-> pandas/AdvancedOperationsGroup(["Advanced Operations"]) pandas(("Pandas")) -.-> pandas/ReadingDataGroup(["Reading Data"]) pandas(("Pandas")) -.-> pandas/WritingDataGroup(["Writing Data"]) pandas/ReadingDataGroup -.-> pandas/read_csv("Read CSV") pandas/WritingDataGroup -.-> pandas/write_csv("Write to CSV") pandas/DataSelectionGroup -.-> pandas/select_columns("Select Columns") pandas/DataSelectionGroup -.-> pandas/select_rows("Select Rows") pandas/DataManipulationGroup -.-> pandas/add_new_columns("Adding New Columns") pandas/DataManipulationGroup -.-> pandas/change_data_types("Changing Data Types") pandas/AdvancedOperationsGroup -.-> pandas/reshape_data("Reshaping Data") subgraph Lab Skills pandas/read_csv -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/write_csv -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/select_columns -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/select_rows -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/add_new_columns -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/change_data_types -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} pandas/reshape_data -.-> lab-300206{{"Kreditkarteninhaber-Risikovorhersage"}} end

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.

  1. Öffne die Datei predict.py in deinem Code-Editor.

  2. 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
  1. 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.

✨ Lösung prüfen und üben

Modell trainieren

In diesem Schritt lernst du, wie du ein maschinelles Lernklassifizierungsmodell mit den Trainingsdaten trainierst.

  1. In der Funktion predict() erfülle die folgenden Aufgaben:
    • Erstelle eine Instanz des SVC-Modells aus dem Modul sklearn.svm.
    • Passe das Modell an die Daten x_train und y_train an, indem du die fit()-Methode verwendest.
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.

✨ Lösung prüfen und üben

Speichere die Vorhersagen

In diesem Schritt lernst du, wie du die Vorhersagergebnisse in die Datei credit_risk_pred.csv speicherst.

  1. 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.csv mithilfe von pd.DataFrame().to_csv().
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.

✨ Lösung prüfen und üben

Führe die Vorhersage durch

In diesem letzten Schritt wirst du den Vorhersageprozess ausführen und die Ausgabe überprüfen.

  1. Im Block if __name__ == "__main__": rufe die Funktion predict() auf, um den Vorhersageprozess auszuführen.
  2. Öffne in deinem Terminal die Datei predict.py mit dem folgenden Befehl:
python3 predict.py
  1. Nachdem du die Datei predict.py ausgeführt hast, solltest du die folgende Ausgabe sehen:
Predict done!
  1. Überprüfe die Datei credit_risk_pred.csv im 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
✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.