Özellik çıkarımı
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 83/112
- 5 dk
Özellik çıkarımı, mevcut özelliklerden yeni özellikler türetir.
Özellik çıkarımı
Ham veriden (tarih, metin, görüntü) modelin kullanabileceği sayılar üretmeye özellik çıkarımı denir. Tarih bunun klasik örneğidir:
from datetime import date
d = date(2024, 3, 15)
print(d.year, d.month, d.weekday()) # 2024 3 4 (0 = pazartesi)
hafta_sonu = d.weekday() >= 5Model "2024-03-15" metnini anlamaz; ama "ayın 3'ü", "cuma", "hafta sonu değil" gibi parçalar satış tahmininde çok bilgi taşır.
Metinden özellik
Metin için en basit yöntem kelime saymaktır. CountVectorizer her kelimeye bir sütun açar:
from sklearn.feature_extraction.text import CountVectorizer
metin = ["ucuz ürün ucuz", "kaliteli ürün"]
cv = CountVectorizer()
X = cv.fit_transform(metin).toarray()
print(cv.get_feature_names_out()) # ['kaliteli' 'ucuz' 'ürün']
print(X) # [[0 2 1] [1 0 1]]Uzunluk, ünlem sayısı, büyük harf oranı gibi basit sayımlar da spam tespitinde güçlü özelliklerdir.
Uygulama Kelime say
CountVectorizer ile yorumlar listesini sayım matrisine çevir. Kelimeleri get_feature_names_out() ile, matrisi toarray() ile alt alta yazdır.
Başlangıç kodu
from sklearn.feature_extraction.text import CountVectorizer
yorumlar = ["harika film", "kötü film kötü", "harika oyuncu"]
# buraya yazÖrnek çözüm
from sklearn.feature_extraction.text import CountVectorizer
yorumlar = ["harika film", "kötü film kötü", "harika oyuncu"]
cv = CountVectorizer()
X = cv.fit_transform(yorumlar)
print(cv.get_feature_names_out())
print(X.toarray())Beklenen çıktı
['film' 'harika' 'kötü' 'oyuncu'] [[1 1 0 0] [1 0 2 0] [0 1 0 1]]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>date(2024, 3, 16).weekday()</code> 5 ise bu gün hafta sonu mudur?
- Hayır, pazartesi
- Belirlenemez
- Evet, cumartesi Doğru cevap
- Hayır, cuma
Açıklama: weekday 0 = pazartesi ... 5 = cumartesi, 6 = pazar.
2 Kelime sütunlarının adlarını al.
adlar = cv.____()
adlar = cv.get_feature_names_out()
Açıklama: get_feature_names_out sütun sırasıyla kelimeleri verir.
3 Ham veriyi özelliklerle eşleştir.
| Kavram | Anlamı |
|---|---|
Tarih |
Ay, haftanın günü |
Metin |
Kelime sayıları |
Konum |
Merkeze uzaklık |
Görüntü |
Piksel değerleri |