Menu
CoddyTech

Cechy a etykieta

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 58 z 64.

Które cechy zmieniają się wraz z etykietą? Oblicz korelację każdej z nich z etykietą, gdzie 0 oznacza zmianę złośliwą, a 1 łagodną, i uszereguj je według siły korelacji:

Poziome słupki wartości r dla dziesięciu średnich cech danych tkankowych, od najsilniejszej u góry: średnia liczba wklęsłych punktów -0.78, średni obwód -0.74, średni promień -0.73, aż do średniego wymiaru fraktalnego wynoszącego 0.01

X.corrwith(y) zwraca jednocześnie wartość r dla każdej cechy:

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))

To wyświetla:

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

Ujemne r oznacza, że cecha ma większą wartość w klasie 0: komórki złośliwe mają więcej wklęsłych punktów. np.abs szereguje według siły, niezależnie od znaku.

Wartość zbliżona do 0 oznacza, że podobnie jak w przypadku wymiaru fraktalnego cecha ledwo różni się między klasami: można rozważyć jej pominięcie.

challenge icon

Wyzwanie

Średni

Jakie cechy tkanki model powinien sprawdzić w pierwszej kolejności? Danymi wejściowymi są grupa, error lub worst, oraz k; kod startowy umieszcza cechy grupy w X.

  1. Uszereguj cechy według siły ich korelacji r z y.
  2. Wypisz k najlepszych cech wraz z ich r ze znakiem, z dokładnością do 2 miejsc po przecinku.
  3. Sprawdź znak: wypisz średnie dla klas dla najsilniejszej cechy.

Dla grupy mean i 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

Spróbuj swoich sił

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
# Dziesięć cech z grupy: mean, error lub worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
X = cancer.data[cancer.feature_names[start:start + 10]]

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online