Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

a classificacao do kmeans vindo randomico

Yuri, eu estou gerando os dados com o anaconda sypder, e os dados toda as vezes que eu gero vem parece que um random na classificacao, o que eu posso estar fazendo de errado?

import pandas as pd
import seaborn as sns

from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.manifold import TSNE


uri_filmes = 'https://raw.githubusercontent.com/alura-cursos/machine-learning-algoritmos-nao-supervisionados/master/movies.csv'

filmes = pd.read_csv(uri_filmes)

filmes.columns = ['filme_id', 'titulo', 'generos']

#----------------------------------------- pegando as caracteristicas e jogando em colunas -----------------------------------

generos = filmes.generos.str.get_dummies()

#-----------------------------------------concatenando os valores ------------------------------------------------------------

dados_dos_filmes = pd.concat([filmes, generos], axis=1)

#----------------------------------------- conhece os dados e coloca tudo no mesmo escalonamento -----------------------------

scaler = StandardScaler()

generos_escalados = scaler.fit_transform(generos)

#----------------------------------------- classificando em 3 generos --------------------------------------------------------

modelo = KMeans(n_clusters = 17)

modelo.fit(generos_escalados)

grupos = pd.DataFrame(modelo.cluster_centers_, columns=generos.columns)

print(grupos.transpose().plot.bar(subplots=True, figsize=(20,10), sharex=False, rot=0))

grupo = 10

filtro = modelo.labels_ == grupo

print(dados_dos_filmes[filtro].sample(17))

def kmeans(numero_de_clusters, generos) :
    modelo = KMeans(n_clusters=numero_de_clusters)
    modelo.fit(generos)
    return (numero_de_clusters, modelo.inertia_)
1 resposta
solução!

Caro essa é uma caracteristica do Kmeans, se você viu lá nas explicações ele gera pontos aleatorios e depois sai 'calibrando' os centroids ai pode ocorrer essas aleatoriedades. Alguns hiperparametros podem ajudar a mitigar esse erro, tem que ler a documentação e testar...