0Pricing
Learn AI with Python · Ders

Özellik Dağılımı ve Hedef Analizi

Özellik-hedef ilişkilerini analiz etme, sınıf dengesizliğini algılama ve karşılıklı bilgi.

Özellik Dağılımı ve Hedef Analizi, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Özellikleri Hedefe Göre Analiz Etmek Neden Önemlidir?

Hedef, tahmin etmek istediğiniz değişkendir. Modelleme için EDA'nın amacı, hangi özelliklerin bu hedefle gerçekten ilişkili olduğunu öğrenmektir.

Bu derste özellik-hedef grafikleri, karşılıklı bilgiyle bilgilendiriciliği ölçme, sınıf dengesizliğini belirleme ve dönüşümlerle çarpıklığı giderme konuları ele alınmaktadır.

Özellik ve Hedef — Sayısal Hedef

Sayısal bir hedef için feature ile target arasındaki saçılım grafiği, özelliğin sinyal taşıyıp taşımadığını gösterir.

Belirgin bir eğilim, özelliğin tahmin gücü olduğunu; belirli bir şekli olmayan bir bulut ise muhtemelen tahmin gücü olmadığını gösterir.

import seaborn as sns
import matplotlib.pyplot as plt

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

Özellik ve Hedef — Kategorik Hedef

Hedef bir sınıf etiketi olduğunda, özellik dağılımını her sınıf içinde karşılaştırın. Örtüşen KDE'ler, özelliğin sınıfları iyi ayıramadığını; birbirinden iyi ayrılmış eğriler ise yararlı olduğunu gösterir.

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

Sınıf Dağılımlarını Kutu Grafikleriyle Karşılaştırma

Gruplanmış kutu grafikleri, özellik-sınıf ilişkilerini görmenin başka bir yoludur: hedef sınıfını x eksenine, özelliği y eksenine yerleştirin.

Sınıflar arasındaki farklı ortanca değerler, özelliğin sınıfları ayırt etmeye yardımcı olduğunu gösterir.

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

Sınıf Dengesizliğini Belirleme

Sınıf dengesizliği, hedef sınıflarından birinin diğerinden çok daha fazla olması durumunda ortaya çıkar (örneğin %95 dolandırıcılık değil, %5 dolandırıcılık). Bu durum doğruluk ölçümünü yanıltır ve modelleri çoğunluk sınıfına doğru yanlı hâle getirir.

Bunu hedef üzerinde basit bir değer sayımıyla kontrol edebilirsiniz.

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

Oranlar İçin value_counts(normalize=True)

Ham sayımlar, dengesizliğin ne kadar ciddi olduğunu gizleyebilir. normalize=True, sayımları oranlara dönüştürür; böylece sonucu doğrudan yüzde olarak okuyabilirsiniz.

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

Dengesizlik Neden Önemlidir

Negatif sınıf oranı %92 olduğunda, her zaman "hayır" tahmini yapan bir model %92 doğruluk elde ederken hiçbir işe yaramaz. Dengesizliği erkenden takip etmenizin nedeni budur.

Çözümler arasında yeniden örnekleme (azınlık sınıfını fazla örnekleme / çoğunluk sınıfını az örnekleme), sınıf ağırlıkları veya doğruluk yerine kesinlik, duyarlılık ve F1 gibi ölçütleri kullanma yer alır.

Karşılıklı Bilgi — Bilgilendiriciliği Ölçme

Karşılıklı bilgi, bir özelliği bilmenin hedef hakkındaki belirsizliği ne kadar azalttığını ölçer. Korelasyonun aksine, doğrusal olmayan ilişkileri de yakalar.

Sınıflandırma hedefleri için scikit-learn, mutual_info_classif işlevini sağlar.

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

Özellikleri Karşılıklı Bilgiye Göre Sıralama

MI puanlarını sıralanmış bir Series içine yerleştirmek, hızlı bir özellik önem sıralaması sağlar. Daha yüksek MI, özelliğin hedef hakkında daha bilgilendirici olduğu anlamına gelir.

Bu, herhangi bir modeli eğitmeden önce uygulanabilecek harika bir erken aşama filtresidir.

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)

Çarpık Özellikler İçin Logaritmik Dönüşüm

Sağa çarpık özellikler (gelir, sayımlar, fiyatlar), uzun kuyruğu daha simetrik bir şekle doğru sıkıştıran bir logaritmik dönüşüm sonrasında genellikle daha iyi davranır.

Sıfırları güvenli biçimde ele almak için np.log1p kullanın (1 + x'in logaritması).

import numpy as np

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

Öncesi ve Sonrası: Dönüşümü Görselleştirme

Bir dönüşümün yarar sağladığını her zaman öncesini ve sonrasını çizerek doğrulayın. Logaritmik sürüm, simetrik bir çan eğrisine daha yakın görünmelidir.

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

Hızlı Kontrol: Çarpık Özelliği Düzeltme

Bir özellik güçlü biçimde sağa çarpıktır ve bazı sıfır değerler içerir.

Özet: Özellik ve Hedef Analizi

Özellikleri tahmin hedefiyle ilişkilendirmeyi öğrendiniz:

  • Özellik-hedef sinyalini görmek için saçılım / KDE / kutu grafikleri
  • Sınıf dengesizliğini belirlemek ve nicel olarak değerlendirmek için value_counts(normalize=True)
  • Doğrusal olmayan bağlantılar da dâhil olmak üzere özellikleri bilgilendiriciliğe göre sıralamak için mutual_info_classif
  • Sağa çarpık özellikleri yumuşatmak için np.log1p

Keşifsel Veri Analizi tamamlandı. Sırada: web API'lerinden veri toplama.

Sıkça Sorulan Sorular

“Özellik Dağılımı ve Hedef Analizi” dersi ücretsiz mi?

Evet — “Özellik Dağılımı ve Hedef Analizi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Özellik Dağılımı ve Hedef Analizi” dersinde ne öğreneceğim?

Özellik-hedef ilişkilerini analiz etme, sınıf dengesizliğini algılama ve karşılıklı bilgi. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Özellik Dağılımı ve Hedef Analizi” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. EDA İş Akışı ve Veri Profilleme
  2. Tek Değişkenli Analiz
  3. İki Değişkenli ve Çok Değişkenli Analiz
  4. Özellik Dağılımı ve Hedef Analizi
← Learn AI with Python Sayfasına Dön