¿Cómo convertir los valores vectoriales para adaptarse a la función de algoritmo K-means?

datascience.stackexchange https://datascience.stackexchange.com/questions/6830

  •  16-10-2019
  •  | 
  •  

Pregunta

Tengo un conjunto de objetos de usuario que quiero agrupar usando una función de $ K $ -Means de sus respuestas de cuestionario. Cada pregunta de prueba tenía respuestas predefinidas con valores de letras "a B C D". Si un usuario responde al Pregunta 1 con una carta "b", Pongo esta respuesta en Vector $ (0, 1, 0, 0) $. La función de $ K $ -Means que tengo que usar toma una matriz bidimensional de números como vector de entrada (en este caso Matriz [usuario] [pregunta]), y no puedo entender cómo usarlo, porque, porque, porque, porque, porque, porque, porque, porque, porque, porque, es En lugar de un valor numérico que representa la respuesta de un usuario a la pregunta, tengo una entrada vectorial. ¿Cómo puedo convertir mis valores vectoriales en números para que pueda usar mi función de $ K $ -Means?

¿Fue útil?

Solución

Tienes el 95% allí, solo tienes una colgada ...

La vectorización que está haciendo se conoce alternativamente como binarización o codificación de un solo estado. Lo único que debe hacer ahora es romper todos esos vectores y pensar en ellos como características individuales.

Entonces, en lugar de pensar en la pregunta un vector como $ (0,0,1,0) $ y la pregunta dos vector como $ (0,1,0,0) $, ahora puede pensar en ellos como características individuales.

Así que esto:

-      q1,        q2
-      (a,b,c,d), (a,b,c,d)
user1  (0,0,1,0), (0,1,0,0)
user2  (1,0,0,0), (0,0,0,1)

Se convierte en esto:

-      q1a,q1b,q1c,q1d,q2a,q2b,q2c,q2d
user1  0   0   1   0   0   1   0   0
user2  1   0   0   0   0   0   0   1

Y puede pensar en cada una de esas características binarias como una dimensión ortogonal en sus datos que se encuentran en un espacio 8 dimensional.

¡Espero que esto ayude!

Otros consejos

Una matriz bidimensional es una lista de vectores, por lo que

{{userid1,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd}
{userid2,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd},
...,
{useridk,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd}}

sería una entrada adecuada para una prueba con n preguntas y k concursantes, donde 1a representa la respuesta a para la pregunta uno.

Licenciado bajo: CC-BY-SA con atribución
scroll top