şükela:  tümü | bugün soru sor
  • aka random trees. siniflandirma (bkz: classifier) algoritmasi, gotika gibi ismi var. aslinda bir cesit karar agaci (bkz: decision tree). naif karar agaci'ndan farki ise egitim safhasinda bircok agac uretmesi (o yuzden orman, o yuzden elf) ve karar verirken (yani siniflandirirken veya genel olarak istatistik netice uretirken (bkz: regression)) bunlari kullanmasi. isin 'random' kismi da agac dugumlerindeki bolmelerin insasinda degisken seciminin 'rastgele' yapilmasindan geliyor, afaik.

    bayagi hizli, milyonluk veriyi takir takir isleyebiliyor, boyut sayisina bana misin demiyor. eksik degerlerle basa cikabilmesi faydali, siniflandirmada kullanilan degiskenlerin tahmini 'onem' mertebelerini soylemesi avantajli. muhtelif siniflandirma (machine learning) yarismalarinda milleti birincilige goturmuslugu getirmisligi mevcut. meziyeti bol.

    ha, bunu yazdim ne gecti elime? ne bileyim zaman gecmis oldu iste. yoksa vay niye simdiye kadar basligi acilmamis sozluk ne hale geldi, vay aman boyle sey olur mu rastgele orman'dan hic bahsetmemisler cok ayip diye veryansin etmek istiyor muyum? hayir. niye surekli soru soruyorum, hoca miyim ben? hayir, degilim. bu baslik cogul gibi. tekil acmayi dusunmez miydiniz? hayir, sagol. yani.

    (bu arada sf dergisi nesretsem ismini random forests koyarim. "dark tales" demis adam mesela, ondan iyidir.)
  • surprizlerle dolu:

    "max_num_of_trees_in_the_forest: the maximum number of trees in the forest (suprise, suprise)"
    (opencv 2.3)
  • "öznitelikler düğüme, düğümler dallara, dallar ağaca, ağaçlar ormana, dönmeli algoritmamda" türküsüyle özdeşleşmiş, sınıflandırma ve regresyon algoritmasıdır. bir karar ağacına göre esas avantajı, overfitting problemini aşabilmesidir.
    kısaca betimlemeye geçmeden önce: (bkz: karar ağacı)
    eldeki eğitim kümesi üzerinden n tane karar ağacı oluşturur. her ağaç için eğitim kümesini yerine koymalı olarak rastgele örnekler. bu yüzden her ağaç diğerlerinden farklıdır. aynı şekilde, ağacı oluşturmak için seçilen öznitelikleri de baştan l adet rastgele seçer ve onların arasından infromation gain uygulayarak ağacı inşa eder. baştan belirlenen sayıda ağaç elde edilence, ki buna orman diyoruz, sınıflandırma sırasında, oylama uygular. basit ve oldukça etkilidir.
  • random forest'da tree sayisini optimize etmek icin kullanilan yontemlerden birini yazayim out of bag sampling.

    elimizdeki data d diyelim.

    bootstrapping ile d_i farkli data olusturduk. tabi random forest'da baggingden ayrica olarak feature space'den de yine random sampling with replacement metoduyla bir feature subset secmeniz gerekiyor ve bunu da her d_i icin yapmak gerekiyor.

    (klasik bootstrapping nasil calisiyor? d'nin icinden random datum sectik ve onu d_1'e koyduk ve sectigimiz datum'u da d'nin icinden cikarmadik ama. bu islemi her d_i, d ile es sayida instances'a esit oldugunda durdurduk. isin istatistigine vuracak olursak her bir d_i, original datasetin 63.2%'sine tekabul edecek. "random sampling with replacement")

    sonraki adim her d_i icin decision tree ile bir class label olustur burada okeyiz.

    simdi out of bag nasil bir guzellik sagliyor ona bakalim.

    diyelim elimizde 3 instances'dan olusan bir training set var x1,x2 ve x3.

    bootstrap uyguladim ve 4 dataset olusturdum.
    d1= x1,x1,x2
    d2=x2,x3,x2
    d3=x1,x3,x3
    d4=x1,x2,x2

    her bir d_i icin bir tree olusturdum ve simdi testing yapmak istiyorum.

    leave-one-out evaluation gibi dusunulebilir bu noktada.

    x1'i test datum olarak sectim ve prediction yapacagim. simdi bu out of bag diyor ki bootstrapping ile olusturdugun training setlere(for each d_i) bak icinde x1 olanlari ele. icinde x1 olmayanlari kullanarak evaluation yap. out of bag sampling yaparak yapilan evaluation neredeyse train-test evaluation ile ayni sonucu verecek. bu da eline gecen errorlerden ne kadar tree'den sonra error'un degismiyor sana bunla ilgili bir fikir verecek. yani algoritman icin optimal tree sayisini belirlemene yardimci olacak.