Cómo crear y ejecutar un modelo de aprendizaje no supervisado para hacer predicciones con k-medias

El algoritmo K-means requiere un parámetro de inicialización desde el usuario con el fin de crear una instancia para el análisis predictivo. Se necesita saber cuántos K racimos a utilizar para llevar a cabo su trabajo.

sépalo Longitudsépalo AnchoLongitud pétalopétalo AnchoClase de destino / de la etiqueta
5.13.51.40.2Setosa (0)
7.03.24.71.4Versicolor (1)
6.33.36.02.5Virginica (2)

Dado que está utilizando el conjunto de datos del iris, que ya sabemos que tiene tres grupos. El conjunto de datos del iris tiene tres clases de la flor del iris (Setosa, versicolor, y Virginica). En general, cuando se está creando una tarea de aprendizaje no supervisado con un algoritmo de agrupamiento, usted no sabe cuántos grupos para especificar.

Algunos algoritmos están disponibles que tratan de determinar el mejor número de grupos, pero sus resultados pueden ser dudosa. Uno de tales itera método de una serie de grupos y se selecciona un número de grupos que mejor se adapte a sus criterios matemáticos. Este enfoque requiere la computación pesada, puede tardar mucho tiempo, y todavía no puede producir el mejor K (Número de grupos).

La mejor manera de obtener resultados inmediatos es hacer una conjetura sobre el número de grupos de utilizar - basar su estimación de las características presentes en los datos (si uno o múltiples características), o en algún otro conocimiento de los datos que puede tener de el experto dominio de negocio.

Video: Zeitgeist Moving Forward (completo) (subtítulos en español)

Este volver a caer en conjeturas (conjeturas incluso educado) es una limitación importante de los K-means algoritmo de agrupamiento.

Para crear una instancia de los K-means algoritmo de agrupamiento y ejecutar los datos a través de él, el código siguiente en el intérprete.

Video: Inteligencia Artificial - USIL - Clase 13 - Aprendizaje No Supervisado - K-Medias

gt; gt; gt; de importación sklearn.cluster KMeansgt; gt; gt; kmeans = KMeans (n_clusters = 3, random_state = 111) gt; gt; gt; kmeans.fit (iris.data)

La primera línea de código importa la biblioteca KMeans en la sesión. La segunda línea crea el modelo y lo almacena en una variable denominada kmeans. El modelo se crea con el número de grupos establece en 3. La tercera línea se ajusta al modelo a los datos del iris.

Montaje del modelo es la parte central del algoritmo, donde producirá los tres grupos con el conjunto de datos dado y la construcción de una función matemática que describe la línea o curva que mejor se ajuste a los datos. Para ver los clústeres que produce el algoritmo, escriba el siguiente código.

gt; gt; gt; kmeans.labels_

El resultado debe ser similar a esto:

Video: Proceso de mineria de datos usando Orange Canvas

array ([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 0,0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0 , 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 2, 0,2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2,0, 2, 0, 2, 0 , 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 2, 2,2, 2, 0, 2, 2, 2, 0, 2, 2, 2, 0, 2, 2 , 0])

Así es como el algoritmo K-means etiquetas de los datos como pertenecientes a los grupos, sin la entrada del usuario acerca de los valores objetivo. Aquí lo único K-means sabían era lo que proporcionó dicha información: el número de grupos. Este resultado muestra cómo el algoritmo de vista de los datos, y lo que aprendió acerca de las relaciones de los elementos de datos entre sí - de ahí el término aprendizaje no supervisado.

Se puede ver de inmediato que algunos de los puntos de datos fueron mal etiquetado. Ya sabes, a partir del conjunto de datos del iris, lo que los valores objetivo deben ser:

  • Las primeras 50 observaciones deben ser etiquetados de la misma (como 1s en este caso).

    Esta gama se conoce como el setosa clase.

  • Observaciones 51 a 100 deben ser etiquetados de la misma (como 0s en este caso).

    Esta gama se conoce como el clase versicolor.

  • Observaciones 101 a 150 deben ser etiquetados de la misma (como 2s en este caso).

    Esta gama se conoce como el clase virginica.

No importa si K-means etiquetados cada conjunto de 50 con un 0, 1, o 2. Mientras cada conjunto de 50 tiene la misma etiqueta, predijo con exactitud el resultado. Es hasta usted para dar a cada grupo un nombre y encontrar sentido en cada grupo.

Si ejecuta el algoritmo K-means nuevo, puede producir un número completamente diferente para cada conjunto de 50 - pero el significado sería el mismo para cada conjunto (clase).

Se puede crear un modelo de K-medias que puede generar el mismo resultado cada vez que pasa por el random_state parámetro con un valor de inicialización fija a la función que crea el modelo. El algoritmo depende de aleatoriedad para inicializar los centros de los conglomerados.

Proporcionar un valor de semilla concreta quita la aleatoriedad. Si lo hace, en esencia dice K-means para seleccionar los mismos puntos de datos iniciales para inicializar los centros de los conglomerados, cada vez que se ejecuta el algoritmo. Es posible obtener un resultado diferente mediante la eliminación de la random_state parámetro de la función.

Artículos Relacionados