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.py en 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.csv utilizando pd.read_csv().
- Lea los datos de prueba desde el archivo
credit_risk_test.csv utilizando pd.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_test e y_test.
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 de LabelEncoder y ajuste la instancia a los datos de la columna.
- Si el nombre de la columna es
"RISK", almacene la instancia de LabelEncoder en la variable convertor.
- Transforme los datos de la columna utilizando la instancia de
LabelEncoder y 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.