Prédiction de risque pour les détenteurs de cartes de crédit

PandasPandasBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à construire un modèle de classification d'apprentissage automatique pour prédire le statut de risque des détenteurs de cartes de crédit. Le projet implique le prétraitement des données, la formation d'un modèle de machine à vecteurs de support (SVM) et l'enregistrement des résultats de prédiction dans un fichier CSV.

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment préparer les données en effectuant un codage d'étiquette sur les fonctionnalités non numériques
  • Comment entraîner un modèle de classification d'apprentissage automatique à l'aide des données d'entraînement
  • Comment enregistrer les résultats de prédiction dans un fichier CSV

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Prétraiter et préparer les données pour les tâches d'apprentissage automatique
  • Entraîner un modèle de machine à vecteurs de support (SVM) pour la classification
  • Enregistrer les résultats de prédiction dans un fichier CSV

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{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/write_csv -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/select_columns -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/select_rows -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/add_new_columns -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/change_data_types -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} pandas/reshape_data -.-> lab-300206{{"Prédiction de risque pour les détenteurs de cartes de crédit"}} end

Préparer les données

Dans cette étape, vous allez apprendre à lire les données d'entraînement et de test à partir de fichiers CSV, et à effectuer un codage d'étiquette sur les fonctionnalités non numériques.

  1. Ouvrez le fichier predict.py dans votre éditeur de code.

  2. Dans la fonction getData(), complétez les tâches suivantes :

    • Lire les données d'entraînement à partir du fichier credit_risk_train.csv à l'aide de pd.read_csv().
    • Lire les données de test à partir du fichier credit_risk_test.csv à l'aide de pd.read_csv().
    • Appeler la fonction label() pour effectuer un codage d'étiquette sur les fonctionnalités non numériques dans les données d'entraînement et de test.
    • Diviser les données d'entraînement en x_train, y_train, x_test et y_test.
def getData():
    """
    Read data from csv files. And split the train data into train and test for validation.
    """
    ## étape 1. lire les données à partir des fichiers CSV
    data = pd.read_csv(trainfile)
    test = pd.read_csv(testfile)

    ## étape 2. codage d'étiquette
    data = label(data)
    test = label(test)

    ## étape 3. diviser les données d'entraînement en train et test
    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. Dans la fonction label(), complétez la mise en œuvre du processus de codage d'étiquette :
    • Itérer sur chaque colonne dans les données.
    • Si le type de données de la colonne est object, créer une instance LabelEncoder et l'ajuster aux données de la colonne.
    • Si le nom de la colonne est "RISK", stocker l'instance LabelEncoder dans la variable convertor.
    • Transformer les données de la colonne à l'aide de l'instance LabelEncoder et mettre à jour la colonne dans les données.
    • Retourner les données mises à jour.
def label(data):
    """
    Use label encoding to process the non-numeric features.
    """
    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

Après avoir terminé cette étape, vous disposerez des données d'entraînement et de test prêtes pour l'étape suivante.

✨ Vérifier la solution et pratiquer

Entraîner le modèle

Dans cette étape, vous allez apprendre à entraîner un modèle de classification d'apprentissage automatique à l'aide des données d'entraînement.

  1. Dans la fonction predict(), complétez les tâches suivantes :
    • Créer une instance du modèle SVC à partir du module sklearn.svm.
    • Ajuster le modèle aux données x_train et y_train à l'aide de la méthode fit().
def predict(model=MODEL):
    """
    Use the model to predict the result.
    """
    ## étape 1. obtenir le modèle
    predictor = model()
    ## étape 2. obtenir les données
    x_train, y_train, x_test, _ = getData()
    ## étape 3. entraîner le modèle
    predictor.fit(x_train, y_train)
    ## étape 4. prédire et enregistrer
    res = predictor.predict(x_test)
    save(res)

Après avoir terminé cette étape, le modèle sera entraîné et prêt à effectuer des prédictions sur les données de test.

✨ Vérifier la solution et pratiquer

Enregistrer les prédictions

Dans cette étape, vous allez apprendre à enregistrer les résultats de prédiction dans le fichier credit_risk_pred.csv.

  1. Dans la fonction save(), complétez les tâches suivantes :
    • Utiliser la variable convertor pour inverser la transformation des résultats de prédiction pour les ramener aux étiquettes d'origine.
    • Créer un DataFrame Pandas avec les résultats de prédiction et l'enregistrer dans le fichier credit_risk_pred.csv à l'aide de pd.DataFrame().to_csv().
def save(result):
    """
    Save the result to csv file.
    """
    result = convertor.inverse_transform(result)
    dataframe = pd.DataFrame({"RISK": result})
    dataframe.to_csv("credit_risk_pred.csv", index=False, sep=",")

Après avoir terminé cette étape, les résultats de prédiction seront enregistrés dans le fichier credit_risk_pred.csv.

✨ Vérifier la solution et pratiquer

Exécuter la prédiction

Dans cette étape finale, vous allez exécuter le processus de prédiction et vérifier la sortie.

  1. Dans le bloc if __name__ == "__main__":, appelez la fonction predict() pour exécuter le processus de prédiction.
  2. Dans votre terminal, exécutez le fichier predict.py avec la commande suivante :
python3 predict.py
  1. Après avoir exécuté le fichier predict.py, vous devriez voir la sortie suivante :
Predict done!
  1. Vérifiez le fichier credit_risk_pred.csv dans le répertoire du projet. Il devrait contenir les résultats de prédiction pour les données de test.

Félicitations ! Vous avez réussi à terminer le projet de prédiction de risque pour les détenteurs de cartes de crédit. Vous avez appris à :

  • Préparer les données en effectuant un codage d'étiquette sur les fonctionnalités non numériques
  • Entraîner un modèle de classification d'apprentissage automatique à l'aide des données d'entraînement
  • Enregistrer les résultats de prédiction dans un fichier CSV
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.