Menu
CoddyTech

Fitur Dibandingkan dengan Label

Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 58 dari 64.

Fitur mana yang bergerak bersama label? Hitung korelasi masing-masing fitur dengan label, 0 untuk ganas dan 1 untuk jinak, lalu urutkan berdasarkan kekuatannya:

Diagram batang horizontal nilai r untuk sepuluh fitur rata-rata data jaringan, dengan korelasi terkuat di urutan teratas: titik cekung rata-rata -0.78, keliling rata-rata -0.74, radius rata-rata -0.73, hingga dimensi fraktal rata-rata sebesar 0.01

X.corrwith(y) memberikan nilai r untuk setiap fitur sekaligus:

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

Ini mencetak:

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

Nilai r negatif berarti fitur tersebut lebih besar pada class 0: sel ganas memiliki lebih banyak titik cekung. np.abs mengurutkan berdasarkan kekuatan, apa pun tandanya.

Nilai yang mendekati 0, seperti dimensi fraktal, menunjukkan bahwa suatu fitur hampir tidak berbeda antara kedua class: fitur yang bisa dipertimbangkan untuk dihilangkan.

challenge icon

Tantangan

Sedang

Fitur jaringan mana yang sebaiknya dicoba model terlebih dahulu? Input-nya adalah sebuah grup, error atau worst, dan k; kode awal menempatkan fitur-fitur grup tersebut di X.

  1. Urutkan fitur berdasarkan kekuatan korelasinya dengan y.
  2. Cetak k fitur teratas beserta nilai r bertandanya, dengan 2 angka desimal.
  3. Periksa tandanya: cetak rata-rata fitur terkuat untuk tiap kelompok.

Untuk grup mean dan 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

Coba sendiri

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
# Sepuluh fitur dalam kelompok: mean, error, atau worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
X = cancer.data[cancer.feature_names[start:start + 10]]

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Statistik untuk ML

Latihan sendiri: Compiler Python online