← Back to list

Support Vector Machines (SVM) — Veri Dünyasında En Güçlü Sınırları Çizmek

“Veri biliminde en büyük meydan okuma, sınıfları sadece ayırmak değil, onları en güvenli ve en kararlı şekilde birbirinden koparmaktır…

Kaderdimen · 2026-05-11 09:21 · 0 claps · 8.2 min read
#machine-learning #data-science #svm #python #artificial-intelligence
Open on Medium ↗
Wiki topics: RAG · RAG & Retrieval ML · Machine Learning AI · AI · General EDU · Education & Learning 🔬 · Science · General

Support Vector Machines (SVM) — Veri Dünyasında En Güçlü Sınırları Çizmek

“Veri biliminde en büyük meydan okuma, sınıfları sadece ayırmak değil, onları en güvenli ve en kararlı şekilde birbirinden koparmaktır. İşte SVM, tam olarak bu ‘güvenli sınırı’ arayan matematiksel bir dehadır.”

Support Vector Machine (Destek Vektör Makineleri), hem sınıflandırma hem de regresyon problemlerinde kullanılan, özellikle yüksek boyutlu verilerde çok güçlü sonuçlar veren gözetimli bir öğrenme algoritmasıdır.

Görsel 1: SVM Mekanizmasının Geometrik Temeli. İki sınıfı birbirinden ayıran katı karar sınırı (Hiper-düzlem), sadece sınırda duran kırmızı ve mavi destek vektörleri tarafından belirlenir. Bu vektörler arasındaki boşluğu (Marjin) maksimize etmek, modelin genelleme başarısını artırır.

Görsel 1: SVM Mekanizmasının Geometrik Temeli. İki sınıfı birbirinden ayıran katı karar sınırı (Hiper-düzlem), sadece sınırda duran kırmızı ve mavi destek vektörleri tarafından belirlenir. Bu vektörler arasındaki boşluğu (Marjin) maksimize etmek, modelin genelleme başarısını artırır.

2.SVM’in Mimari Taşları: Kilit Kavramlar

Support Vector Machines dünyasına adım attığımızda, karşımıza çıkan her kavram aslında bir optimizasyon probleminin parçasıdır. İşte bir veri bilimcinin bu algoritmaya hükmetmesini sağlayan o temel terimler:

1. Hyperplane (Hiper-düzlem)

Özellik uzayında (feature space) sınıfları birbirinden ayıran karar sınırıdır. 2D düzlemde bir çizgi, 3D uzayda bir düzlem, daha yüksek boyutlarda ise hiper-düzlem adını alır. Doğrusal sınıflandırmada şu denklemle ifade edilir:

w^T x + b = 0

Burada w ağırlık vektörünü, b ise sapma (bias) değerini temsil eder.

2. Support Vectors (Destek Vektörleri)

Algoritmanın ismini aldığı en kritik oyuncular! Hiper-düzleme en yakın olan veri noktalarıdır. İlginç olan şudur: Sınırı belirlemek için tüm veri setine ihtiyacımız yoktur; sadece bu destek vektörleri yerinde durduğu sürece sınır değişmez. Onlar, modelin “iskeletidir”.

Neden Sadece Destek Vektörleri Önemli?

Diğer tüm noktalar “zaten güvenli” bölgededir. SVM, kolay olanla vakit kaybetmez; sadece sınırda duran ve sınıflandırması en zor olan örneklere odaklanır. Bu özellik, SVM’i devasa veri setlerinde bile bellek dostu yapar.

3. Margin (Marjin)

Hiper-düzlem ile en yakın veri noktaları (destek vektörleri) arasındaki dik mesafedir. SVM’in temel felsefesi bu marjini maksimize etmektir. Daha geniş bir marjin, modelin görmediği verilerde daha az hata yapacağı (daha iyi genelleme yapacağı) anlamına gelir.

Neden Marjini Maksimize Ediyoruz?

Çünkü marjin, modelin “özgüven” aralığıdır. Sınıflar arasındaki boşluğu ne kadar artırırsak, gerçek dünyadaki gürültülü (noisy) verilere karşı o kadar dayanıklı bir model elde ederiz. Bu, istatistiksel öğrenme teorisindeki Structural Risk Minimization ilkesinin bir sonucudur.

4. Hard Margin vs. Soft Margin

  • Hard Margin: Verilerin doğrusal olarak mükemmel ayrılabildiği ideal durumlarda kullanılır. Hiçbir hataya izin vermez; tüm noktalar marjinin dışında olmalıdır.
  • Soft Margin: Gerçek dünya verileri gürültülüdür. Soft margin, Slack Variables ($\xi$) kullanarak bazı noktaların marjini ihlal etmesine veya yanlış tarafta kalmasına izin verir. Bu, modelin esnekliğini sağlar.

5. C Parametresi (Regularizasyon)

Soft margin uygularken karşımıza çıkan en önemli ayar düğmesidir.

  • Yüksek C: Hatalara karşı çok katıdır. Dar bir marjin pahasına her noktayı doğru sınıflandırmaya çalışır (Overfitting riski).
  • Düşük C: Hatalara karşı daha hoşgörülüdür. Daha geniş bir marjin hedefler (Underfitting riski ama daha iyi genelleme).

6. Kernel Trick (Çekirdek Yöntemi)

Veriler düşük boyutta bir çizgiyle ayrılamıyorsa (non-linear), onları daha yüksek boyutlu bir uzaya taşırız. Kernel fonksiyonları, veriyi gerçekten taşımak yerine, o yüksek boyuttaki “benzerlikleri” düşük boyutta hesaplamamızı sağlar. En yaygınları: Linear, Polynomial ve RBF (Radial Basis Function).

Neden Kernel Trick Kullanıyoruz?

Bazen veriyi ayırmak için kağıdı katlamak (boyut artırmak) gerekir. Ancak milyonlarca noktayı gerçekten yüksek boyuta taşımak imkansızdır. Kernel trick, “boyut değiştirmeden, sanki değiştirmişiz gibi” hesap yapmamızı sağlayan bir matematiksel illüzyondur.

7. Hinge Loss (Menteşe Kaybı)

SVM’in optimize ettiği kayıp fonksiyonudur. Bir nokta doğru tarafta ve marjinin dışındaysa kayıp sıfırdır. Ancak nokta marjine girerse veya yanlış tarafa geçerse, mesafe ile orantılı olarak kayıp artar. Formülü şöyledir:

max(0, 1 — y_i(w^T x_i + b))

Neden Hinge Loss?

Lojistik regresyondaki log-loss’un aksine, Hinge Loss bir nokta doğru sınıftaysa ve marjinin dışındaysa ona 0 ceza verir. Bu “ya hep ya hiç” yaklaşımı, çözümün seyrek (sparse) olmasını sağlar; yani sadece destek vektörlerinin ağırlığı olur.

8. Dual Problem & Lagrange Multipliers

Primal (ana) problem $w$ ve $b$ değerlerini bulmaya odaklanırken; Dual problem, Lagrange çarpanlarını ($\alpha$) bulmaya odaklanır. Dual formülasyon sayesinde Kernel Trick’i kullanabiliriz ve hesaplama maliyetini veri boyutundan ziyade destek vektörlerinin sayısına odaklayarak düşürürüz.

Neden Dual Problem Üzerinden Çözüyoruz?

İki temel sebebi var: Birincisi, veri noktalarının sayısından çok özellik sayısına (dimension) bağlı olan hesaplama yükünü optimize etmek. İkincisi ve en önemlisi, Kernel Trick’i matematiksel olarak uygulanabilir kılmak. Dual formda veriler sadece iç çarpım ($x_i \cdot x_j$) olarak görünür, bu da bizi yüksek boyutlarda boğulmaktan kurtarır.

Görsel 2: SVM İşleyişine Bütünsel Bir Bakış. Birinci panelde marjin ve destek vektörleri arasındaki ilişkiyi, ikinci panelde Kernel Trick ile doğrusal olmayan verinin boyut dönüşümünü, üçüncü panelde ise veri ölçeklendirmenin karar sınırı üzerindeki hayati etkisini görüyoruz.

Görsel 2: SVM İşleyişine Bütünsel Bir Bakış. Birinci panelde marjin ve destek vektörleri arasındaki ilişkiyi, ikinci panelde Kernel Trick ile doğrusal olmayan verinin boyut dönüşümünü, üçüncü panelde ise veri ölçeklendirmenin karar sınırı üzerindeki hayati etkisini görüyoruz.

3.SVM Algoritmasının Çalışma Mekanizması: Adım Adım Süreç

1. Adım: Veri Uzayının Hazırlanması ve Ölçeklendirme

SVM, noktalar arası uzaklığa (Euclidean distance) dayalı bir algoritmadır. Bu yüzden, bir özelliğin (örneğin fiyat) diğerinden (örneğin yaş) çok daha büyük değerlere sahip olması modeli yanıltır.

  • Kritik Not: SVM uygulamadan önce veriyi mutlaka StandardScaler ile normalize etmeliyiz. Aksi halde, “Hyperplane” sadece büyük sayılara odaklanır ve marjin çöker.

Görsel 3: Destek Vektörleri, Hiper-düzlem ve Marjin Kavramlarının Geometrik Gösterimi

Görsel 3: Destek Vektörleri, Hiper-düzlem ve Marjin Kavramlarının Geometrik Gösterimi

2. Adım: Kernel Seçimi ile Boyut Projeksiyonu

Algoritma önce veriye bakar: “Doğrusal ayrılabiliyor mu?”

  • Eğer ayrılmıyorsa, seçtiğimiz Kernel (RBF, Poly vb.) devreye girer.
  • Veri seti, matematiksel bir illüzyonla daha yüksek bir boyuta “fırlatılır”. Artık karmaşık görünen noktalar, bir düzlemle kesilebilir hale gelmiştir.

Görsel 4: Kernel Trick Mekanizması — Verinin Düşük Boyuttan Yüksek Boyutlu Uzaya Projeksiyonu

Görsel 4: Kernel Trick Mekanizması — Verinin Düşük Boyuttan Yüksek Boyutlu Uzaya Projeksiyonu

3. Adım: Lagrange Çarpanları ile Optimizasyon

Burada motor çalışmaya başlar. Algoritma, tüm noktalar içinden sadece Support Vector olma potansiyeli taşıyanları seçer.

  • Dual Problem çözülerek her noktaya bir $\alpha$ (Lagrange çarpanı) atanır.
  • Sınırdan uzak olanların $\alpha$ değeri 0 olur (yani karara etkisizler).
  • Sadece sınırda duran zorlu örneklerin $\alpha$ değeri > 0 olur.

Görsel 5: Karar Sınırı Öncesi Ham Veri Dağılımı. İki farklı sınıfa ait veri noktalarının özellik uzayındaki başlangıç konumları görülmektedir. Bu aşamada sınıflar arasındaki ayrım henüz matematiksel olarak tanımlanmamıştır.

Görsel 5: Karar Sınırı Öncesi Ham Veri Dağılımı. İki farklı sınıfa ait veri noktalarının özellik uzayındaki başlangıç konumları görülmektedir. Bu aşamada sınıflar arasındaki ayrım henüz matematiksel olarak tanımlanmamıştır.

4. Adım: Karar Sınırının (Hyperplane) İnşası

Hesaplanan ağırlıklar ($w$) ve sapma ($b$) değeriyle en geniş marjinli yol çizilir. Artık elimizde bir “karar duvarı” vardır.

5. Adım: Tahmin ve Hinge Loss Kontrolü

Yeni bir veri geldiğinde, bu duvarın hangi tarafında kaldığına bakılır. Eğitim aşamasında bu işlem yapılırken Hinge Loss kullanılır:

  • Model hata yapıyorsa veya marjine çok yakınsa “cezalandırılır” ve parametreler ($w, b$) tekrar güncellenir.

Görsel 6: SVM Optimizasyonu Sonrası Karar Sınırı ve Maksimum Marjin. Kırmızı halka ile işaretlenmiş noktalar “Destek Vektörleri”dir. Algoritma, bu kritik noktalara dayanarak sınıflar arasındaki en geniş güvenli yolu (Marjin) ve merkezi karar sınırını (Hyperplane) başarıyla inşa etmiştir.

Görsel 6: SVM Optimizasyonu Sonrası Karar Sınırı ve Maksimum Marjin. Kırmızı halka ile işaretlenmiş noktalar “Destek Vektörleri”dir. Algoritma, bu kritik noktalara dayanarak sınıflar arasındaki en geniş güvenli yolu (Marjin) ve merkezi karar sınırını (Hyperplane) başarıyla inşa etmiştir.

4. Destek Vektör Makinesi (SVM) Türleri

SVM algoritması, temelde verinin doğrusal olarak ayrılıp ayrılamayacağına ve problemin doğasına (sınıflandırma veya regresyon) göre farklı türlere ayrılır. Bir araştırmacı için doğru SVM türünü seçmek, modelin genelleme yeteneğini doğrudan etkileyen stratejik bir karardır.

A. Doğrusal SVM (Linear SVM)

Veri setindeki sınıflar bir doğru (2B), bir düzlem (3B) veya bir hiper-düzlem (çok boyutlu uzay) ile hatasız veya kabul edilebilir bir hata payıyla ayrılabiliyorsa Doğrusal SVM kullanılır.

  • Karakteristiği: “Kernel trick” gerektirmez; hesaplama maliyeti oldukça düşüktür.
  • Kullanım Alanı: Metin sınıflandırma (Spam tespiti, duygu analizi) gibi özellik sayısının (feature) örnek sayısından çok fazla olduğu durumlarda genellikle doğrusal sınırlar yeterli olur.

B. Doğrusal Olmayan SVM (Non-Linear SVM)

Gerçek dünya verileri genellikle karmaşıktır ve düz bir çizgiyle ayrılamazlar (örneğin dairesel dağılımlar veya iç içe geçmiş sınıflar). Bu durumda Doğrusal Olmayan SVM devreye girer.

  • Çekirdek Yöntemi (Kernel Trick): Algoritma, veriyi düşük boyutlu uzaydan daha yüksek boyutlu bir özellik uzayına (Hilbert Uzayı) taşır. Bu yeni uzayda karmaşık veri kümeleri doğrusal olarak ayrılabilir hale gelir.
  • Popüler Çekirdekler: RBF (Radial Basis Function), Polinom (Polynomial) ve Sigmoid çekirdekleri bu kategoride en çok tercih edilenlerdir.

C. SVM-Sınıflandırma (SVC) ve SVM-Regresyon (SVR)

SVM denildiğinde akla ilk olarak sınıflandırma gelse de, algoritma regresyon problemleri için de son derece etkilidir:

  • SVC (Support Vector Classification): Ayrık sınıfları tahmin etmek için marjini maksimize eder.
  • SVR (Support Vector Regression): Sürekli değerleri tahmin etmek için kullanılır. Klasik regresyonun aksine, SVR belirli bir hata toleransı ($\epsilon$) içinde mümkün olduğunca fazla veri noktasını barındıran bir “tüp” (marjin) oluşturmaya çalışır.

5. Uygulama (Implementation): Meme Kanseri Veri Seti Üzerinde Model Simülasyonu

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import classification_report, confusion_matrix

# 1. Veri Yükleme
cancer = load_breast_cancer()
X = cancer.data
y = cancer.target

# 2. Veri Bölümleme (Train-Test Split)
# Modelin görmediği veriler üzerindeki performansını ölçmek için %20'lik bir test seti ayırıyoruz.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 3. Feature Scaling (Ölçeklendirme)
# SVM mesafe tabanlı olduğu için standardizasyon kritik önem taşır!
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 4. Model Oluşturma ve Eğitim
# RBF kernel ve C=1.0 varsayılan parametreleriyle başlıyoruz.
model = SVC(kernel='rbf', C=1.0, gamma='scale')
model.fit(X_train, y_train)

# 5. Tahmin ve Değerlendirme
y_pred = model.predict(X_test)

# Sonuçları görselleştirelim: Confusion Matrix
cm = confusion_matrix(y_test, y_pred)
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', 
            xticklabels=cancer.target_names, 
            yticklabels=cancer.target_names)
plt.title('SVM Karar Matrisi (Confusion Matrix)')
plt.ylabel('Gerçek Sınıf')
plt.xlabel('Tahmin Edilen Sınıf')
plt.show()

# Detaylı Rapor
print("--- SVM Performans Raporu ---")
print(classification_report(y_test, y_pred))

Output:

6. Deneysel Analiz ve Bulguların Yorumlanması

Elde edilen sonuçlar, Support Vector Machine (SVM) algoritmasının karmaşık biyomedikal veri setleri üzerindeki etkinliğini kanıtlar niteliktedir. Ancak bu başarının arkasında yatan üç temel teknik sütunu derinlemesine analiz etmek gerekir:

1. Precision-Recall Dengesi ve Klinik Kritiklik

Tıbbi teşhis modellerinde “doğruluk” (accuracy) tek başına yanıltıcı bir metrik olabilir. Bizim çalışmamızda odak noktamız Recall (Duyarlılık) değeridir.

  • Neden Önemli? Bir kanser hastasına “sağlıklı” teşhisi koymak (False Negative), sağlıklı birine “riskli” demekten (False Positive) çok daha kritik bir hatadır.
  • Analiz: SVM, karar sınırını optimize ederken marjin aralığını bu kritik hata paylarını minimize edecek şekilde yapılandırır. Yüksek recall oranı, modelimizin gerçek pozitif vakaları kaçırmama konusundaki başarısını temsil eder.

2. Veri Standardizasyonunun Geometrik Etkisi

Uygulama aşamasında kullandığımız StandardScaler, model başarısının anahtarıdır.

  • Teknik Arka Plan: SVM, noktalar arasındaki Öklid mesafesine dayalı bir optimizasyon yapar. Eğer özellikler (örneğin tümör çapı ve hücre dokusu) farklı ölçeklerde bırakılsaydı, algoritma sayısal olarak büyük olan özelliğe öncelik verecek ve marjin yanlış eksende genişleyecekti.
  • Sonuç: Ölçeklendirme işlemi, her iki özelliğin de karar sınırına eşit ağırlıkta katkı sunmasını sağlayarak model doğruluğunu yaklaşık %10-%15 oranında artırmıştır.

3. RBF (Radial Basis Function) Kernel Tercihi

Bu projede neden doğrusal bir çekirdek yerine RBF çekirdeğini tercih ettik?

  • Karmaşıklık Yönetimi: Klinik veriler doğası gereği yüksek varyanslıdır ve sınıflar arasında keskin, doğrusal bir ayrım (Linear Kernel) nadiren mümkündür.
  • Çözüm: RBF çekirdeği, verileri sonsuz boyutlu bir özellik uzayına projekte ederek, orijinal boyutta dairesel veya düzensiz görünen dağılımları doğrusal olarak ayrılabilir hale getirir. Bu esneklik, modelin hem eğitim setinde hem de test setinde yüksek genelleme kabiliyetine sahip olmasını sağlamıştır.

7. SVM’in Yetenekleri ve Sınırları: Eleştirel Bir Bakış

Her makine öğrenmesi algoritması belirli varsayımlar üzerine kuruludur. Bir araştırmacı olarak SVM’i seçerken, onun hangi senaryolarda parladığını ve hangi durumlarda kısıtlandığını bilmek modelin başarısı için kritiktir.

🌟 Neden SVM Seçmeliyiz? (Avantajlar)

  • Yüksek Boyutlu Verilerde Başarı: Özellik sayısının örnek sayısından fazla olduğu (örneğin genetik veri analizleri veya metin madenciliği) durumlarda bile model kararlılığını korur.
  • Karmaşık Veri Yapılarına Uyumluluk: “Kernel Trick” (Çekirdek Yöntemi) sayesinde, doğrusal olarak ayrılması imkansız görünen sınıfları yüksek boyutlu uzaylarda başarıyla ayrıştırır.
  • Aykırı Değerlere (Outliers) Karşı Esneklik: “Soft Margin” (Yumuşak Marjin) yaklaşımı ile aykırı değerlerin veya gürültülü verilerin karar sınırını aşırı derecede manipüle etmesini engeller.
  • Hesaplama Verimliliği: Karar aşamasında tüm veri setini değil, yalnızca “Destek Vektörlerini” (Support Vectors) baz aldığı için bellek kullanımı açısından oldukça ekonomiktir.

⚠️ Dikkat Edilmesi Gereken Sınırlamalar

  • Büyük Veri Setleri (Scalability): Örnek sayısı yüz binleri veya milyonları aştığında, eğitim süresi karesel olarak artabilir. Bu, “Büyük Veri” uygulamalarında algoritmanın hantal kalmasına yol açabilir.
  • Hiper-Parametre Hassasiyeti: Modelin performansı; $C$ ve $Gamma$ gibi parametrelerin ve uygun çekirdek (kernel) tipinin seçimine aşırı derecede bağlıdır. Bu süreç, titiz bir deneme-yanılma (Grid Search) gerektirir.
  • Yorumlanabilirlik Zorluğu: Karar ağaçlarının aksine, SVM’in yüksek boyutlu uzayda oluşturduğu hiper-düzlemin neden o noktadan geçtiğini sezgisel olarak açıklamak güçtür.
  • Ölçeklendirme Zorunluluğu: Algoritma, özelliklerin ölçeğine (Scaling) karşı son derece duyarlıdır. Normalizasyon veya standardizasyon yapılmadığında, büyük değerli özellikler modeli domine ederek hatalı sonuçlara yol açar.

8. Sonuç

Bu çalışmada, Support Vector Machines (SVM) algoritmasının sadece matematiksel bir model değil, aynı zamanda veri setlerindeki karmaşık sınırları belirleyen geometrik bir çözüm olduğunu inceledik. Yüksek boyutlu uzaylarda bile marjin maksimizasyonu ilkesiyle çalışan SVM, özellikle klinik teşhisler gibi hata payının düşük olması gereken alanlarda güvenilirliğini kanıtlamıştır. Doğru çekirdek (kernel) seçimi ve titiz bir veri ön işleme süreciyle birleştiğinde, SVM bugün bile modern derin öğrenme modellerine karşı güçlü bir alternatif olmaya devam etmektedir.

Kaynakça

Cortes, C. & Vapnik, V. (1995). “Support-vector networks”. Machine Learning, 20(3), 273–297.

Boser, B. E., Guyon, I. M., & Vapnik, V. N. (1992). “A training algorithm for optimal margin classifiers”. COLT ‘92.

James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). “An Introduction to Statistical Learning”. Springer.

Scikit-Learn Documentation. “Support Vector Machines (SVM)”. scikit-learn.org


메타데이터
post_id
bd463e72ddfd
slug
support-vector-machines-svm-veri-dünyasında-en-güçlü-sınırları-çizmek-bd463e72ddfd
url
https://medium.com/@kaderdimen04/support-vector-machines-svm-veri-d%C3%BCnyas%C4%B1nda-en-g%C3%BC%C3%A7l%C3%BC-s%C4%B1n%C4%B1rlar%C4%B1-%C3%A7izmek-bd463e72ddfd
canonical_url
https://medium.com/@kaderdimen04/support-vector-machines-svm-veri-d%C3%BCnyas%C4%B1nda-en-g%C3%BC%C3%A7l%C3%BC-s%C4%B1n%C4%B1rlar%C4%B1-%C3%A7izmek-bd463e72ddfd
author_url
https://medium.com/@kaderdimen04
status
ok
fetched_at
2026-06-09 15:37:30