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 del usuario con el fin de crear una instancia de análisis predictivo. Tiene que saber cuántos K grupos a utilizar para llevar a cabo su labor.

Sépalo LongitudSépalo AnchoPétalo LongitudPétalo AnchoClase Objetivo / Label
5.13.51.40.2Setosa (0)
7.03.24.71.4Versicolor (1)
6.33.36.02.5Virginica (2)

Puesto que usted está usando el conjunto de datos del iris, que ya sabemos que tiene tres grupos. El conjunto de datos Iris cuenta con 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. Una de estas iteraciones del método de una serie de grupos y luego selecciona un número de grupos que mejor se adapte a sus criterios matemáticos. Este enfoque requiere cómputo pesado, 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 (ya sea una o varias características), o en algún otro conocimiento de los datos que puede tener de el experto dominio del negocio.

Este volver a caer en conjeturas (conjeturas incluso educada) es una de las principales limitaciones de los K-means clustering algoritmo.

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

>>> From KMeans importación sklearn.cluster >>> KMeans = KMeans (n_clusters = 3, random_state = 111) >>> 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 llamada KMeans. El modelo se crea con el número de grupos establecidos a 3. La tercera línea se ajusta al modelo a los datos del iris.

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

>>> Kmeans.labels_

El resultado debe ser similar a esto:

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])

Es así como el algoritmo K-means etiquetas de los datos como pertenecientes a las agrupaciones, sin intervención del usuario acerca de los valores objetivo. Aquí lo único K-means sabían era lo que siempre es: el número de conglomerados. Este resultado muestra cómo el algoritmo de vista de los datos, y lo que aprendió sobre 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 se mislabeled. 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 el K-means etiquetan cada conjunto de 50 con un 0, 1 ó 2. Mientras cada juego de 50 tiene la misma etiqueta, predijo con exactitud el resultado. Todo depende de usted para dar a cada grupo un nombre y encontrar un sentido a 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).

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

Proporcionar un valor semilla fija 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.




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