0Pricing
Learn AI with Python · Ders

Kategorik Değişkenleri Kodlama

Etiket kodlama, tek-sıcak kodlama, sıralı kodlama ve pd.get_dummies() ile sklearn OrdinalEncoder karşılaştırması.

Kategorik Değişkenleri Kodlama, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. 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.

Kategoriler neden kodlanır?

Çoğu makine öğrenimi modeli, "red" veya "small" gibi metin etiketleri yerine NUMBERS gerektirir. Kodlama, kategorik değişkenleri anlamlarını koruyarak sayısal biçime dönüştürür.

Sıralı ve adsal kategoriler

Sıralı kategorilerin doğal bir sırası vardır (small < medium < large). Adsal kategorilerde ise böyle bir sıra yoktur (red, green, blue). Doğru kodlama, elinizdeki kategori türüne bağlıdır.

Sıralı kategoriler için etiket kodlama

LabelEncoder, her kategoriyi bir tamsayıyla eşleştirir. Tamsayı sırasının anlamlı olduğu ORDINAL veriler için uygundur.

from sklearn.preprocessing import LabelEncoder
sizes = ["small", "large", "medium", "small"]
le = LabelEncoder()
print(le.fit_transform(sizes))   # integers (alphabetical by default)

Adsal kategorilerdeki tehlike

Adsal verilere NOMINAL etiket kodlaması uygulamak risklidir: model, red=0, green=1, blue=2 değerlerini green'in red ile blue "arasında" olduğu şeklinde yorumlayarak gerçekte olmayan bir sıra oluşturabilir. Bunun yerine tek etkin kodlama kullanın.

get_dummies ile tek etkin kodlama

pd.get_dummies, her kategori için bir ikili sütun oluşturur. Her satırda tam olarak bir sütun 1 değerini alır; ima edilen bir sıralama olmadığı için adsal değişkenler için idealdir.

import pandas as pd
df = pd.DataFrame({"color": ["red", "green", "blue", "red"]})
print(pd.get_dummies(df, columns=["color"]))

Kukla değişken tuzağı

k kategori k sütun oluşturduğunda bunlar tamamen doğrusal bağımlı olur (toplamları her zaman 1'dir). Bu kukla değişken tuzağı, doğrusal modelleri bozar. Düzeltmek için bir sütunu kaldırın.

drop_first

drop_first=True, bir kategoriyi kaldırarak geriye k-1 sütun bırakır. Kaldırılan kategori örtük temel değer olur (tüm değerler sıfırdır) ve doğrusal bağımlılığı ortadan kaldırır.

print(pd.get_dummies(df, columns=["color"], drop_first=True))
# one fewer column; the dropped color is the baseline

sklearn OrdinalEncoder

İş akışları için OrdinalEncoder, FEATURES üzerinde etiket kodlamanın sklearn karşılığıdır ve kategori sırasını açıkça belirtmenize olanak tanır.

from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder(categories=[["small", "medium", "large"]])
print(enc.fit_transform([["medium"], ["large"], ["small"]]))

sklearn OneHotEncoder

OneHotEncoder, iş akışlarına uygun tek etkin kodlama aracıdır. Kategorileri eğitim verilerinden öğrenir ve yeni verilere aynı eşlemeyi uygular; bu, üretim ortamı için kritik öneme sahiptir.

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"], ["green"], ["blue"]]))

Görülmemiş kategorileri ele alma

Sınama verileri, eğitim sırasında hiç görülmemiş kategoriler içerebilir. OneHotEncoder'ın hata vermek yerine tüm değerleri sıfır olarak üretmesi için handle_unknown="ignore" ayarını kullanın.

ohe = OneHotEncoder(handle_unknown="ignore", sparse_output=False)
ohe.fit([["red"], ["green"]])
print(ohe.transform([["blue"]]))   # all zeros, no error

Yüksek kardinaliteli sütunlar

Binlerce benzersiz değere sahip bir sütuna tek etkin kodlama uygulamak özellik sayısını aşırı artırır. Yüksek kardinalite için hedef kodlamayı, özetlemeyi veya nadir kategorileri "diğer" grubunda birleştirmeyi düşünün.

Hızlı kontrol

Kodlama bilginizi sınayın.

Özet

Kodlama araç seti:

  • Sıralı veriler -> tamsayı kodlama (LabelEncoder / OrdinalEncoder)
  • Adsal veriler -> tek etkin kodlama (pd.get_dummies / OneHotEncoder)
  • drop_first=True, kukla değişken tuzağını önler
  • Görülmemiş sınama kategorileri için handle_unknown="ignore"
  • Yüksek kardinaliteli sütunların aşırı büyümesine dikkat edin

Sıkça Sorulan Sorular

“Kategorik Değişkenleri Kodlama” dersi ücretsiz mi?

Evet — “Kategorik Değişkenleri Kodlama” 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.

“Kategorik Değişkenleri Kodlama” dersinde ne öğreneceğim?

Etiket kodlama, tek-sıcak kodlama, sıralı kodlama ve pd.get_dummies() ile sklearn OrdinalEncoder karşılaştırması. 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 2. dersidir.

“Kategorik Değişkenleri Kodlama” 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. Aykırı Değerleri Algılama ve Kaldırma
  2. Kategorik Değişkenleri Kodlama
  3. Özellik Ölçekleme: Normalleştirme ve Standartlaştırma
  4. Ön İşleme Hatları Oluşturma
← Learn AI with Python Sayfasına Dön