İzolasyon Ağaçları: Çalışma Prensibi
Isolation Forest, her biri bağımsız olarak eğitilen izolasyon ağaçlarından oluşan bir topluluk yöntemidir. Tek bir izolasyon ağacı şu adımlarla inşa edilir: Veriden rastgele bir özellik seçilir, ardından o özelliğin minimum ve maksimum değerleri arasında rastgele bir bölme eşiği belirlenir. Bu eşiğin altında ve üstündeki veri noktaları iki alt kümeye ayrılır. Bu işlem, her alt küme yalnızca tek bir nokta içerene ya da maksimum derinliğe ulaşılana kadar özyinelemeli olarak tekrarlanır. Böylece veri setini çok sayıda eş zamanlı ağaçta bölen bir yapı ortaya çıkar. Her ağaç, tüm verinin rastgele bir alt örnekleminden (genellikle 256 nokta) eğitilir; bu sayede hesaplama maliyeti düşük tutulur.
Anomali Skoru: Yol Uzunluğu Analizi
Bir veri noktasının anomali skoru, o noktanın orman genelindeki tüm ağaçlarda kökten yaprağa kadar geçen ortalama yol uzunluğuna göre hesaplanır. Aykırı değerler, veri dağılımının seyrek bölgelerinde bulunduğundan çok az sayıda bölmeyle kolayca izole edilir ve dolayısıyla kısa yol uzunluklarına sahip olur. Normal veri noktaları ise yoğun bölgelerde bir arada kümelendiğinden izole edilmeleri için çok sayıda bölme gerekir ve daha derin ağaç yapraklarına yerleşir. Ortalama yol uzunluğu normalleştirilerek 0 ile 1 arasında bir anomali skoru elde edilir; 0.5'e yakın değerler normalliği, 1'e yakın değerler ise güçlü anomaliyi gösterir. scikit-learn'de score_samples() yöntemi bu skoru döndürür (−1'e yakın = daha anomalik).
Hiperparametreler ve Kullanım
Isolation Forest'ın üç temel hiperparametresi vardır. n_estimators, ormandaki izolasyon ağacı sayısını belirler; varsayılan değer 100'dür ve genellikle yeterlidir. max_samples, her ağacın eğitiminde kullanılan veri noktası sayısını ayarlar; küçük değerler (256) daha hızlı eğitim sağlar. contamination, veri setindeki beklenen anomali oranını (0.0–0.5) belirtir ve tahmin için karar eşiğini ayarlar. Python'da basit kullanım şöyledir: from sklearn.ensemble import IsolationForest; model = IsolationForest(n_estimators=100, contamination=0.05, random_state=42); preds = model.fit_predict(X). Yöntem +1 (normal) veya −1 (anomali) döndürür.
Uygulama Alanları
Isolation Forest, aykırı değer tespitinin kritik olduğu birçok alanda yaygın biçimde kullanılmaktadır. Fintech'te kredi kartı işlemlerindeki dolandırıcılık örüntülerini gerçek zamanlı olarak tespit etmek için başvurulan başlıca yöntemlerden biridir. Siber güvenlikte ağ trafiği anomalilerini ve yetkisiz erişim girişimlerini algılamak için IDS (Saldırı Tespit Sistemi) bileşeni olarak kullanılır. Üretim sanayiinde sensör verilerindeki anormallikleri ve makine arızası öncüsü sinyalleri belirlemek için prediktif bakım sistemlerinde yer alır. IoT ekosistemlerinde dağıtık sensörlerden gelen aykırı ölçümlerin otomatik olarak işaretlenmesini sağlar. Sağlık sektöründe laboratuvar sonuçları ve hasta vital değerlerindeki beklenmedik sapmaları erken aşamada yakalar. Yüksek veri hacmi olan bu alanların tamamında algoritmanın hız ve ölçeklenebilirlik avantajı belirleyici olmaktadır.
LOF ve One-Class SVM ile Karşılaştırma
Isolation Forest, en yaygın alternatifleri olan LOF ve One-Class SVM ile kıyaslandığında belirgin avantajlar sunar. LOF (Local Outlier Factor), her noktanın yerel yoğunluk bağlamını değerlendirdiğinden lokal anomali örüntülerinde güçlüdür; ancak O(n²) karmaşıklığı ve yüksek bellek talebi büyük veri setlerinde ciddi kısıt oluşturur. One-Class SVM, marjin maksimizasyonuna dayalı teorik sağlamlığıyla öne çıkar; ancak çok sayıda hiperparametre gerektirmesi ve destek vektörü depolamasının bellek yükü pratik kullanımı güçleştirir. Isolation Forest ise O(n log n) karmaşıklığı, az sayıda sezgisel hiperparametresi ve ağaç yapısının doğal yorumlanabilirliğiyle hem büyük hem de yüksek boyutlu veri setlerinde dengeli ve pratik bir çözüm sunar.
Extended Isolation Forest ve Güncel Gelişmeler
Orijinal Isolation Forest, eksen-paralel (yatay/dikey) rassal bölmeler kullandığından bazı yapısal anomali örüntülerini kaçırabilmektedir. 2019'da Hariri, Kind ve Brunner tarafından önerilen Extended Isolation Forest (EIF), rastgele yönlü hiper düzlemlerle bu kısıtı ortadan kaldırır; böylece dairesel ya da doğrusal olmayan uzayda dağılmış anomalilerin daha doğru tespitini mümkün kılar. eif Python paketi aracılığıyla aynı scikit-learn API uyumu ile kullanılabilmektedir. Bunun yanı sıra RRCF (Robust Random Cut Forest), veri akışlarında gerçek zamanlı anomali tespiti için tasarlanmış ve Isolation Forest'ın zaman serisi ortamlarına uyarlanmış bir varyantıdır; Amazon SageMaker gibi bulut tabanlı makine öğrenimi platformlarında yerleşik olarak sunulmaktadır.
Sık Sorulan Sorular
- check_circle Contamination değerini nasıl belirlerim? Gerçek anomali oranını biliyorsanız (örneğin dolandırıcılık verilerinde %2) o değeri kullanın. Bilinmiyorsa 'auto' bırakın ve eşiği ROC-AUC ile çapraz doğrulama yaparak ayarlayın; tipik başlangıç değeri 0.05–0.10'dur.
- check_circle Isolation Forest etiketlenmemiş verilerle çalışır mı? Evet. Denetimsiz (unsupervised) bir algoritma olduğundan eğitim için etiketlere ihtiyaç duymaz. Bu özellik, anomalilerin nadir ve önceden bilinmediği senaryolarda (ağ saldırıları, üretim hataları) büyük avantaj sağlar.
- check_circle Yüksek boyutlu verilerde nasıl performans gösterir? LOF ve DBSCAN gibi mesafe tabanlı yöntemlere kıyasla boyutluluk laneti problemine daha az duyarlıdır. Ancak çok yüksek boyutlarda (>100 özellik) max_features parametresini azaltmak veya önce boyut indirgeme uygulamak algılama doğruluğunu artırabilir.
- check_circle Isolation Forest ile random forest aynı şey midir? Hayır. Random Forest, sınıflandırma ve regresyon için denetimli öğrenme algoritmasıdır; etiketli veriyle eğitilir. Isolation Forest, etiket gerektirmeyen denetimsiz bir anomali tespiti yöntemidir. Her ikisi de karar ağaçlarından oluşan topluluk yöntemleridir, ancak amaç ve çalışma biçimleri tamamen farklıdır.
- check_circle Gerçek zamanlı kullanım için uygun mudur? Evet. Bir kez eğitilen model, yeni veri noktaları üzerinde tek seferde tahmin yapabilir (O(log n) tahmin süresi). Veri akışlarında kullanım için ise RRCF (Robust Random Cut Forest) daha dinamik bir güncelleme mekanizması sunar.