Agrupamento Indutivo com Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

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.