Introdução
Neste laboratório, aprenderemos sobre agrupamento indutivo, um método que estende o agrupamento induzindo um classificador a partir das etiquetas dos clusters. Usaremos a biblioteca scikit-learn em Python para implementar um meta-estimador que estende o agrupamento.
Dicas da Máquina Virtual
Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.
Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.
Gerar Dados de Treino
Neste passo, geraremos alguns dados de treino a partir do agrupamento. Usaremos a função make_blobs da biblioteca scikit-learn para gerar 5000 amostras com 3 clusters com diferentes desvios-padrão e centros.
X, y = make_blobs(
n_samples=5000,
cluster_std=[1.0, 1.0, 0.5],
centers=[(-5, -5), (0, 0), (5, 5)],
random_state=42,
)
Treinar o Algoritmo de Agrupamento
Neste passo, treinaremos um algoritmo de agrupamento nos dados de treino gerados e obteremos as etiquetas dos clusters. Usaremos AgglomerativeClustering da biblioteca scikit-learn para treinar o algoritmo com 3 clusters.
clusterer = AgglomerativeClustering(n_clusters=3)
cluster_labels = clusterer.fit_predict(X)
Gerar Novas Amostras
Neste passo, geraremos novas amostras e as plotaremos juntamente com o conjunto de dados original. Usaremos novamente a função make_blobs para gerar 10 novas amostras.
X_new, y_new = make_blobs(
n_samples=10, centers=[(-7, -1), (-2, 4), (3, 6)], random_state=42
)
Declarar o Modelo de Aprendizagem Indutiva
Neste passo, declararemos o modelo de aprendizagem indutiva que será usado para prever a pertença a clusters para instâncias desconhecidas. Usaremos RandomForestClassifier da biblioteca scikit-learn como classificador.
classifier = RandomForestClassifier(random_state=42)
inductive_learner = InductiveClusterer(clusterer, classifier).fit(X)
Prever a Pertinência a Clusters para Instâncias Desconhecidas
Neste passo, usaremos o modelo de aprendizagem indutiva para prever a pertença a clusters das novas amostras geradas. Usaremos a função predict da classe InductiveClusterer e plotaremos as novas amostras com seus clusters prováveis.
probable_clusters = inductive_learner.predict(X_new)
plt.subplot(133)
plot_scatter(X, cluster_labels)
plot_scatter(X_new, probable_clusters)
plt.title("Classificar instâncias desconhecidas")
Resumo
Neste laboratório, aprendemos sobre o agrupamento indutivo, um método que estende o agrupamento por induzir um classificador a partir das etiquetas dos clusters. Usamos a biblioteca scikit-learn em Python para implementar um meta-estimador que estende o agrupamento e treinamos um algoritmo de agrupamento nos dados de treino gerados. Também gerámos novas amostras e utilizámos o modelo de aprendizagem indutiva para prever a pertença a clusters das novas amostras.