Menu
CoddyTech

Visualizando as classes

Parte da seção Dados e gráficos do Journey de Machine Learning da Coddy. Lição 55 de 60.

As classes formam nuvens separadas? Desenhe um gráfico de dispersão para cada classe, cada um nomeado com base em target_names:

Flores de íris por comprimento e largura da sépala, uma cor por espécie: setosa forma sua própria nuvem no canto superior esquerdo, enquanto versicolor e virginica se sobrepõem no meio e à direita

O código por trás disso:

df = iris.frame
fig, ax = plt.subplots()
for i in range(3):
    group = df[df["target"] == i]
    ax.scatter(group["sepal length (cm)"], group["sepal width (cm)"], label=iris.target_names[i])
ax.set_title("Iris flowers by sepal size")
ax.set_xlabel("sepal length (cm)")
ax.set_ylabel("sepal width (cm)")
ax.legend()
plt.show()

Cada chamada recebe sua própria cor, e label=iris.target_names[i] transforma 0, 1 e 2 em nomes para a legenda.

Setosa se destaca; versicolor e virginica se sobrepõem. É nas áreas em que as nuvens se sobrepõem que um modelo cometerá erros.

challenge icon

Desafio

Médio

As amostras malignas e benignas formam nuvens separadas? O gráfico de um colega não permite saber: ele desenha todos os dados de load_breast_cancer em um único gráfico de dispersão, em uma única cor.

  1. Substitua esse gráfico por um para cada classe: mean radius no eixo horizontal, mean concave points no eixo vertical.
  2. Identifique cada uma com o nome da classe correspondente em target_names.

Mantenha as linhas já prontas. O seu deve se parecer com este, feito com duas outras medidas:

Gráfico de dispersão de amostras de tecido mamário por mean texture e mean smoothness, malignas em azul e benignas em laranja, com uma legenda que identifica ambas as classes

Seu programa não imprime nada: o Coddy verifica o gráfico e o descreve.

Experimente você mesmo

import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame

# Não altere a linha abaixo
fig, ax = plt.subplots()

# Corrija o código aqui
ax.scatter(df["mean radius"], df["mean concave points"])

# Não altere as linhas abaixo
ax.set_title("Cells by Diagnosis")
ax.set_xlabel("mean radius")
ax.set_ylabel("mean concave points")
ax.legend()
plt.show()
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 Dados e gráficos

Pratique por conta própria: Compilador de Python online