40 votos

¿cómo representar la geografía o el código postal en un modelo de aprendizaje automático o un sistema de recomendación?

Estoy construyendo un modelo y creo que la ubicación geográfica puede ser muy buena para predecir mi variable objetivo. Tengo el código postal de cada uno de mis usuarios. Sin embargo, no estoy del todo seguro de cuál es la mejor manera de incluir el código postal como característica de predicción en mi modelo. Aunque el código postal es un número, no significa nada si el número sube o baja. Podría binarizar los 30.000 códigos postales y luego incluirlos como características o nuevas columnas (por ejemplo, {user_1: {61822: 1, 62118: 0, 62444: 0, etc.}}. Sin embargo, parece que esto añadiría una tonelada de características a mi modelo.

¿Alguna idea sobre la mejor manera de manejar esta situación?

23voto

Boris Tsirelson Puntos 191

Hay 2 buenas opciones que he visto:

  1. Convierta cada código postal en una variable ficticia. Si tiene muchos datos datos, ésta puede ser una solución rápida y fácil, pero no podrá hacer predicciones para nuevos códigos postales. Si le preocupa el número de características, puede añadir alguna regularización a su modelo para eliminar algunos de los códigos postales del modelo.
  2. Utilice la latitud y la longitud del punto central del código postal como variables. Esto funciona muy bien en los modelos basados en árboles, ya que pueden cortar la cuadrícula de latitud/longitud en regiones que son relevantes para su variable objetivo. Esto también le permitirá hacer predicciones para nuevos códigos postales, y no requiere tantos datos para acertar. Sin embargo, esto no funcionará bien para los modelos lineales.

Personalmente, me gustan mucho los modelos basados en árboles (como los bosques aleatorios o los GBM), así que casi siempre elijo la opción 2. Si quiere ser realmente sofisticado, puede utilizar la lat/lon del centro de población para el código postal, en lugar del centroide del código postal. Pero eso puede ser difícil de conseguir.

23voto

Chris Carruthers Puntos 1441

Uno de mis usos favoritos de los datos del código postal es buscar variables demográficas basadas en el código postal que de otro modo no estarían disponibles a nivel individual...

Por ejemplo, con http://www.city-data.com/ puedes buscar la distribución de los ingresos, los rangos de edad, etc., que pueden decirte algo sobre tus datos. Estas variables continuas suelen ser mucho más útiles que las basadas en códigos postales binarios, al menos para cantidades de datos relativamente finitas.

Además, los códigos postales son jerárquicos... si se toman los dos o tres primeros dígitos, y se binariza en base a ellos, se tiene una cierta cantidad de información regional, lo que permite obtener más datos que los códigos postales individuales.

Como dijo Zach, la latitud y la longitud utilizadas también pueden ser útiles, especialmente en un modelo basado en árboles. Para un modelo lineal regularizado, se pueden utilizar quadtrees, dividiendo los Estados Unidos en cuatro grupos geográficos, binarizados esos, luego cada una de esas áreas en cuatro grupos, e incluyendo esos como variables binarias adicionales... así que para n regiones de hoja total se termina con [(4n - 1)/3 - 1] variables totales (n para las regiones más pequeñas, n/4 para el siguiente nivel hacia arriba, etc). Por supuesto, esto es multicolineal, por lo que se necesita una regularización para hacerlo.

6voto

Jasen Puntos 356

Si está calculando la distancia entre registros, como en clustering o K-NN, las distancias entre códigos postales en su forma cruda podrían ser informativas. 02138 está mucho más cerca de 02139, geográficamente, que de 45809.

5voto

Me enfrenté a algo similar al entrenar un clasificador que utilizaba la lengua materna como característica (¿cómo se mide la similitud entre el inglés y el español?) Hay muchos métodos para determinar similitud entre datos no categóricos .

Depende de sus datos, pero si considera que la distancia geográfica de un código postal no es tan importante como el hecho de que una entrada determinada contenga determinados códigos postales, los métodos no categóricos podrían ser útiles.

5voto

David Cumps Puntos 370

Yo haría un mapa coroplético de los residuos de tu modelo a nivel de código postal.

El resultado se denomina mapa de residuos espaciales y puede ayudarle a elegir una nueva variable explicativa para incluir en su modelo. T

Un flujo de trabajo potencial:

  1. para cada código postal obtener el residuo medio
  2. hacer un mapa coroplético para ver la distribución geográfica de los residuos
  3. buscar patrones que puedan ser explicados por una nueva variable explicativa. Por ejemplo, si ve que todos los códigos postales suburbanos, del sur o de la playa tienen residuos elevados, puede añadir una variable ficticia regional definida por la agrupación de códigos postales correspondiente, o si ve residuos elevados para los códigos postales de altos ingresos, puede añadir una variable de ingresos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X