Datos numéricos: Cualidades de los buenos atributos numéricos

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=True

watch_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'}.