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
Conteúdo
Video: Aprendizado de maquina - Algoritmo KNN
sepal Comprimento | sepal Largura | Comprimento pétala | pétala Largura | Classe Alvo / etiqueta |
---|---|---|---|---|
5.1 | 3,5 | 1,4 | 0,2 | Setosa (0) |
7 | 3.2 | 4.7 | 1,4 | Versicolor (1) |
6,3 | 3,3 | 6 | 2,5 | Virginica (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.