Codificación de características

Desde cierto punto de vista, las características predictivas pueden ser clasificadas como variables cuantitativas o variables cualitativas (frecuentemente denominadas categóricas).

Las variables cuantitativas son aquellas que se expresan con números y en las que tiene sentido realizar operaciones aritméticas. Básicamente, son estas características en las que se va a basar un algoritmo para entrenar un modelo predictivo.

Por el contrario, las variables categóricas son aquellas que expresan cualidades o atributos del elemento al que se refieren y no pueden ser medidas con números o, éstos, si se usan, no justifican la posibilidad de aplicar operaciones aritméticas sobre ellos. Por ejemplo, supongamos que asignamos al estado civil de una persona un número (1 = soltero, 2 = casado, 3 = viudo, 4 = divorciado, etc.). No tendría ningún sentido calcular el "valor medio del estado civil" de una población, pues bastaría con asignar otros valores a cada uno de los estados para que el resultado fuese totalmente distinto.

Las variables categóricas pueden, a su vez, ser divididas en dos tipos: variables categóricas nominales y variables categóricas ordinales.

Las variables categóricas nominales son aquellas en las que no hay un orden entre sus valores. Volviendo al ejemplo de los estados civiles, no tendría sentido afirmar que los solteros van antes que los casados y estos antes que los viudos o que los divorciados. Se trata, por lo tanto, de una variable categórica nominal.

Por último, las variables categóricas ordinales son aquellas en las que existe un orden implícito en los valores que puede tomar. Por ejemplo: el grado de satisfacción de un consumidor respecto a un cierto producto, variable que podría tomar los valores “insatisfecho”, “poco satisfecho”, “ni satisfecho ni insatisfecho”, “algo satisfecho” o “muy satisfecho”, por ejemplo. O la temperatura: "frío", "templado" o "caliente".

En general, las variables categóricas (tanto las nominales como las ordinales) deberán ser codificadas o convertidas a valores numéricos para entrenar un algoritmo a partir de ellas.

Por ejemplo, si visualizamos el dataset Titanic proveído por seaborn:

titanic = sns.load_dataset("titanic")

titanic.head()

Codificación de características

vemos que, por ejemplo, la característica "sex" es una característica categórica nominal que contiene los valores "male" y "female"; "embarked" es también una característica categórica nominal que contiene al menos los valores "S" y "C", la característica "pclass" es una característica categórica ordinal que contiene los valores 1, 2 y 3, indicando la clase en la que viajaba cada pasajero, etc.

De forma que la pregunta que podríamos hacernos es, ¿cómo convertir estos valores en números?

Y, como suele ocurrir en el área de Data Science, la respuesta no es única. Existen diferentes métodos y cada uno tiene sus ventajas e inconvenientes, y serán los datos siendo analizados los que nos lleven en cada caso a decantarnos por una u otra opción. Revisemos algunos de los métodos más frecuentemente usados.