SVM Modelinde Kernel Trick ve Manuel Özellik Mühendisliği (Feature Engineering) Performans…
Şu sıralar Atıl Samancıoğlu’nun “Veri Bilimi ve Makine Öğrenmesi 2026: 100 Günlük Kamp” eğitimini takip ediyorum. Eğitimde SVM (Destek…
SVM Modelinde Kernel Trick ve Manuel Özellik Mühendisliği (Feature Engineering) Performans Karşılaştırması
Şu sıralar Atıl Samancıoğlu’nun “*Veri Bilimi ve Makine Öğrenmesi 2026: 100 Günlük Kamp*” eğitimini takip ediyorum. Eğitimde SVM (Destek Vektör Makineleri) konusunu işlerken, hocamızın RBF Kernel’ın arka planda yaptığı işi manuel olarak (3D görselleştirme ile) yaptığı bölüm ilgimi çok çekti ve bir pratik çalışması yapmaya karar verdim. Amacım hem öğrendiklerimi pekiştirmek hem de sektör standardı olan RBF Kernel ile manuel özellik mühendisliğinin (Feature Engineering) sonuçlarını kendi gözlerimle kıyaslamaktı.
İşte Social Network Ads veri setiyle yaptığım bu pekiştirme çalışmasının detayları ve aldığım sonuçlar.
Kullandığım veri seti, kullanıcıların Yaşı (Age) ve Tahmini Maaşına (Estimated Salary) bakarak lüks bir ürünü satın alıp almayacaklarını (0 veya 1) tahmin etmeye dayanıyor. Veriyi 2 boyutlu incelediğimde, derste gördüğümüz örneklere benzer şekilde “Doğrusal Olmayan (Non-Linear)” bir yapı olduğunu fark ettim. Gençler ve düşük gelirliler almıyor, zenginler alıyor ama orta segmentte veriler iç içe geçmiş durumda.

Yaş vs Maaş — Satın Alma Dağılımı (2D Grafik)
Önce Baseline modeli uyguladım. “SVC" modelini kernel=’rbf’ parametresiyle çalıştırdım ve “GridSearchCV” ile optimize ettim. Model %93 başarı yakaladı. Ancak Recall (Duyarlılık) skoruna baktığımda, potansiyel alıcıların bir kısmının (6 kişi) gözden kaçtığını fark ettim.
Burada eğitimin bana kattığı bakış açısını kullandım. Algoritmayı değiştirmek yerine, veriyi manipüle ederek (Feature Engineering) çözüm aramaya başladım. Verinin yapısına uygun olarak şu yeni özellikleri türettim:
import plotly.express as px
import plotly.io as pio
pio.renderers.default = "iframe" # Render ayarı
df["Purchased_Str"] = df["Purchased"].astype(str)
#Polinom sütun oluşturma
df["Age2"] = df["Age"] ** 2 # Yaşın Karesi
df["EstimatedSalary2"] = df["EstimatedSalary"] ** 2 # Maaşın Karesi
df["Age_Salary_Interaction"] = df["Age"] * df["EstimatedSalary"] # Yaş ile Maaşın Çarpımı
Bu dönüşümü yapıp veriyi 3 boyutlu çizdirdiğimde, verilerin katmanlar halinde ayrıştığını gördüm.

Yaş x Maaş Etkileşimi (3D Grafik)
Veriyi bu şekilde ayrıştırdıktan sonra en basit algoritma olan Linear (Doğrusal) SVM’i bu yeni veriye uyguladım.
RBF Kernel %93 genel doğruluk oranına ulaşsa da, sınırları belirlerken fazla temkinli davranarak potansiyel alıcıların (Class 1) önemli bir kısmını gözden kaçırdı (Recall: 0.86, 6 kayıp). Buna karşın, veriyi manuel olarak 3. boyuta taşıyarak kurduğum basit Linear SVM, hedef kitleyi çok daha net bir küme halinde kapsayarak Recall skorunu 0.95'e taşıdı ve kaçırılan fırsat sayısını 2’ye indirdi.

RBF Kernel Sonuçları

Feature Engineering + Linear Kernel Sonuçları
Bu çalışma sonucunda gördük ki; otomatik süreçlere teslim olmak yerine veriyi manipüle etmek ve doğru etkileşim terimlerini türetmek model başarısını doğrudan etkiliyor. Veri biliminde başarının sırrı çoğu zaman algoritmanın karmaşıklığında değil, verinin ne kadar iyi hazırlandığında gizlidir:
Better features beat better algorithms.
Bu çalışmada kullandığım tüm Python kodlarına bağlantı üzerinden ulaşabilirsiniz:
🔗https://www.kaggle.com/code/gizemkoz/svm-classifier-kernel-trick
메타데이터
- post_id
- fd10d3124bdc
- slug
- svm-modelinde-kernel-trick-ve-manuel-özellik-mühendisliği-feature-engineering-performans-fd10d3124bdc
- url
- https://medium.com/@gizemkoz/svm-modelinde-kernel-trick-ve-manuel-%C3%B6zellik-m%C3%BChendisli%C4%9Fi-feature-engineering-performans-fd10d3124bdc
- canonical_url
- https://medium.com/@gizemkoz/svm-modelinde-kernel-trick-ve-manuel-%C3%B6zellik-m%C3%BChendisli%C4%9Fi-feature-engineering-performans-fd10d3124bdc
- author_url
- https://medium.com/@gizemkoz
- status
- ok
- fetched_at
- 2026-07-09 10:05:04