6 votos

Uso de características no numéricas

Estoy empezando con el aprendizaje automático. El ejemplo que me mostraron durante un mini curso que tomé fue la predicción del precio de venta de una casa dadas características como:

  • tamaño de la casa
  • número de plantas
  • edad de la casa
  • número de habitaciones

Dadas esas características, es trivial entrenar un algoritmo para minimizar alguna función de coste, que en el curso que yo hice, era la suma de las diferencias entre el valor del conjunto de entrenamiento y la función utilizada para ajustarlo.

Mi pregunta: ¿cómo puedo trabajar con una característica que no se representa como un número?

Por ejemplo, ¿qué pasaría si una de las características fuera, por ejemplo, el nombre del instituto más cercano?

4voto

Rob Allen Puntos 486

En la mayoría de los casos, se encuentra una manera de convertir la característica no numérica en una numérica, y luego ir de allí.

La solución más sencilla es generar un conjunto de variables indicadoras . Por ejemplo, si tiene $n$ diferentes escuelas, podría añadir un conjunto de $n$ variables $S_1, S_2, \ldots S_n$ a cada punto de datos. Para indicar que $i$ La escuela de tu lista es la más cercana, establece $S_i = 1$ y poner a cero el resto de las variables. Esto funciona bien cuando 1) el identidad de la escuela más cercana importa y 2) puede enumerar las escuelas presentes en su conjunto de datos.

También puede pensar que la identidad de la escuela por sí mismo en realidad no contiene mucha información; es sólo un sustituto de la información sobre el tamaño de la escuela, los resultados de los exámenes, la proporción de alumnos por profesor, etc. Se podría únase a su conjunto de datos con otra fuente de datos que tenga ese tipo de información. Las características serían ahora algo así como "tamaño de la escuela secundaria más cercana", "puntuación media del SAT en la escuela secundaria más cercana", etc.

También es posible que el nombre de la escuela tiene un poco de señal en ella. Por ejemplo, un buen sistema escolar podría tener escuelas imán y/o de laboratorio en él. Podría diseñar características para extraerlas de una cadena que contenga el nombre de la escuela. Estas se añadirían, como variables indicadoras, a su conjunto de características. Este proceso, a menudo denominado ingeniería de funciones puede requerir algunos conocimientos del sector.

Sin embargo, en algunos casos, se puede trabajar directamente sobre los datos no numéricos. Esto es especialmente cierto cuando se construye un clasificador discriminativo (o cualquier otra cosa que utilice distancias). Por ejemplo, hay núcleos especiales para las máquinas de vectores de apoyo que permiten operar directamente con cadenas (por ejemplo, http://www.jmlr.org/papers/volume2/lodhi02a/lodhi02a.pdf ), sin convertirlos en algo así como un vector de bolsa de palabras o algo parecido.

4voto

Alex Chin Puntos 131

Puede haber muchas variables categóricas que afecten al precio de venta - por ejemplo, Ready_for_immediate_occupancy (Sí/No). No me preocuparé por su variable específica -la escuela secundaria más cercana- y sólo abordaré el uso de variables categóricas en la regresión.

Como dijo @Matt Krause, ciertamente no es raro utilizar variables indicadoras y tratarlas simplemente como variables numéricas. Pero también hay otros métodos. Uno de mis favoritos es utilizar árboles de decisión. Mucha gente aprende sobre los árboles de decisión como un medio de clasificación - prediciendo un nominal valor. Su pregunta se refiere a la regresión, es decir, a la predicción de un numérico valor. Pero los árboles de decisión funcionan bien para la regresión y no tienen problemas con las variables categóricas. Uno de los métodos más populares es CART - Clasificación y Regresión Árboles. Otros algoritmos de árboles de decisión también lo hacen. Intente buscar en Google decision trees regression y debería encontrar muchas cosas sobre el tema.

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