Menu
CoddyTech

Caracterizando agrupamentos

Parte da seção Aprendizado não supervisionado do Journey de Machine Learning da Coddy. Lição 11 de 51.

Este capítulo transforma números de clusters em grupos que as pessoas podem usar. Ao final, cada cluster terá um nome:

120 visitantes de um parque temático representados como pontos, com as horas no parque no eixo horizontal e os brinquedos visitados no eixo vertical, em três grupos nomeados na legenda: aventureiros em busca de emoção no alto à direita, famílias no meio, visitantes rápidos embaixo à esquerda

Um número como 2 não diz nada. Seu perfil diz: a média de cada característica dentro do cluster. Adicione os rótulos como uma coluna e, em seguida, agrupe:

park["cluster"] = km.labels_
print(park.groupby("cluster").mean().round(1))

Isso imprime uma linha por cluster:

         hours  rides   age
cluster
0          6.0    6.2  38.4
1          2.4    3.0  45.8
2          6.8   13.9  20.7

Agora leia as linhas como palavras. O agrupamento 2 é jovem, fica 7 horas e faz 14 passeios: pessoas em busca de emoção. O agrupamento 1 vai embora cedo: visitantes rápidos.

challenge icon

Desafio

Médio

Um bar de karaokê quer conhecer seus clientes. O código inicial os divide em 3 grupos; names contém um nome para cada um, do menor para o maior número de visitas por mês.

  1. Adicione os rótulos a guests como uma coluna cluster.
  2. Crie o perfil dos grupos: suas médias e o número de clientes, ordenados por visits_month.
  3. Imprima uma linha por grupo com seu nome e as médias com 1 casa decimal.

Para outro bar:

Once in a while: 30 guests, 1.4 visits a month, 2.5 songs, 3.2 hours
Regulars: 45 guests, 3.0 visits a month, 4.6 songs, 2.0 hours
Superfans: 15 guests, 7.4 visits a month, 9.2 songs, 2.8 hours

Experimente você mesmo

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

# 110 clientes de um bar de karaokê: visits a month, músicas por visita, horas por visita
guests = pd.read_csv("karaoke.csv")
scaled = StandardScaler().fit_transform(guests)
km = KMeans(n_clusters=3, n_init=10, random_state=0)
km.fit(scaled)

# Nomes dos grupos, do menor para o maior número de visitas por mês
names = ["Once in a while", "Regulars", "Superfans"]

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Aprendizado não supervisionado

Pratique por conta própria: Compilador de Python online