Introducción
En este proyecto, aprenderá a construir un modelo de clasificación de aprendizaje automático para predecir el estado de riesgo de los titulares de tarjetas de crédito. El proyecto implica preprocesar los datos, entrenar un modelo de máquina de vectores de soporte (SVM) y guardar los resultados de predicción en un archivo CSV.
🎯 Tareas
En este proyecto, aprenderá:
- Cómo preparar los datos realizando codificación de etiquetas en las características no numéricas
- Cómo entrenar un modelo de clasificación de aprendizaje automático utilizando los datos de entrenamiento
- Cómo guardar los resultados de predicción en un archivo CSV
🏆 Logros
Después de completar este proyecto, podrá:
- Preprocesar y preparar datos para tareas de aprendizaje automático
- Entrenar un modelo de máquina de vectores de soporte (SVM) para la clasificación
- Guardar los resultados de predicción en un archivo CSV
Preparar los datos
En este paso, aprenderá a leer los datos de entrenamiento y prueba desde archivos CSV y a realizar la codificación de etiquetas en las características no numéricas.
Abra el archivo
predict.pyen su editor de código.En la función
getData(), complete las siguientes tareas:- Lea los datos de entrenamiento desde el archivo
credit_risk_train.csvutilizandopd.read_csv(). - Lea los datos de prueba desde el archivo
credit_risk_test.csvutilizandopd.read_csv(). - Llame a la función
label()para realizar la codificación de etiquetas en las características no numéricas de los datos de entrenamiento y prueba. - Divida los datos de entrenamiento en
x_train,y_train,x_testey_test.
- Lea los datos de entrenamiento desde el archivo
def getData():
"""
Read data from csv files. And split the train data into train and test for validation.
"""
## step1. read data from csv files
data = pd.read_csv(trainfile)
test = pd.read_csv(testfile)
## step2. label encoding
data = label(data)
test = label(test)
## step3. split train data into train and 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
- En la función
label(), complete la implementación del proceso de codificación de etiquetas:- Itere a través de cada columna en los datos.
- Si el tipo de datos de la columna es
object, cree una instancia deLabelEncodery ajuste la instancia a los datos de la columna. - Si el nombre de la columna es
"RISK", almacene la instancia deLabelEncoderen la variableconvertor. - Transforme los datos de la columna utilizando la instancia de
LabelEncodery actualice la columna en los datos. - Devuelva los datos actualizados.
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
Después de completar este paso, tendrá los datos de entrenamiento y prueba listos para el siguiente paso.
Entrenar el modelo
En este paso, aprenderá a entrenar un modelo de clasificación de aprendizaje automático utilizando los datos de entrenamiento.
- En la función
predict(), complete las siguientes tareas:- Cree una instancia del modelo
SVCdel módulosklearn.svm. - Ajuste el modelo a los datos
x_trainey_trainutilizando el métodofit().
- Cree una instancia del modelo
def predict(model=MODEL):
"""
Use the model to predict the result.
"""
## step1. get the model
predictor = model()
## step2. get the data
x_train, y_train, x_test, _ = getData()
## step3. train the model
predictor.fit(x_train, y_train)
## step4. predict and save
res = predictor.predict(x_test)
save(res)
Después de completar este paso, el modelo estará entrenado y listo para hacer predicciones en los datos de prueba.
Guardar las predicciones
En este paso, aprenderá a guardar los resultados de predicción en el archivo credit_risk_pred.csv.
- En la función
save(), complete las siguientes tareas:- Utilice la variable
convertorpara transformar inversamente los resultados de predicción de vuelta a las etiquetas originales. - Cree un DataFrame de Pandas con los resultados de predicción y guárdelo en el archivo
credit_risk_pred.csvutilizandopd.DataFrame().to_csv().
- Utilice 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=",")
Después de completar este paso, los resultados de predicción se guardarán en el archivo credit_risk_pred.csv.
Ejecutar la predicción
En este último paso, ejecutará el proceso de predicción y comprobará la salida.
- En el bloque
if __name__ == "__main__":, llame a la funciónpredict()para ejecutar el proceso de predicción. - En su terminal, ejecute el archivo predict.py con el siguiente comando:
python3 predict.py
- Después de ejecutar el archivo
predict.py, debería ver la siguiente salida:
Predict done!
- Compruebe el archivo
credit_risk_pred.csven el directorio del proyecto. Debería contener los resultados de predicción para los datos de prueba.
¡Felicitaciones! Ha completado con éxito el proyecto de predicción de riesgo de los titulares de tarjetas de crédito. Ha aprendido a:
- Preparar los datos realizando codificación de etiquetas en las características no numéricas
- Entrenar un modelo de clasificación de aprendizaje automático utilizando los datos de entrenamiento
- Guardar los resultados de predicción en un archivo CSV
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



