Boruta Algoritması ile Değişken Seçimi
Yazıda öncelikle makine öğrenmesi aşamalarından biri olan değişken seçimi(feature selection) konusuna değinilecektir. Sonrasında değişken seçimi için kullanılabilecek etkili alternatiflerden biri olan Boruta Algoritması’nın çalışma yöntemi anlatılacaktır.
DEĞİŞKEN SEÇİMİ
“Değişken seçimi” makine öğrenmesi çalışmaları için önemli bir kavramdır. Fazla değişkenle çalışmak veri manipülasyonu ve algoritma öğrenme sürelerinin uzamasına, kimi zaman kullanılan yöntemlerin işlevsiz hale gelmesine neden olabilir. Bu sorunlar daha fazla kaynak kullanılarak çözülebilir ancak bu durum maliyeti artıracaktır. Bunların yanı sıra, fazla değişken ile kurulan modellerde aşırı öğrenme(overfitting) görülme ihtimali daha yüksektir. Ayrıca çoğu makine öğrenimi algoritması, değişkenlerin sayısı optimalden önemli ölçüde yüksek olduğunda doğru tahmin oranında azalma gösterir.
Değişken seçimi manuel olarak, bağımsız değişkenlerin bağımlı değişken ile olan ilişkileri incelenerek yapılabilir. Ancak fazla değişken olduğu durumda bu tür manuel işlemler oldukça fazla zaman alacaktır. Ayrıca manuel işlemler insan kaynaklı hatalara açıktır ve bu yöntemlerle çok değişkenli işlemler zorlayıcı olacaktır. Konuya algoritma tabanlı, istatistiksel varsayımlara dayanan, insan hatası ihtimalini ortadan kaldıran ve çok değişkenkli şekilde yaklaşabilecek olan yöntemler ile çalışılması hazırlanan projenin başarısını artıracaktır.
Değişken seçimi algoritmaları;
- Filtreleme metotları(filter methods)
- Bütünleşik metotlar (embedded methods)
- Bilgi teorisi (information theory) tabanlı metotlar
- Düzenlenmiş karar ağaçları (regularized trees)
- Sarmalayıcı metotlar (wrapper methods)
Herbir değişken seçimi metodunun altında birçok farklı algoritma bulunmaktadır. Metot gruplarından öne çıkan algoritmaları bilmek yöntem seçmekte yardımcı olacaktır.
Değişken seçiminde genelde, mümkün olan en iyi sınıflandırma sonuçlarını veren en az değişkenin seçilmesi istenir. Buna “minimal-optimal” problemi denir. Ancak bazı durumlarda sınıflandırma ile ilgili olan tüm özelliklerin tanımlanması gerekebilir. Buna “all-relevant” problemi denir. Yalnızca gerekli olanlar yerine tüm ilgili öznitelikleri bulmak bazı konularda daha yararlı olabilir. Örneğin, kanser hastalığı kapsamında gen ölçümleri ile çalışırken minimal-optimal yöntemi yerine kanser ile ilgili tüm gerekli gen bilgilerini kullanmak daha yararlı olabilir.
All-relevant problemi, minimal-optimal probleminden daha zordur. Bunun bir nedeni, değişkeni önemli olarak seçmek için kriter olarak sınıflandırma doğruluğuna güvenilememesidir. Değişken kümesinden değişkenin kaldırılmasının ardından sınıflandırma doğruluğunun bozulması, değişkenin önemli olduğunu belirtmek için yeterlidir, ancak bu etkinin olmaması, onu önemsiz ilan etmek için yeterli değildir. Bu nedenle, değişkenlerin önemli veya önemsiz olduğunu bildirmek için başka bir kritere ihtiyaç vardır.
Bu kapsamda belirli bir değişken ile bağımlı değişken arasında doğrudan korelasyon olmaması, bu değişkenin önemli olmadığının bir kanıtı olamayacağı için filtreleme yöntemleri kullanılamaz. Hesaplama açısından filtrelemeden daha maliyetli olan sarmalayıcı(wrapper) algoritmalar kullanılmalıdır.
Sarmalayıcı yöntemde, sınıflandırıcı algoritma veriyi belirli sayıda kısımlara ayırıp, iteratif bir şekilde en iyi değişken alt kümesini bulmayı hedefler. Bu nedenle herhangi bir sınıflandırıcı kullanılabilir. Bu problemde kullanılan algoritmanın hiper paramatre ayarlama ihtiyacı olmaması, hem hesaplama açısından verimli hem de basit olması pratiklik açısından önemli olacaktır.
BORUTA ALGORİTMASI
Boruta, Slav mitolojisinde bir orman tanrısıdır. Algoritma daha az ilgilli olduğu istatistiksel olarak kanıtlanan değişkenleri yinelemeli olarak eler. Random Forest sınıflandırıcısı etrafında inşa edilmiş bir sarmalayıcı yöntemi kullanır.
Random Forest sınıflandırma algoritması nispeten birçok algoritmaya göre daha hızlıdır. Hiper parametreler ayarlanmadan kullanılabilir ve değişken öneminin(feature importance) sayısal bir tahminini verir. Birden fazla zayıf sınıflandırıcının(karar ağacı) oylaması ile sınıflandırmanın yapıldığı bir yöntemdir. Bu ağaçlar, eğitim setinin farklı örnekleri üzerinde bağımsız olarak geliştirilir.
Random Forest’ta bir değişkenin önem ölçüsü, değişkenlerin rastgele permütasyonunun neden olduğu sınıflandırmadaki doğruluk kaybı ile elde edilir. Ormandaki tüm ağaçlar için ayrı olarak hesaplanır. Ardından doğruluk kaybının ortalama ve standart sapması hesaplanır. Alternatif olarak, ortalama kaybı standart sapmasına bölerek hesaplanan Z skoru, değişken önem ölçüsü olarak da kullanılabilir.
Random Forest algoritmasından çıkan Z skoru, değişken öneminin istatistiksel olarak anlamlı olması ile doğrudan ilişkili değildir. Ancak yine de Boruta’da ormandaki ağaçlar arasındaki ortalama doğru tahmin oranı kaybını hesaba kattığı için değişken önem ölçüsü olarak kullanılır.
Değişken önemi ölçmek için Z skoru doğrudan kullanılamadığından, herhangi bir değişkenin önemli olup olmadığına, yani rastgele değişimlerden kaynaklanabilecek önemlilikten ayırt edilebilmek için bazı dış referanslara ihtiyaç vardır. Bu amaçla, veri seti rastgele değişkenlerle genişletilir. Her değişken için, değerleri orijinal değişkenin değerlerinin gözlem değerleri arasında karıştırılmasıyla elde edilen bir “gölge”(shadow) değişken oluşturulur. Daha sonra, bu genişletilmiş veri setinin tüm değişkenlerini kullanarak bir sınıflandırma yapılır ve tüm değişkenlerin önemi hesaplanır.
Bir gölge değişkenin önemi, yalnızca rastgelelik varsa sıfırdan farklı olabilir. Bu nedenle, gölge değişkenlerin önemleri, hangi niteliklerin gerçekten önemli olduğuna karar vermek için bir referans olarak kullanılır.
Önem ölçüsü, Random Forest sınıflandırıcısının rasgeleliğine bağlı olarak değişir. (Random Forest’ta her seferinde farklı ağaç kurulur ve farklı sonuçlar çıkar) Ek olarak, veri setindeki önemli olmayan özniteliklerin varlığına duyarlıdır. Bu nedenle, istatistiksel olarak geçerli sonuçlar elde etmek için bu işlem iterasyonlu şekilde devam eder.
Kısacası Boruta, Random Forest sınıflandırıcısının temelini oluşturan fikre dayanmaktadır, yani sisteme rastgele değişkenler ekleyerek ve rastgele örneklemler topluluğundan sonuçlar toplayarak rastgele değişimlerin ve korelasyonların yanıltıcı etkisini azaltabilir. Burada, bu fazladan rastgelelik ekleyerek hangi niteliklerin gerçekten önemli olduğuna dair daha net bir görüş sağlanması amaçlanmıştır.
BORUTA ALGORİTMASI ÇALIŞMA YÖNTEMİ
- Tüm değişkenlerin kopyaları eklenerek veri seti genişletilir.
- Korelasyonları ortadan kaldırmak için eklenen değişkenler kendi içinde karıştırılır.
- Genişletilmiş veri setinde Random Forest sınıflandırıcısı çalıştırılır ve Z skorları hesaplanır.
- Gölge değişkenler arasından en yüksek Z skoru(MZSA) bulunur ve bu değişkenden daha yüksek skora sahip olan gerçek değişkenler işaretlenir.
- Her değişken için, en yüksek skorlu gölge değişken ile istatistiksel testler uygulanır.
- En yüksek Z skorlu gölge değişkenden önemli ölçüde daha düşük öneme sahip özellikleri “önemsiz” olarak kabul edilir.
- En yüksek Z skorlu gölge değişkenden önemli ölçüde daha yüksek öneme sahip değişkenler “önemli” olarak kabul edilir.
- Tüm gölge değişkenler veri setinden kaldırılır.
- Tüm değişkenler için bir önem atanıncaya veya algoritma önceden belirlenmiş Random Forest sınırlarına ulaşana kadar bu işlemler tekrarlanır.
SONUÇ
Boruta veri setine eklediği gölge değişkenler ve iterasyonlu yapısı ile bir veri setinden önemli ve önemli olmayan değişkenlerin tarafsız(unbiased) ve istikrarlı(stable) bir şekilde seçilmesini sağlayan, Random Forest tabanlı değişken seçme yöntemidir. Filtreleme metodlarından daha maliyetli olsa da çalışma mantığı ve elde edilen sonuçlar açısından tatmin edicidir. Sizler de denemeleriniz sonrasında algoritmanın performansı ile ilgili yorumlarınızı yazarsanız hepimiz daha geniş bir bakış açısına sahip olabiliriz. 🙂
KAYNAKLAR
Feature Selection with the Boruta Package – Miron B. Kursa, Witold R. Rudnicki
Early Warning Model with Machine Learning for Turkish Insurance Sector – Günay Burak Koçer
Boruta For Those in a Hurry – Miron B. Kursa