Menu
CoddyTech

Os dois melhores atributos

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 59 de 64.

Aqui está a imagem prometida neste capítulo: as duas características de média mais fortes em um único gráfico de dispersão, uma cor por classe.

Amostras de tecido distribuídas pela média dos pontos côncavos no eixo horizontal e pela média do perímetro no eixo vertical: as amostras benignas se concentram no canto inferior esquerdo, enquanto as malignas se espalham para cima e para a direita, com as duas nuvens se encontrando em uma faixa estreita

As amostras benignas se concentram no canto inferior esquerdo, enquanto as malignas se espalham para cima e para a direita. Onde as nuvens se encontram, um modelo que usa esse par cometerá erros.

Mais uma verificação: as duas são quase cópias?

first = strength.index[0]
second = strength.index[1]
print(np.round(df[first].corr(df[second]), 2))

Isso imprime 0.85: relacionadas, não cópias. Em 0.99, o segundo recurso repetiria o primeiro e acrescentaria quase nada de novo.

challenge icon

Desafio

Médio

As características error medem quanto uma medição variou entre as células de uma amostra. As duas mais fortes conseguem distinguir as classes? O código inicial as classifica em first e second; label(ax) nomeia o gráfico.

  1. Exiba r between them: e o r entre elas, com 2 casas decimais.
  2. Desenhe um gráfico de dispersão para cada classe, com first no eixo horizontal e o nome da classe como rótulo.
  3. Chame label(ax), adicione uma legenda e exiba o gráfico.

Assim, para o par worst mais forte (r 0.82):

Um gráfico de dispersão intitulado Worst Features, com worst concave points no eixo horizontal e worst perimeter no eixo vertical; as amostras malignas em azul, acima e à direita, e as benignas em laranja, no canto inferior esquerdo

Agora avalie seu gráfico: as nuvens estão separadas? E, considerando seu r, elas se sobrepõem?

Experimente você mesmo

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

cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# As dez características de erro: o quanto cada medição variou entre as células de uma amostra
X = cancer.data[cancer.feature_names[10:20]]

# Classificadas por força: first e second são as duas mais fortes
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# Define o título do gráfico e nomeia os eixos de acordo com o par
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


# 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 Estatística para ML

Pratique por conta própria: Compilador de Python online