Representación: Cualidades de los buenos atributos

Analizamos formas de asignar datos sin procesar a vectores de atributos adecuados, pero esto es solo parte del trabajo. Ahora, debemos analizar qué tipo de valores conforman buenos atributos en esos vectores de atributos.

Evita los valores de atributos discretos con poco uso

Los buenos valores de atributos deben aparecer más de 5 veces en un conjunto de datos. Esto permite que un modelo aprenda cómo se relaciona este valor de atributo con la etiqueta. Es decir, tener muchos ejemplos con el mismo valor discreto le permite al modelo ver el atributo en diferentes escenarios y, a su vez, determinar cuándo es una buena predicción para la etiqueta. Por ejemplo, es probable que un atributo house_type contenga muchos ejemplos en los que su valor sea victorian:

house_type: victorian

Del mismo modo, si el valor de un atributo aparece solo una vez o muy de vez en cuando, el modelo no puede realizar predicciones basadas en ese atributo. Por ejemplo, unique_house_id es un atributos malo porque cada valor solo se puede usar una vez, por lo que el modelo no puede aprender nada:

unique_house_id: 8SK982ZZ1242Z

Busca los significados claros y evidentes

Cada atributo debe tener un significado claro y evidente para todas las personas que trabajan en el proyecto. Por ejemplo, considera el siguiente atributo apropiado para la antigüedad de una casa, que se reconoce instantáneamente como la antigüedad en años:

house_age: 27

Por el contrario, el siguiente valor de atributo solo es comprensible para la persona que lo creó:

house_age: 851472000

En algunos casos, son los datos inconsistentes (y no las decisiones de ingeniería incorrectas) los que generan valores poco claros. Por ejemplo, el valor user_age se obtiene a partir de una fuente en la que no se verificaron los valores correctos:

user_age: 277

No mezcles valores "mágicos" con datos reales

Los atributos de punto flotante válidos no contienen discontinuidades fuera de rango particulares ni valores "mágicos". Por ejemplo, supongamos que un atributo tiene un valor de punto flotante entre 0 y 1. De esta manera, los siguientes valores son correctos:

quality_rating: 0.82
quality_rating: 0.37

Sin embargo, si un usuario no ingresó un valor de quality_rating, tal vez el conjunto de datos representó su ausencia con un valor mágico como el siguiente:

quality_rating: -1

Para evitar los valores mágicos, convierte el atributo en dos atributos:

  • Un atributo contiene solo calificaciones de calidad, nunca valores mágicos.
  • Un atributo contiene un valor booleano, que indica si se proporciona quality_rating o no. Asigna un nombre como is_quality_rating_defined a este atributo booleano.

Ten en cuenta la inestabilidad de los sistemas upstream

La definición de un atributo no debe cambiar en el tiempo. Por ejemplo, el siguiente valor es útil porque el nombre de la ciudad probablemente no cambie. (Ten en cuenta que debemos convertir una string como "br/sao_paulo" a un vector de un solo 1 de todas formas).

city_id: "br/sao_paulo"

Sin embargo, obtener un valor inferido por otro modelo tiene un costo adicional. Tal vez el valor "219" representa actualmente a San Pablo, pero esa representación podría cambiar fácilmente en una próxima ejecución del otro modelo:

inferred_city_cluster: "219"

Enviar comentarios sobre…

Curso intensivo de aprendizaje automático