Como criar e executar um modelo de aprendizagem não supervisionada para fazer previsões com k-médias

O algoritmo K-means exige um parâmetro de inicialização do usuário, a fim de criar uma instância para análise preditiva. Ele precisa de saber quantas K

clusters para usar para executar o seu trabalho.

Video: Aprendizado de maquina - Algoritmo KNN

sepal Comprimentosepal LarguraComprimento pétalapétala LarguraClasse Alvo / etiqueta
5.13,51,40,2Setosa (0)
73.24.71,4Versicolor (1)
6,33,362,5Virginica (2)

Desde que você está usando o conjunto de dados Iris, você já sabe que ele tem três clusters. O conjunto de dados Iris tem três classes da flor Iris (setosa, Versicolor, e Virginica). Em geral, quando você está criando uma tarefa aprendizado não supervisionado com um algoritmo de agrupamento, você não sabe quantos conjuntos para especificar.

Video: Tutoriales RapidMiner: Agrupamiento con K-Means

Alguns algoritmos estão disponíveis que tentar determinar o melhor número de clusters, mas seus resultados podem ser duvidosa. Um desses itera método a partir de uma gama de aglomerados e, em seguida, selecciona um número de aglomerados que melhor se adapta seus critérios matemáticos. Esta abordagem requer a computação pesada, pode levar um longo tempo, e ainda não pode produzir a melhor K (Número de aglomerados).

A melhor maneira de obter resultados imediatos é fazer um palpite sobre o número de clusters para usar - basear a sua estimativa sobre características presentes nos dados (se um ou vários recursos), ou em algum outro conhecimento dos dados que você pode ter de o especialista domínio do negócio.

Este caindo para trás em adivinhação (adivinhação, mesmo educado) é uma grande limitação das K-means clustering algoritmo.

Para criar um exemplo dos meios de agrupamento K-algoritmo e executar os dados através dele, digite o seguinte código no interpretador.

gt; gt; gt; sklearn.cluster de importação KMeansgt; gt; gt; kmeans = kmeans (n_clusters = 3, random_state = 111) gt; gt; gt; kmeans.fit (iris.data)

A primeira linha de código importa a biblioteca kmeans na sessão. A segunda linha cria o modelo e as armazena em uma variável chamada kmeans. O modelo é criado com o número de clusters definido para 3. A terceira linha se encaixa no modelo aos dados Iris.

Montagem do modelo é a parte principal do algoritmo, onde ele irá produzir os três grupos com o conjunto de dados dada e construir uma função matemática que descreva a linha ou curva que melhor se ajusta aos dados. Para ver os clusters que o algoritmo produz, digite o seguinte código.

gt; gt; gt; kmeans.labels_

A saída deve ser semelhante a este:

matriz ([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])


Esta é a forma como o algoritmo K-means etiqueta os dados como pertencentes a conjuntos, sem intervenção do utilizador sobre os valores-alvo. Aqui a única coisa K-means sabia era o que você desde que: o número de clusters. Este resultado mostra como o algoritmo visto os dados, eo que aprendeu sobre as relações de itens de dados para o outro - daí o termo aprendizagem não supervisionada.

Você pode ver imediatamente que alguns dos pontos de dados foram classificadas erroneamente. Você sabe, a partir do conjunto de dados Iris, que os valores-alvo deve ser:

  • As primeiras 50 observações deve ser marcada ao mesmo (como 1s, neste caso).

    Esta gama é conhecido como o setosa classe.

  • As observações 51 a 100 devem ser rotuladas do mesmo (como 0s neste caso).

    Esta gama é conhecido como o classe versicolor.

  • Observações 101 a 150 deve ser marcada ao mesmo (como 2s, neste caso).

    Esta gama é conhecido como o classe virginica.

Não importa se o K-means marcado cada conjunto de 50 com um 0, 1, ou 2. Enquanto cada conjunto de 50 tem a mesma etiqueta, previu com precisão o resultado. É até você para dar a cada grupo um nome e de encontrar significado em cada cluster.

Se você executar o algoritmo K-means novamente, pode produzir um número completamente diferente para cada conjunto de 50 - mas o significado seria o mesmo para cada conjunto (classe).

Você pode criar um modelo K-means que pode gerar a mesma saída de cada vez, passando o random_state parâmetro com um valor de semente fixa para a função que cria o modelo. O algoritmo depende de aleatoriedade para inicializar os centros de cluster.

Fornecer um valor de semente fixa tira a aleatoriedade. Ao fazê-lo, essencialmente, diz K-significa para selecionar os mesmos pontos de dados iniciais para inicializar os centros de cluster, cada vez que você executar o algoritmo. É possível obter um resultado diferente, removendo o random_state parâmetro da função.


Publicações relacionadas