14 votos

¿Es correcto mezclar datos categóricos y continuos para SVM (Support Vector Machines)?

Tengo un conjunto de datos como

+--------+------+-------------------+
| income | year |        use        |
+--------+------+-------------------+
|  46328 | 1989 | COMMERCIAL EXEMPT |
|  75469 | 1998 | CONDOMINIUM       |
|  49250 | 1950 | SINGLE FAMILY     |
|  82354 | 2001 | SINGLE FAMILY     |
|  88281 | 1985 | SHOP & HOUSE      |
+--------+------+-------------------+

Lo incrusto en un espacio vectorial en formato LIBSVM

+1 1:46328 2:1989 3:1
-1 1:75469 2:1998 4:1
+1 1:49250 2:1950 5:1
-1 1:82354 2:2001 5:1
+1 1:88281 2:1985 6:1

Índices de características:

  • 1 es "ingreso"
  • 2 es "año"
  • 3 es "uso/exención comercial"
  • 4 es "uso/CONDOMINIO"
  • 5 es "uso/Familia Única"
  • 6 es "uso/tienda y casa"

¿Es correcto entrenar una máquina de vectores de apoyo (SVM) con una mezcla de datos continuos (año, ingresos) y categóricos (uso) como ésta?

3 votos

Debería deletrear "SVM", al menos una vez.

1 votos

Asegúrate de escalar esos datos.

7voto

LachlanG Puntos 133

Sí, pero quizá no en el sentido que usted quiere. En mi investigación suelo crear características categóricas a partir de otras de valor continuo utilizando un algoritmo como partición recursiva . Suelo utilizar este enfoque con el SVMLight implementación de máquinas de vectores de soporte, pero también lo he utilizado con LibSVM. Tendrá que asegurarse de asignar sus características categóricas particionadas a un lugar específico en su vector de características durante el entrenamiento y la clasificación, de lo contrario su modelo va a terminar jumbly.

Editar: Es decir, cuando he hecho esto, asigno los primeros n elementos del vector a los valores binarios asociados a la salida del particionamiento recursivo. En el modelado de características binarias, sólo tiene un vector gigante de 0 y 1, por lo que todo parece lo mismo para el modelo, a menos que indique explícitamente donde están las diferentes características. ¡Esto es probablemente demasiado específico, ya que me imagino que la mayoría de las implementaciones de SVM harán esto por su cuenta, pero, si le gusta programar su propio, podría ser algo para pensar!

1 votos

Gracias Kyle, ¿puedes ser un poco más específico? ¿Qué quieres decir con "asignar tus características categóricas particionadas a un lugar específico"?

0 votos

@SeamusAbshere ¡No hay problema! ¡He editado mi respuesta para abordar esto!

0 votos

Me parece haber oído que libsvm hace lo que tú dices de forma automática, ¿alguna idea?

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