Menu
CoddyTech

Dwie najlepsze cechy

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

Oto ilustracja zapowiedziana w tym rozdziale: dwie najsilniejsze cechy, czyli wartości średnie, na jednym wykresie punktowym, po jednym kolorze dla każdej klasy.

Próbki tkanek według średniej liczby wklęsłych punktów w poziomie i średniego obwodu w pionie: próbki łagodne skupiają się w lewym dolnym rogu, a złośliwe rozprzestrzeniają się w górę i w prawo; obie chmury stykają się w wąskim pasie

Łagodne próbki gromadzą się w lewym dolnym rogu, a złośliwe rozprzestrzeniają się w górę i w prawo. W miejscu, gdzie chmury się stykają, model korzystający z tej pary będzie popełniać błędy.

Jeszcze jedna kontrola: czy te dwie serie są niemal identyczne?

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

To wypisuje 0.85: są powiązane, ale nie są kopiami. Przy 0.99 druga cecha powtarzałaby pierwszą i nie wnosiłaby prawie nic nowego.

challenge icon

Wyzwanie

Średni

Cechy error mierzą, jak bardzo pomiar różnił się między komórkami jednej próbki. Czy dwie najsilniejsze pozwalają odróżnić klasy? Kod początkowy szereguje je i przypisuje do first oraz second; label(ax) opisuje wykres.

  1. Wyświetl r between them: i ich r, zaokrąglone do 2 miejsc po przecinku.
  2. Narysuj wykres punktowy dla każdej klasy, z first na osi poziomej i etykietami nazw klas.
  3. Wywołaj label(ax), dodaj legendę i wyświetl wykres.

Na przykład dla najsilniejszej pary worst (r 0.82):

Wykres punktowy zatytułowany Cechy worst, worst concave points na osi poziomej i worst perimeter na osi pionowej, próbki złośliwe na niebiesko u góry po prawej, łagodne na pomarańczowo u dołu po lewej

Teraz oceń swój wykres: czy chmury punktów są rozdzielone? A co wynika z twojego r — czy pomiary są powielone?

Spróbuj swoich sił

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
# Dziesięć cech błędu: jak bardzo każdy pomiar różnił się między komórkami jednej próbki
X = cancer.data[cancer.feature_names[10:20]]

# Uszeregowane według siły: first i second to dwie najsilniejsze
strength = np.abs(X.corrwith(y)).sort_values(ascending=False)
first = strength.index[0]
second = strength.index[1]


# Ustawia tytuł wykresu i nadaje osiom nazwy odpowiadające tej parze
def label(ax):
    ax.set_title("Error Features")
    ax.set_xlabel(first)
    ax.set_ylabel(second)


# 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