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
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.
Ouvrez le fichier
predict.pydans votre éditeur de code.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 depd.read_csv(). - Lire les données de test à partir du fichier
credit_risk_test.csvà l'aide depd.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_testety_test.
- Lire les données d'entraînement à partir du fichier
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
- 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 instanceLabelEncoderet l'ajuster aux données de la colonne. - Si le nom de la colonne est
"RISK", stocker l'instanceLabelEncoderdans la variableconvertor. - Transformer les données de la colonne à l'aide de l'instance
LabelEncoderet 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.
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.
- Dans la fonction
predict(), complétez les tâches suivantes :- Créer une instance du modèle
SVCà partir du modulesklearn.svm. - Ajuster le modèle aux données
x_trainety_trainà l'aide de la méthodefit().
- Créer une instance du modèle
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.
Sauvegarder les prédictions
Dans cette étape, vous allez apprendre à enregistrer les résultats de prédiction dans le fichier credit_risk_pred.csv.
- Dans la fonction
save(), complétez les tâches suivantes :- Utiliser la variable
convertorpour 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 depd.DataFrame().to_csv().
- Utiliser la variable
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.
Exécuter la prédiction
Dans cette étape finale, vous allez exécuter le processus de prédiction et vérifier la sortie.
- Dans le bloc
if __name__ == "__main__":, appelez la fonctionpredict()pour exécuter le processus de prédiction. - Dans votre terminal, exécutez le fichier
predict.pyavec la commande suivante :
python3 predict.py
- Après avoir exécuté le fichier
predict.py, vous devriez voir la sortie suivante :
Predict done!
- Vérifiez le fichier
credit_risk_pred.csvdans 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
Résumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



