0Pricing
Learn AI with Python · Pelajaran

Distribusi Fitur dan Analisis Target

Menganalisis hubungan fitur-target, mendeteksi ketidakseimbangan kelas, dan informasi mutual.

Distribusi Fitur dan Analisis Target adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

Mengapa Menganalisis Fitur terhadap Target?

Target adalah variabel yang ingin Anda prediksi. Tujuan EDA untuk pemodelan adalah memahami fitur mana yang benar-benar berkaitan dengan target tersebut.

Pelajaran ini membahas plot fitur terhadap target, pengukuran keinformatifan dengan informasi mutual, pendeteksian ketidakseimbangan kelas, serta perbaikan kemencengan dengan transformasi.

Fitur terhadap Target — Target Numerik

Untuk target numerik, plot sebar antara feature dan target menunjukkan apakah fitur tersebut membawa sinyal.

Tren yang jelas berarti fitur tersebut bersifat prediktif; kumpulan titik tanpa pola berarti kemungkinan besar tidak.

import seaborn as sns
import matplotlib.pyplot as plt

sns.scatterplot(x="rooms", y="price", data=df, alpha=0.4)
plt.show()

Fitur terhadap Target — Target Kategorikal

Ketika target berupa label kelas, bandingkan distribusi fitur dalam setiap kelas. KDE yang saling tumpang tindih berarti fitur tersebut kurang mampu memisahkan kelas; kurva yang terpisah dengan baik berarti fitur tersebut berguna.

sns.kdeplot(data=df, x="balance", hue="churned", common_norm=False, fill=True)
plt.title("Balance by churn status")
plt.show()

Membandingkan Distribusi Kelas dengan Plot Kotak

Plot kotak berkelompok adalah cara lain untuk melihat hubungan fitur dengan kelas: letakkan kelas target pada sumbu x dan fitur pada sumbu y.

Median yang berbeda antarkelas menunjukkan bahwa fitur tersebut membantu membedakan kelas.

sns.boxplot(x="churned", y="tenure", data=df)
plt.show()

Mendeteksi Ketidakseimbangan Kelas

Ketidakseimbangan kelas terjadi ketika satu kelas target jauh lebih banyak daripada kelas lainnya (misalnya, 95% bukan penipuan dan 5% penipuan). Hal ini menyesatkan akurasi dan membuat model cenderung memihak kelas mayoritas.

Periksa hal ini dengan menghitung nilai sederhana pada target.

print(df["churned"].value_counts())
# 0    9200
# 1     800

value_counts(normalize=True) untuk Proporsi

Hitungan mentah dapat menyembunyikan seberapa parah ketidakseimbangannya. normalize=True mengubah hitungan menjadi proporsi, sehingga Anda dapat langsung membacanya sebagai persentase.

print(df["churned"].value_counts(normalize=True))
# 0    0.92
# 1    0.08   -> only 8% positive class

Mengapa Ketidakseimbangan Penting

Dengan 92% kelas negatif, model yang selalu memprediksi "tidak" akan memperoleh akurasi 92% meskipun tidak berguna. Karena itu, Anda perlu memantau ketidakseimbangan sejak awal.

Solusinya mencakup pengambilan sampel ulang (menambah sampel kelas minoritas / mengurangi sampel kelas mayoritas), bobot kelas, atau metrik seperti presisi, sensitivitas, dan F1 sebagai pengganti akurasi.

Informasi Mutual — Mengukur Keinformatifan

Informasi mutual mengukur seberapa besar pengetahuan tentang suatu fitur mengurangi ketidakpastian mengenai target. Tidak seperti korelasi, metode ini juga menangkap hubungan nonlinier.

Untuk target klasifikasi, scikit-learn menyediakan mutual_info_classif.

from sklearn.feature_selection import mutual_info_classif

X = df[["balance", "tenure", "rooms"]]
y = df["churned"]
mi = mutual_info_classif(X, y, random_state=42)
print(dict(zip(X.columns, mi)))

Mengurutkan Fitur berdasarkan Informasi Mutual

Memasukkan skor MI ke dalam Series yang diurutkan memberikan peringkat kepentingan fitur dengan cepat. MI yang lebih tinggi berarti fitur tersebut lebih informatif mengenai target.

Ini merupakan penyaring awal yang sangat baik sebelum melatih model apa pun.

import pandas as pd
from sklearn.feature_selection import mutual_info_classif

mi = mutual_info_classif(X, y, random_state=42)
scores = pd.Series(mi, index=X.columns).sort_values(ascending=False)
print(scores)

Transformasi Log untuk Fitur yang Menceng

Fitur yang menceng ke kanan (pendapatan, hitungan, harga) sering bekerja lebih baik setelah transformasi log, yang memampatkan ekor panjang agar bentuknya lebih simetris.

Gunakan np.log1p (logaritma dari 1 + x) agar nilai nol dapat ditangani dengan aman.

import numpy as np

df["income_log"] = np.log1p(df["income"])
print(df["income"].skew(), "->", df["income_log"].skew())

Sebelum dan Sesudah: Memvisualisasikan Transformasi

Selalu pastikan transformasi membantu dengan membuat plot sebelum dan sesudahnya. Versi log seharusnya tampak lebih mendekati bentuk lonceng yang simetris.

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, 2)
df["income"].hist(ax=ax[0]); ax[0].set_title("Raw")
np.log1p(df["income"]).hist(ax=ax[1]); ax[1].set_title("log1p")
plt.show()

Pemeriksaan Singkat: Memperbaiki Fitur yang Menceng

Sebuah fitur sangat menceng ke kanan dan memiliki beberapa nilai nol.

Ringkasan: Analisis Fitur dan Target

Anda telah mempelajari cara menghubungkan fitur dengan target prediksi:

  • Plot sebar / KDE / plot kotak untuk melihat sinyal fitur terhadap target
  • value_counts(normalize=True) untuk mendeteksi dan mengukur ketidakseimbangan kelas
  • mutual_info_classif untuk mengurutkan fitur berdasarkan keinformatifan, termasuk hubungan nonlinier
  • np.log1p untuk mengurangi kemencengan fitur ke kanan

Analisis Data Eksploratori telah selesai. Berikutnya: mengumpulkan data dari API web.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Distribusi Fitur dan Analisis Target” gratis?

Ya — teks lengkap “Distribusi Fitur dan Analisis Target” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Distribusi Fitur dan Analisis Target”?

Menganalisis hubungan fitur-target, mendeteksi ketidakseimbangan kelas, dan informasi mutual. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Distribusi Fitur dan Analisis Target” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Alur Kerja EDA dan Pembuatan Profil Data
  2. Analisis Univariat
  3. Analisis Bivariat dan Multivariat
  4. Distribusi Fitur dan Analisis Target
← Kembali ke Learn AI with Python