Araştırma – Büyük Veri Setlerinin Belleğe Sığdırılmasına Yardımcı Yöntemlerin İncelenmesi

Başlarken;

Bu makale “Veri Madenciliği” konusu olan “Karar Ağaçları” ile ilgili bellek problemini çözmek adına yapılmış bir temel araştırmadır. Bu araştırma “Büyük Veri Setlerinin Belleğe Sığdırılmasına Yardımcı Yöntemlerin İncelenmesi” üzerinedir.

Açık kaynak bilgiler elimden geldiğince tüm makalelerimde desteklenmiştir. Ortaya çıkan tüm araştırmalarımın kullanımına izin verilmiştir. Kendi makalelerimde alıntı yapılan tüm makaleler ve dökümantasyonlar “Rehber Kaynakları” başlığı altında belirtilmektedir. Bilgiyi hiçbir amaç ile kötüye kullanmayalım. Tarafımca yazılan tüm cümlelerimin, tarafınızca yapılan araştırmalarınıza destek olması ümidiyle 🙂 Eğer ufakta olsa bir destek sağlayabildiysem lütfen beni ve emeğimi de unutmayın…

Temel Gereksinimler;

  • Veri Madenciliği

Özet;

Karar ağacı, kararların ağaç benzeri modelini ve bu kararların olası sonuçlarını kullanan karar destek aracıdır. Bu karar destek aracı kullanılırken bilgisayar belleğine sığamayacak kadar büyük bir veri seti ile çalışıyorsanız, veri setinin küçültülmesi veya belirli algoritmalardan geçmesi gerekir. Bu makale içerisinde, büyük veri setlerinin kendisinden küçük belleklere sığdırmak adına geliştirilmiş yöntemlere yer verilmiştir.

Genel Terimler;

  • Karar Ağacı
  • Karar Ağacı Öğrenmesi
  • Karar Ağacı Öğrenmesi Algoritmaları
  • Karar Ağacı Topluluk Algoritmaları
  • Karar Ağacında Budama

Anahtar Kelimeler;

  • Overfitting
  • Kayıp Veri
  • CHAID
  • CART
  • MARS
  • QUEST
  • SLIQ
  • SPRINT
  • ID3
  • C4.5
  • C5.0
  • Bagging
  • Boosting
  • Pruning
  • Pre-pruning
  • Post-pruning

Giriş;

Veri madenciliği sırasında kullanılan veri setlerinin büyüklüğü arttıkça karşılaşılan en büyük problem bilgisayar belleğinin büyük veri setine karşın yetersiz kalmasıdır. Bu durumda akıllara gelen ilk soru bu veri setinin en uygun hale nasıl getirileceğidir. Aynı sorular veri seti kullanılarak oluşturulmuş karar ağacının belleğe sığmadığı durumlarda da karşımıza çıkar. Bu durumda da bir karar ağacının en uygun boyutunun nasıl olması gerektiği sorusu ortaya çıkar. Çok büyük bir karar ağacı ezber riski taşır. Küçük bir karar ağacı ise veri içerisindeki önemli bilgileri yakalayamayabilir. Bununla birlikte, bir ağaç algoritmasının ne zaman durması gerektiğini söylemek zorlaşır, çünkü tek bir düğüm eklemenin veya çıkarmanın hatayı önemli ölçüde azaltıp azaltmayacağını söylemek imkansızdır. Bu durum ufuk etkisi (horizon effect) olarak bilinir. Ufuk etkisi yüzeysel olarak sonucu kestirememe problemidir. Bilgisayar iki seçim arasında kaldığında hangi seçimin daha büyük bir etki yaratacağını belirleyememesidir. Bu durumda budama işlemi için ortak bir strateji izlenir. Bu makale devamında temel anlamda karar ağacı, karar ağacı öğrenmesi, karar ağacı budama ve diğer yöntemler incelenecektir.

Karar Ağacı Nedir?

Karar ağacı, kararların ağaç benzeri modelini ve bu kararların olası sonuçlarını kullanan karar destek aracıdır. Yalnızca koşullu ifadeler içeren bir algoritma görüntüleme yoludur. Genellikle bir hedefe ulaşma olasılığı en yüksek olan stratejiyi belirleme amacıyla kullanılır. Makine öğrenmesi aşamasında da kullanılan popüler bir araçtır. Ağaçta üç tip düğüm bulunur. Bu düğümler Karar, Şans ve Uç düğümlerdir. Karar düğümleri kare ile, şans düğümleri daire ile ve uç düğümler ise daire ile temsil edilir. Ağaçta bulunan her düğüm bir öznitelik üzerinde yapılan “test” işlemlerini, her dal bu düğüm üzerinde yapılan testin sonucunu, her yaprak ise test sonuçlarına göre alınan kararları temsil eder. Genel olarak bu ağaçta kökten yaprağa giden tüm dallar sınıflandırma kurallarıdır.

Karar ağaçları, deneysel verileri kullanarak doğrudan indüksiyon kurallarını üreten modeller olarak da görülebilir. Optimal bir karar ağacı, seviyelerin sayısını en aza indirirken verilerin çoğunu açıklayan bir ağaç olarak tanımlanır. Bu tür optimal ağaçları üretmek için çeşitli algoritmalar tasarlanmıştır. Karar ağacı kullanmanın avantajları ve dezavantajları bulunur.

Karar Ağacının Avantajları;

  • Anlamak ve yorumlamak kolaydır.
  • Önemsiz olarak gözüken tüm veriler bir değere sahip olabilir. Uzmanlar bu verilere dayanarak öngörüler oluşturabilir.
  • Farklı senaryolardaki en iyi, en kötü ve beklenen değerleri belirlemeye yardımcı olur.
  • Diğer karar teknikleriyle birlikte kullanılabilir.

Karar Ağacının Dezavantajları;

  • Değişkendirler. Veri üzerindeki ufak değişiklikler ağaç yapısında büyük değişikliklere yol açabilir.

Karar Ağacı Öğrenmesi Nedir?

Karar ağacı öğrenimi veri madenciliğinde yaygın olarak kullanılan bir yöntemdir. Amaç, çeşitli girdi değişkenlerine dayalı olarak bir hedef değişkenin değerini tahmin eden model oluşturmaktır. Veri setleri kullanılarak oluşturulmuş karar ağaçları, karar analizinde kullanılabilir. Bu ağaçlar karar verme kararlarının görsel ve açık bir şekilde temsili için kullanılabilir. Veri madenciliğinde ise bir karar ağacı veri açıklamak ve tahminler için kullanılabilir. Veri madenciliğinde kullanılan karar ağaçları iki tiptedir.

  • Sınıflandırma Ağacı; hedef kümeyi çeşitli sınıflardan birisine yerleştirmeyi amaçlayan ve sınıf tanımı yapan ağaç türüdür. Kategorik ağaç olarak da adlandırılabilir.
  • Regresyon Ağacı; Bir sınıf yerine sayısal bir değer döndüren ağaç türüdür. Yani hedef değişkenler sürekli değerler alabilirler. Sürekli ağaç olarak da adlandırılabilir.

Bu iki terimi de kapsayan CART (Classification and Regression Tree) terimi 1984 yılında Breiman ve arkadaşları tarafından ortaya atılmıştır. Breiman için bu iki ağaç türü bazı benzerliklere sahiptir bu sebeple tek bir çatı altında toplanabilir.

Karar ağacı öğrenmesinde, ağacın öğrenilmesi sırasında eğitim yapılan küme, çeşitli özelliklere göre alt kümelere bölünür. Bu işlem, özyinelemeli olarak (recursive) tekrarlanır ve tekrarlama işleminin tahmin üzerinde bir etkisi kalmayana kadar sürer. Bu işleme özyinelemeli parçalama (recursive partitioning) ismi verilir. Bu karar ağaçlarının yukarıdan aşağıya indüklenmesi süreci (top-down induction of decision trees (TDIDT)) açgözlü bir algoritma örneğidir ve karar ağaçlarını verilerden öğrenmek için kullanılan en yaygın stratejidir.

Kayıp Veri Nedir?

Kayıp veri; makine öğrenmesi sırasında karşı karşıya kalınan durumların başında gelebilir. Öğrenme adımında uygulanacak algoritmaları ezber durumuna sokabilir, hatta bazı algoritmaların çalışmalarına engel olabilir. Kullanılan veri seti üzerinde bulunan eksik veriler (bunlar bazı örnekler veya özellikler olabilir) bulunuyor ise izlenecek iki yol vardır.

  • Kayıp veri tamamen veri setinden çıkartılır.
  • Kayıp veri kendisi dışında bulunan veriler yardımıyla doldurulabilir.

Hangi yol izlenirse izlensin kayıp veri oranı fazla olan durumlarda oluşacak karar ağaçları tahminler için yetersiz kalabilir. İlk adım uygulanan veri kümeleri yetersiz, ikinci adım uygulanan veri kümeleri ise ezbere yatkın bir hal alabilir.

Overfitting Nedir?

Overfitting; makine öğrenmesi kavramı altında kaçınılması gereken en önemli noktalardan birisidir. Buna sebep bir önceki başlıkta bulunan kayıp veriler ya da verinin yetkin olmaması durumudur. Eğer önlemler alınmaz ise öğrenme sırasında overfitting oluşur. Bu durumu önlemek adına elimizdeki veri setine uygun algoritma seçimi, ağaç oluşturulurken budama veya sonrasında budama işlemleri yapılabilir. Tabi ki budama işlemleri de bu ağaç üzerinde negatif etki yaratabilir. Ağaca yeni düğüm eklendikçe eğitim verilerinden elde edilen doğruluk oranı artar. Fakat bu eğitim setinden bağımsız test verilerinde ise doğruluk oranı önce artış daha sonra azalış gösterir. Makalenin bu noktadan sonraki içeriği overfitting durumunu ortadan kaldırabilmek adına kullanılan yardımcı yöntemlerin incelenmesidir.

Karar Ağacı Algoritmaları Nelerdir?

Karar ağacı öğrenmesinde yaygın olarak kullanılan yöntemler dışında kullanılabilecek başka yöntemler de bulunur. Her yöntemin/algoritmanın kendine özgü avantajları ve dezavantajları vardır.

  • CHAID (Chi-Squared Automatic Interaction Detector)
  • CART (Classification and Regression Trees)
  • MARS (Multivariate Adaptive Regression Splines)
  • QUEST (Quick, Unbiased, Efficient Statistical Tree)
  • SLIQ (Supervised Learning in Quest)
  • SPRINT (Scalable Par-alleizable Induction of Decision Trees)
  • ID3
  • C4.5
  • C5.0

CHAID (Chi-Squared Automatic Interaction Detector)

CHAID; bağımlı değişkenlerle dal değişkenleri (bağımsız değişkenler) arasındaki ilişki, etkileşim ve kombinasyonlarını bulmak için kullanılır. Oluşacak regresyon denklemi normal dağılım, doğrusallık ve homojenlik gibi varsayımlardan ayrı tutulur. Bu testin sonuçları dikkate alınarak ağacın büyümesi veya durması durumu kontrol edilir. Eğer bu iki değişken bağımlı ise ağaç büyür, bağımsız ise büyüme durdurulur. Amaç bağımlı değişkeni dallanma yoluyla açıklanmasıdır. Bağımsız değişken zaten bağımlı bir değişken ile ifade edilemediği için dallanma oluşmasına gerek duyulmaz. Bölümlendirme amacıyla kullanılan bir yöntemdir. Daha çok kategorik olan bağımsız değişkenler ile kullanılır. Amaç bağımsız değişkenlerin sürekli olması durumunda bölünmesi ve kategorik hale getirilmesidir. Bu bölümlendirme için de bağımlı değişken kategorik ise Chi-Squared testi, sürekli ise F testi kullanılır.

Exhaustive CHAID ise CHAID’in kategori birleştirme, test etme gibi aşamalarını daha dikkatli yapan bir algoritmadır. Bu sebeple CHAID’e oranla veri kümelerinin modellenmesi gereğinden uzun sürer. Bu süreç içerisinde dikkat çeken en önemli noktalardan birisi ise kategorilerin birleştirilmesi adımıdır. Bu algoritmada değişken başına iki kategori kalana kadar işlem devam eder.

CART (Classification and Regression Trees)

CART; makale başlarında bahsettiğimiz üzere Sınıflandırma ve Regresyon ağaçlarını bir çatı altında toplar. Gelen veri durumuna göre bağımlı değişkenin kategorik olması durumunda sınıflandırma, bağımsız değişken olması durumunda ise regresyon modeli kurar. Entropiye dayalıdır. CART algoritmasının amacını yerine getirmesine yardım etmenin bir yolu da seçilen veri içerisinde yanlış veri bulunmamasından geçer. Temel amaç, kurulan modelin en iyi doğrulukta olmasıdır. Bu sebeple yanlış sınıflandırmalar ne kadar az olur ise doğruluk payı da o kadar artar.

CHAID algoritmasındaki gibi ağacın dallanmasını durduracak herhangi bir kural bulunmaz aksine tüm durumlar en iyi sınıflandırılıncaya kadar devam eder. Durdurulamayan dallanma bazen karmaşık bir hal alır ve ortaya çıkan model kullanışsız olabilir. Bu sebeple önceden bu dallanmayı durduracak koşullar belirtilebilir. Bu koşullar için de Twoing ve Gini tekniklerinden faydalanılabilir.

MARS (Multivariate Adaptive Regression Splines)

MARS; sebep – sonuç değişkenleri arasında dinamik bir ilişki geliştirir. Diğer algoritmalara nazaran bağımlı ve bağımsız değişkenler arasındaki ilişki hakkında varsayımlar gerektirmez ve matematiksel ilişki aramaz. Daha çok bağımsız değişkenlerin birbirleri arasındaki etkileşim ile ilgilenir. Regresyon ağaçları üzerinde kullanılan adımsal bir yöntemdir. Yüksek boyutlu problemler ve açıklanması zor olan veriler için uygundur. Veri kümesi önce parçalanır ve her bir parça için regresyon eşitliği oluşturulur. Bu işlem ise diğer regresyon yöntemlerinden farklı olarak overfitting (taşma) durumunun önüne geçer. Diğer algoritmalara nazaran zorluğunun avantajları bulunur. Çok boyutlu verilerin içindeki gizli yapıları, uygun veri dönüşümlerini ve veri etkileşimlerini belirleyebilir.

QUEST (Quick, Unbiased, Efficient Statistical Tree)

QUEST; bir sınıflandırma algoritmasıdır. Regresyon modellerinde bir değişkenin sürekli olması durumunda bu algoritma kullanılamaz. En ideal dallanmayı sağlayacak değişkene ve bölünme yapılacak noktanın kararına farklı zaman dilimleri kullanır. Bu sebeple diğer algoritmalardan daha hızlı sonuç sağlar. İkili karar ağacı yapısını kullanır. Amaç oluşacak ağacın büyümesi ve dallanmasından yanı sıra, bu büyüme sırasındaki tahmin edilebilir seçimin genel bir hale getirilmesi ve hesaplama maliyetinin düşürülmesidir. Yüksek boyuttaki veri setleri için uygundur ve bu veri setlerini işlemede kolaylıklar sağlar.

SLIQ (Supervised Learning in Quest)

SLIQ; dallanma koşullarının hesaplanması ve oluşturulmasında Gini tekniğinden faydalanan, sürekli ve süreksiz veri tiplerinde kullanılabilen bir algoritmadır. Maliyeti azaltmak adına ağaç oluşturma adımından önce sıralama işlemi yapar. Bunun sebebi her düğümde bu işlemi yapmak yerine başlangıçta bir kere yapılarak işlemin hızlandırılmak istenmesidir.

SPRINT (Scalable Par-alleizable Induction of Decision Trees)

SPRINT; yapılar ve adımlar olarak SLIQ algoritmasına benzerdir. Koşul hesabında SLIQ algoritmasındaki gibi Gini tekniğinden faydalanır ve entropiye dayanır. En ideal dallanmayı sağlamak için değişkene ait verileri ağaç oluşturma adımından önce sıralama işlemine tabi tutar. SLIQ algoritmasından farklı olarak değişken sayısı kadar AVC (Attribute, Value, Class) tablosu oluşturur. Bu tabloların her birisi kullanılacak olan değişkeni, sınıfı ve sıra numarasını barındırır. SPRINT algoritması oluşturma öncesi adımlar ile birlikte güçlendirilmiştir. Büyük veri setlerinde kullanılmak için uygundur.

ID3

ID3; sadece ayrık veriler üzerinde çalışabilen bir algoritmadır. Amaç kategorik verileri sınıflandırmaktır. Sayısal öznitelikler veya eksik veri durumlarında işlem yapamaz. Ek olarak ağaç budama işlemi için de uygun bir yapıya sahip değildir.

C4.5

C4.5; ID3’ün eksik yönlerini gidermek adına ortaya çıkmış bir algoritmadır. Ek olarak artık sayısal veriler ile çalışabilir haldedir ve eksik verileri de işleyebilir. Amaç kazanımdır.

C5.0

C5.0; C4.5’in eksik yönlerini gidermek adına ortaya çıkmış bir algoritmadır. Sadece sınıflandırmada ve kategorik hedef değişkenleri tahmin etmede kullanılır. Ek olarak artık daha hızlıdır, daha az kaynak (bellek) kullanır, oluşturulmuş ağaç budanabilir, değişkenler ve sınıflandırma türleri ağırlıklandırılabilir, boosting yöntemi bu algoritma ile birlikte kullanılabilir, daha küçük ağaçlar elde edilebilir, verileri iyileştirmede ve ayrıştırmada daha etkilidir. Diğer algoritmalardan farklı olarak bilgi kazanımı ölçütüyle ağacın büyüklüğüne karar verir. Kayıp değerleri bu hesap içerisinde dikkate almaz. Bu sebeple kayıp verilerin ve çok miktarda bağımsız değişkenin bulunduğu veri setlerinde sağlam tahminler üretebilir. Anlaşılması ve yorumlanması diğer algoritmalara göre kolaydır. Ağaç oluşturmak için uzun bir öğrenme süresine ihtiyaç duymaz.

Karar Ağacı Topluluk Algoritmaları Nelerdir?

Bazen karar ağaçlarından daha fazla verim almak istenebilir. Yukarıda belirtilen algoritmaları teker teker kullanarak istenilen verime ulaşılamayabilir. Bu sebeple bazı algoritmalar birleştirilerek oluşturulmuş topluluk yöntemleri (ensemble methods) bulunur. Topluluk yöntemlerinde genel amaç tek tek kullanılan algoritmaları birleştirerek daha verimli sonuçlar üreten algoritma çatıları oluşturmaktır. Örnek olarak ağır bir eşya taşınmasını düşünebiliriz. Tek bir kişi bu eşyayı taşımakta zorlanır. Birkaç kişi toplanarak bu eşyayı daha hızlı ve efor sarf etmeden taşıması daha makuldür.

  • Bagging (Bootstrap Aggregation)
  • Boosting

Bagging (Bootstrap Aggregation)

Bagging; amacımız bir karar ağacının varyansını azaltmak ise kullanılabilir. Bu algoritmada ana fikir rastgele seçilmiş eğitim örneklerinden çeşitli alt kümeler oluşturmak ve daha sonra bu alt kümeler ile karar ağaçları oluşturmaktır. Sonuç olarak elimizde bir ağaç topluluğu oluşur. Bir veri tahmin edilmek istenildiğinde bu ağaçlarlardan gelen tahminlerin ortalaması alınır. Birden fazla karar ağacının vermiş olduğunu ortalama tahmin tek bir karar ağacının tahmininden daha sağlamdır.

Random Forest, bir torbalama yöntemidir. Bagging algoritması rastgele seçilmiş eğitim örnekleri ile yetinirken Random Forest buna ek olarak rastgele özellik seçimi yapılan bir adım daha ekler. Bu da oluşturulan topluluk ağaçlarının farklı özelliklere sahip olması demektir. Random Forest kullanmanın avantajları ve dezavantajları bulunur.

Random Forest Avantajları;

  • Daha yüksek boyutsallık verilerini çok iyi işler.
  • Eksik verileri işler ve eksik veriler için doğruluğu korur.

Random Forest Dezavantajları;

  • Topluluk ağaçlarından (altkümelerden oluşmuş ağaçlardan) alınan ortalama tahminlere dayanır bu sebeple regresyon modeli için kesin değerler vermez.

Boosting

Boosing; tahmin koleksiyonu oluşturmak için kullanılan farklı bir yöntemdir. Bu teknikte öğrenciler (eğitim verisi ile öğrenme aşamasında olan ağaç), erken öğrenenlerin (kendisinden önce eğitimini tamamlamış ağaçların) basit modellerini verilerle uyuşturur ve sonrasında oluşan hatalar için veri analizi yapar. Bu analiz sonrasında oluşacak olan ağaç, kendisinden önce öğrenimini tamamlamış ağacın hatalarını çözerek oluşturulmuştur. Amaç her zaman doğruluk oranını arttırmaktır.

Bir girdi, herhangi bir hipotez ile yanlış sınıflandırılırsa, bir sonraki hipotezin doğru bir şekilde sınıflandırılması olasılığı için ağırlığı arttırılır. Bu şeklide devam eden bir yapı sonunda zayıf performans gösteren ağaçlar daha performanslı bir modele sahip olur.

Gradient Boosting, bir boosting yöntemidir. Herhangi bir fark edilebilir kayıp fonksiyonunu en iyi duruma getirmek için kullanır. Bir ağaç topluluğu/koleksiyonu tek tek inşa edilir ve sırayla toplanır. Bir sonraki ağaç gerçek ile tahmin edilen değer arasındaki farkı azaltmaya çalışır. Gradient Boosting kullanmanın avantajları ve dezavantajları bulunur.

Gradient Boosting = Gradient Descent + Boosting

Gradient Boosting Avantajları;

  • Farklı kayıp fonksiyonlarını destekler ve etkileşimlerle iyi çalışır.

Gradient Boosting Dezavantajları;

  • Overfitting (taşma) eğilimi fazladır.
  • Farklı parametreler kullanıldığında dikkatli olunması gerekir.

Karar Ağacı Budama (Pruring) Nedir?

Budama; temel anlamıyla sınıflandırmaya katkısı olmayan bölümlerin karar ağaçlarından çıkarılması işlemidir. Bu sayede ağaç sadeleşecek ve anlaşılabilir bir hale gelecektir. Overfitting (taşma) durumunda bulunan uğramış karar ağaçları, budama işlemini gerçekleştirmemizin ana sebepleri arasındadır. Overfitting durumunda bulunan karar ağaçları anlamsız, yanlış ve aykırı tahminler/sonuçlar üretir. Tabi ki bu da istenmeyen bir durumdur çünkü bu karar ağacından faydalanan kullanıcılar hiçbir anlam ifade etmeyen sonuçlar ile karşı karşıya kalır.

Budanmış ağaçlar daha kısa ve daha az karmaşık bir yapıya bürünme eğilimindedir. Budanmamış ağaca oranla budanmış ağaçlar daha hızlı olurlar ve test verileri ile olan etkileşimlerinde daha başarılı sonuçlar üretirler. Bu durumu önlemek adına yapılmış olan algoritmaların uygulanması sonrasında veya uygulanması sırasında budama işlemine ihtiyaç duyulabilir. Yani budama işlemi iki ana başlık altında incelenir.

  • Önden Budama (Pre-pruning)
  • Sonradan Budama (Post-pruning)

Önden Budama (Pre-pruning)

Pre-pruning; ağaç oluşturulurken uygulanan bir budama yöntemidir. Temel olarak bir eşik değeri (hata toleransı) belirlenir ve dallanacak olan nitelikler bu eşik değerinin üzerinde değil ise ağaç dallanması durudurlur. Az sayıda örnek içeren bir veri setinde alınan kararlar hata oranını arttırabilir. Önden budama işlemi hızlı bir çözümdür.

Sonradan Budama (Post-pruning)

Post-pruning; ağaç oluşturulduktan sonra uygulanan bir budama yöntemidir. Oluşturulmuş ağaçların dalları kesilerek yapraklaştırma veya alt ağaçları dallandırma şeklinde yapılabilir. Önden budamaya oranla daha yavaş bir çözümdür fakat doğruluğu daha fazladır. Bu işlem için öncelikle ağaç içerisinden budama kümesi (prune set) seçilir ve her alt ağaç yerine eğitilmiş yapraklar konur. Eğer yeni ağaç, eski ağaca oranla daha az hata üretiyor ise ağaç budanır ve yapraklar kullanılır.

Sonuç;

Bu makalede belleğe sığdırılamayan ve taşma yaratan karar ağaçları üzerinde kullanılan algoritmalar ve karar görmüş yöntemleri irdeledik. Eğitim verileri karar ağaçlarına dönüştürülmeden önce seçilen algoritmalar, oluşacak olan karar ağacını doğrudan etkiler ve eğitim verisine uygun algoritmaların seçilmediği durumlarda oluşacak olan karar ağacı kullanıcı isteklerini yerine getiremeyebilir. Bunun ana sebepleri arasında overfitting yerini alır. Bu problemin önüne geçmek için yapılacak ilk adım uygun bir algoritma ile işe başlamak olacaktır. Bazı algoritmalar overfitting durumunun önüne geçmek adına kendi içlerinde budama (pruning) işlemleri yaparlar. Bu algoritmalardan bazıları ağaç oluştururken budama işlemi gerçekleştirirken geri kalan kısmı ise ağaç oluştuktan sonra budama işlemi gerçekleştirirler. Overfitting oluşması durumu eğitim verisine, eldeki kaynaklara (bilgisayar belleği ve işleme yetkinliği) ve algoritma seçimine bağlı olarak oluşur. Overfitting durumun ortadan kaldırmak için bu yanlış adımların önüne geçilmesi gerekir.

Kaynakça;

  • H KIM and GJ KOEHLER (1995) Theory and Practice of Decision Tree Induction
    • Omega, Int. J. Mgmt Sci. Vol. 23, No. 6, pp. 637-652
  • John MINGERS (1989) An Empirical Comparison of Pruning Methods for Decision Tree Induction
    • Machine Learning No. 4, pp. 227-243
  • Ercan GOKGOZ and Abdulhamit SUBASI (2015) Comparison of Decision Tree Algorithms for EMG Signal Classification using DWT
    • Biomedical Signal Processingand Control No. 18, pp. 138–144
  • Nikita PATEL and Saurabh UPADHYAY (2012) Study of Various Decision Tree Pruning Methods with their Empirical Comparison in WEKA
    • International Journal of Computer Applications Vol. 60 No. 12, pp. 09758887
  • Aslı ÇALIŞ, Sema KAYAPINAR ve Tahsin ÇETİNYOKUŞ (2014) Veri Madenciliğinde Karar Ağacı Algoritmaları ile Bilgisayar ve İnternet Güvenliği Üzerine Bir Uygulama
    • Endüstri Mühendisliği Dergisi C. 25, S. 3-4, s. 2-19
  • Kass, G. V. (1980) An Exploratory Technique for Investigating Large Quantities of Categorical Data
    • Applied Statistics, Vol. 20, No. 2, pp. 119-127
  • Bigss D., Ville B. and Suen E. (1991) A Method of Choosing Multiway Partitions for Classification and Decision Trees
    • Journal of Applied Statistics, Vol. 18, No. 1, pp. 49-62
  • Ali Sait ALBAYRAK ve Koltan YILMAZ (2009) Veri Madenciliği Karar Ağacı Algoritmaları ve İMKB Verileri Üzerinde Bir Uygulama
    • Süleyman Demirel Üniversitesi İktisadi ve İdari Bilimler Fakültesi Dergisi C.14, S.1, s. 31-52
  • Dmitry IGNATOY and Andrey IGNATOV (2017) Decision Stream Cultivating Deep Decision Trees
    • IEEE ICTAI. 905–912
  • Alparslan OĞUZ (2014) Çok Değişkenli Uyarlanabilir Regresyon Zincirlerinin İrdelenmesi ve Bir Uygulama
    • Erzincan Üniversitesi Fen Bilimleri Enstitüsü Yüksek Lisans Tezi
  • Mine ÇELİK (2009) Veri Madenciliğinde Kullanılan Sınıflandırma Yöntemleri ve Bir Uygulama
    • İstanbul Üniversitesi Sosyal Bilimler Enstitüsü Yüksek Lisans Tezi

Ek Kaynaklar;

Ek Dosyalar;

Bu makaledeki bilgilerin “.pdf” uzantılı olarak kaydedilmiş halini aşağıdan indirebilirsiniz.

Umarım ki “Araştırma – Büyük Veri Setlerinin Belleğe Sığdırılmasına Yardımcı Yöntemlerin İncelenmesi” makalesi hoşunuza gitmiştir. Tarafımca yazılan tüm cümlelerimin, tarafınızca yapılan araştırmalarınıza destek olması ümidiyle 🙂 Eğer ufakta olsa bir destek sağlayabildiysem lütfen beni ve emeğimi de unutmayın. Keyifli ve Bol Bug’lu Günler Dilerim 🙂

Yasin Erarslan

2 thoughts on “Araştırma – Büyük Veri Setlerinin Belleğe Sığdırılmasına Yardımcı Yöntemlerin İncelenmesi

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir