En esta unidad, se exploraron formas de asignar datos sin procesar a vectores de atributos adecuados. Las buenas características numéricas comparten las cualidades que se describen en esta sección.
Debe tener un nombre claro.
Cada atributo debe tener un significado claro, sensato y evidente para cualquier persona que trabaje en el proyecto. Por ejemplo, el significado del siguiente valor de atributo es confuso:
No recomendado
house_age: 851472000
En cambio, el nombre y el valor de la siguiente función son mucho más claros:
Recomendado
house_age_years: 27
Se verificó o probó antes del entrenamiento
Si bien en este módulo se dedicó mucho tiempo a los valores atípicos, el tema es lo suficientemente importante como para merecer una mención final. En algunos casos, son los datos incorrectos (y no las decisiones de ingeniería incorrectas) los que generan valores poco claros. Por ejemplo, el siguiente user_age_in_years
proviene de una fuente que no verificó los valores adecuados:
No recomendado
user_age_in_years: 224
Sin embargo, las personas pueden tener 24 años en los siguientes casos:
Recomendado
user_age_in_years: 24
Verifica tus datos
Sensible
Un "valor mágico" es una discontinuidad intencional en una función que, de otro modo, sería continua. Por ejemplo, supongamos que un atributo continuo llamado watch_time_in_seconds
puede contener cualquier valor de punto flotante entre 0 y 30, pero representa la ausencia de una medición con el valor mágico -1:
No recomendado
watch_time_in_seconds: -1
Un watch_time_in_seconds
de -1 forzaría al modelo a intentar averiguar qué significa mirar una película hacia atrás en el tiempo. Es probable que el modelo resultante no realice buenas predicciones.
Una mejor técnica es crear un atributo booleano independiente que indique si se proporciona o no un valor watch_time_in_seconds
. Por ejemplo:
Recomendado
watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=Truewatch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False
Esta es una forma de manejar un conjunto de datos continuo con valores faltantes. Ahora, considera
un atributo numérico discreto, como product_category
, cuyos valores deben pertenecer a un conjunto
finito de valores. En este
caso, cuando falte un valor, indícalo con un valor nuevo en
el conjunto finito. Con un atributo discreto, el modelo aprenderá diferentes pesos para cada valor, incluidos los pesos originales de los atributos faltantes.
Por ejemplo, podemos imaginar los valores posibles que se ajustan al conjunto:
{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.