Los datos categóricos son los que generalmente toman un número limitado de valores posibles. Además, los datos de la categoría no tienen por qué ser numéricos, sino que pueden ser de naturaleza textual. Todos los modelos de aprendizaje de máquinas son algún tipo de modelo matemático que necesita números para funcionar. Esta es una de las principales razones por las que necesitamos preprocesar los datos categóricos antes de que podamos alimentarlos a los modelos de aprendizaje automático.
Consideremos el siguiente conjunto de datos:
123importar pandas como pd df = pd.read_csv($0027household_data.txt$0027)print(df)
pitón
Salida
123456Categoría de Artículo Sexo Edad Salario Comprado0 Aptitud física Hombre 2030000 Si1 Aptitud física Mujer 5070000 No2 Alimentación Hombre 3550000 Si3 Cocina Hombre 2240000 No4 Cocina Mujer 3035000 Si
pitón
Intuitivamente, se puede ver que Item_Category (Fitness, Food, Kitchen), Gender (Male, Female), y Purchased (Yes, No) son las variables categóricas, ya que sólo hay un conjunto limitado de valores que éstas pueden tomar.
En el resto de esta guía, veremos cómo podemos usar la biblioteca de aprendizaje de la pitón para manejar los datos categóricos. Scikit-learn es un conjunto de herramientas de aprendizaje automático que proporciona varias herramientas para atender a los diferentes aspectos del aprendizaje automático, por ejemplo: Clasificación, Regresión, Agrupación, Reducción de la dimensionalidad, Selección de modelos, Preprocesamiento.
Hay una sutil diferencia en la forma en que se manejan los datos categóricos de las variables dependientes e independientes. Aprenderemos más sobre esto más adelante en la guía. Dicho esto, necesitamos dividir nuestro conjunto de datos en la matriz dependiente (X) y el vector independiente (y).
Bien, crearemos la matriz dependiente (X) a partir del conjunto de datos:
12X = df.iloc[:,:-1].valuesprint(X)
pitón
Salida
12345[[$0027Fitness$0027$0027Hombre$00272030000][$0027Fitness$0027$0027Mujer$00275070000][$0027Comida$0027$0027Hombre$00273550000][$0027Cocina$0027$0027Hombre$00272240000][$0027Cocina$0027$0027Mujer$00273035000]]
pitón
Entonces, extraeremos el conjunto de datos para obtener el vector dependiente:
12y = df.iloc[:,-1].valuesprint(Y)
pitón
Salida
1[$0027Sí$0027, $0027No$0027, $0027Sí$0027, $0027No$0027, $0027Sí$0027]
pd