Menu
CoddyTech

Características frente a la etiqueta

Parte de la sección Estadística para ML del Journey de Machine Learning de Coddy. Lección 58 de 64.

¿Qué características se mueven junto con la etiqueta? Correlaciona cada una con ella, 0 para maligno y 1 para benigno, y ordénalas por fuerza:

Barras horizontales de r para las diez características medias de los datos del tejido, de mayor a menor: puntos cóncavos medios -0.78, perímetro medio -0.74, radio medio -0.73, hasta la dimensión fractal media en 0.01

X.corrwith(y) da el valor r de cada característica de una vez:

X = cancer.data[cancer.feature_names[:10]]
r = X.corrwith(cancer.target)
strength = np.abs(r).sort_values(ascending=False)
for name in strength.index[:3]:
    print(name, np.round(r[name], 2))

Esto imprime:

mean concave points -0.78
mean perimeter -0.74
mean radius -0.73

Un valor negativo de r significa que la característica es mayor en la clase 0: las células malignas tienen más puntos cóncavos. np.abs clasifica según la intensidad, sea cual sea el signo.

Cerca de 0, al igual que la dimensión fractal, una característica apenas difiere entre las clases: una candidata para excluir.

challenge icon

Desafío

Intermedio

¿Qué características del tejido debería probar primero un modelo? Las entradas son un grupo, error o worst, y k; el código inicial coloca las características del grupo en X.

  1. Ordena las características según la intensidad de su r con y.
  2. Imprime las k primeras con su r con signo, con 2 decimales.
  3. Comprueba el signo: imprime las medias por clase de la característica más intensa.

Para el grupo mean y k = 2:

Top 2 mean features:
mean concave points: -0.78
mean perimeter: -0.74
mean concave points by class: malignant 0.09, benign 0.03

Pruébalo tú mismo

import numpy as np
from sklearn.datasets import load_breast_cancer

group = input()
k = int(input())
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# Las diez características del grupo: mean, error o worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
X = cancer.data[cancer.feature_names[start:start + 10]]

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Estadística para ML

Practica por tu cuenta: Compilador de Python online