Rastgele Orman Sınıflandırıcısı: Genel Bakış, Nasıl Çalışır, Artıları ve Eksileri

Yayınlanan: 2021-06-18

Netflix'in size önereceği bir filmi nasıl seçtiğini hiç merak ettiniz mi? Veya Amazon, feed'inizde gösterilecek ürünleri nasıl seçer?

Hepsi, rastgele orman sınıflandırıcısını kullanan bir teknoloji olan öneri sistemlerini kullanır.

Rastgele orman sınıflandırıcısı, en popüler sınıflandırma algoritmaları arasındadır. Bugün, bu sağlam makine öğrenimi algoritmasını öğreneceğiz ve nasıl çalıştığını göreceğiz. Rastgele orman sınıflandırıcısının gerçek hayattaki bir problemde nasıl kullanılacağına dair adım adım bir öğreticiyi paylaşacağımız için, uygulaması hakkında da bilgi edineceksiniz.

Rastgele orman sklearn'in avantajlarını ve dezavantajlarını ve daha fazlasını aşağıdaki noktalarda ele alacağız.

İçindekiler

Rastgele Orman Sınıflandırıcısı: Bir Giriş

Rastgele orman sınıflandırıcısı, regresyon ve sınıflandırma problemleri için kullanabileceğiniz denetimli bir öğrenme algoritmasıdır. Yüksek esnekliği ve uygulama kolaylığı nedeniyle en popüler makine öğrenmesi algoritmaları arasındadır.

Rastgele orman sınıflandırıcısı neden rastgele orman olarak adlandırılıyor?

Bunun nedeni, tıpkı bir ormanın birçok ağacı olduğu gibi, birden çok karar ağacından oluşmasıdır. Bunun da ötesinde, böyle karmaşık bir algoritma için büyük bir sorun olabilen, doğruluğunu artırmak ve aşırı uyumla mücadele etmek için rastgelelik kullanır. Bu algoritmalar, rastgele seçilen veri örneklerine dayalı olarak karar ağaçları oluşturur ve her ağaçtan tahminler alır. Bundan sonra, oylama yoluyla en uygun çözümü seçerler.

Özellik seçiciler, öneri sistemleri ve görüntü sınıflandırıcılar gibi günlük hayatımızda çok sayıda uygulamaya sahiptir. Gerçek hayattaki uygulamalarından bazıları dolandırıcılık tespiti, kredi başvurularının sınıflandırılması ve hastalık tahminini içerir. Bir veri kümesindeki hayati özellikleri seçen Boruta algoritmasının temelini oluşturur.

O nasıl çalışır?

Veri kümenizin “m” özelliklerine sahip olduğunu varsayarsak, rastgele orman, k < m olan “k” özelliklerini rastgele seçecektir. Şimdi algoritma, en yüksek bilgi kazancına sahip bir düğüm seçerek k özellik arasından kök düğümü hesaplayacaktır.

Bundan sonra, algoritma düğümü alt düğümlere böler ve bu işlemi “n” defa tekrarlar. Artık n ağaçlı bir ormanınız var. Son olarak, ön yükleme işlemini gerçekleştireceksiniz, yani ormanınızda bulunan tüm karar ağaçlarının sonuçlarını birleştireceksiniz.

Karar ağaçlarının işlevselliği üzerine inşa edildiği için kesinlikle en karmaşık algoritmalardan biridir.

Teknik olarak, bir topluluk algoritmasıdır. Algoritma, bir öznitelik seçim göstergesi aracılığıyla bireysel karar ağaçlarını oluşturur. Her ağaç bağımsız bir rastgele örneğe dayanır. Bir sınıflandırma probleminde, her ağaç oy verir ve en popüler sınıf nihai sonuçtur. Öte yandan, bir regresyon probleminde, tüm ağaç çıktılarının ortalamasını hesaplayacaksınız ve bu, nihai sonucunuz olacaktır.

Rastgele bir orman Python uygulaması, sınıflandırma problemleri için kullanılan diğer doğrusal olmayan algoritmalardan çok daha basit ve sağlamdır.

Aşağıdaki örnek, rastgele orman sınıflandırıcısını günlük yaşamınızda nasıl kullandığınızı anlamanıza yardımcı olacaktır:

Örnek vermek

Diyelim ki yeni bir araba almak istiyorsunuz ve en yakın arkadaşınız Supratik'e tavsiyelerini istiyorsunuz. Size tercihlerinizi, bütçenizi ve gereksinimlerinizi sorar ve ayrıca size bir öneride bulunmak için arabasıyla ilgili geçmiş deneyimlerini paylaşır.

Burada Supratik, yanıtınıza dayalı olarak size geri bildirimde bulunmak için Karar Ağacı yöntemini kullanıyor. Önerilerinden sonra, tavsiyesi konusunda kendinizi zor hissediyorsunuz, bu yüzden Aditya'ya tavsiyelerini soruyorsunuz ve o da size tercihlerinizi ve diğer gereksinimlerinizi soruyor.

Bu süreci tekrarladığınızı ve 'n' arkadaşlarınıza bu soruyu sorduğunuzu varsayalım. Artık aralarından seçim yapabileceğiniz birkaç arabanız var. Arkadaşlarınızdan tüm oyları toplarsınız ve en çok oyu alan arabayı almaya karar verirsiniz. Artık satın alacağınız arabayı seçmek için rastgele orman yöntemini kullandınız.

Ancak, bu süreci ne kadar çok tekrarlarsanız, aşırı takmaya o kadar yatkın olursunuz. Bunun nedeni, karar ağaçlarındaki veri kümenizin daha spesifik hale gelmeye devam etmesidir. Rastgele orman, rastgeleliği kullanarak bu sorunla mücadele eder.

Rastgele Orman Sınıflandırıcısının Artıları ve Eksileri

Her makine öğrenimi algoritmasının avantajları ve dezavantajları vardır. Rastgele orman sınıflandırma algoritmasının avantajları ve dezavantajları şunlardır:

Avantajlar

  • Rastgele orman algoritması, doğrusal olmayan sınıflandırıcıların çoğundan önemli ölçüde daha doğrudur.
  • Bu algoritma aynı zamanda çok sağlamdır çünkü sonuca varmak için birden çok karar ağacı kullanır.
  • Rastgele orman sınıflandırıcısı, tüm tahminlerin ortalamasını alarak önyargıları ortadan kaldırdığı ve böylece aşırı uyum sorununu düzelttiği için fazla uydurma sorunuyla karşı karşıya kalmaz.
  • Bu algoritmayı hem regresyon hem de sınıflandırma problemleri için kullanabilirsiniz, bu da onu çok yönlü bir algoritma haline getirir.
  • Rastgele ormanlar, eksik değerlerin soruna neden olmasına izin vermez. Sürekli değişkenleri değiştirmek için medyan değerleri kullanabilir veya bu sorunu çözmek için eksik değerlerin yakınlık ağırlıklı ortalamasını hesaplayabilirler.
  • Bu algoritma, sınıflandırıcınız için en çok katkıda bulunan özellikleri kolayca seçmenize olanak tanıyan göreceli özellik önemi sunar.

Dezavantajları

  • Bu algoritma, tahmin yapmak için birden çok karar ağacı kullandığından, diğer sınıflandırma algoritmalarından önemli ölçüde daha yavaştır. Rastgele bir orman sınıflandırıcısı bir tahmin yaptığında, ormandaki her ağaç aynı girdi için bir tahmin yapmak ve aynı şeyi oylamak zorundadır. Bu süreç çok zaman alıcı olabilir.
  • Yavaş hızı nedeniyle, rastgele orman sınıflandırıcıları gerçek zamanlı tahminler için uygun olmayabilir.
  • Ağacın yolunu izleyerek bir seçim yapabileceğiniz için, bir karar ağacına kıyasla modeli yorumlamak oldukça zor olabilir. Ancak, birden fazla karar ağacına sahip olduğu için rastgele bir ormanda bu mümkün değildir.

Rastgele Orman ve Karar Ağaçları Arasındaki Fark

Bir karar ağacı, adından da anlaşılacağı gibi, dalları ve düğümleri olan ağaç benzeri bir akış şemasıdır. Algoritma, verileri her düğümdeki giriş özelliklerine göre böler ve çıktı olarak birden çok dal oluşturur. Yinelemeli bir süreçtir ve oluşturulan dalların (çıktı) sayısını ve verilerin farklılaşmasını artırır. Bu süreç, neredeyse tüm verilerin aynı sınıfa ait olduğu ve daha fazla dallanmanın veya bölünmenin mümkün olmadığı bir düğüm oluşturulana kadar kendini tekrar eder.

Öte yandan, rastgele bir orman birden fazla karar ağacı kullanır, dolayısıyla 'orman' adı. Gerekli tahmini yapmak için kullandığı çeşitli karar ağaçlarından oy toplar.

Bu nedenle, rastgele bir orman sınıflandırıcı ile bir karar ağacı arasındaki temel fark, ilkinin ikincisinin bir koleksiyonunu kullanmasıdır. İşte ikisi arasındaki bazı ek farklar:

  • Karar ağaçları fazla uyum sorunuyla karşı karşıyadır, ancak rastgele ormanlar böyle değildir. Bunun nedeni, rastgele orman sınıflandırıcılarının bu soruna karşı koymak için rastgele alt kümeler kullanmasıdır.
  • Karar ağaçları rastgele ormanlardan daha hızlıdır. Rastgele ormanlar, çok fazla hesaplama gücü ve dolayısıyla daha fazla zaman alan çoklu karar ağaçları kullanır.
  • Karar ağaçlarının yorumlanması rastgele ormanlardan daha kolaydır ve birincisini kurallara göre kolayca dönüştürebilirsiniz, ancak aynısını ikincisinde yapmak oldukça zordur.

Algoritmayı Oluşturma (Random Forest Sklearn)

Aşağıdaki örnekte, scikit-learn kitaplığını kullanarak rastgele bir orman Python uygulaması gerçekleştirdik. Kendi rastgele orman sınıflandırıcınızı oluşturmak için bu öğreticinin adımlarını takip edebilirsiniz.

Herhangi bir veri bilimi görevinin %80'i, veri temizleme, temizleme, eksik değerleri düzeltme ve çok daha fazlasını içeren verileri optimize etmenizi gerektirir. Ancak bu örnekte yalnızca algoritmamızın uygulanmasına odaklanacağız.

İlk adım: Kitaplıkları içe aktarın ve veri kümesini yükleyin

İlk olarak, gerekli kitaplıkları içe aktarmamız ve veri kümemizi bir veri çerçevesine yüklememiz gerekecek.

Giriş:

#Gerekli kitaplıkları içe aktarma

pandaları pd olarak içe aktar

numpy'yi np olarak içe aktar

matplotlib.pyplot'u plt olarak içe aktar

#Veri kümesini içe aktarma

sklearn.datasets'ten load_iris'i içe aktarın
veri kümesi = load_iris ()

İkinci adım: Veri setini eğitim seti ve test seti olarak ayırın

Gerekli kütüphaneleri import edip verileri yükledikten sonra veri setimizi eğitim seti ve test seti olarak ayırmalıyız. Eğitim seti, modeli eğitmemize yardımcı olacak ve test seti, modelimizin gerçekte ne kadar doğru olduğunu belirlememize yardımcı olacak.

Giriş:

# Sınıflandırıcıyı eğitim kümesine sığdır

sklearn.tree'den DecisionTreeClassifier'ı içe aktarın

model = DecisionTreeClassifier(ölçüt = 'entropi', ayırıcı = 'en iyi', rastgele_durum = 0)

model.fit(X_tren, y_tren)

Çıktı:

DecisionTreeClassifier(class_weight=Yok, kriter='entropi' , max_depth=Yok,
max_features=Yok, max_leaf_nodes=Yok,
min_impurity_decrease=0.0, min_impurity_split=Yok,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=Yanlış, random_state=0,

bölücü='en iyi')

Üçüncü adım: Rastgele bir orman sınıflandırıcısı oluşturun

Şimdi Python ve scikit-learn kullanarak rastgele orman sınıflandırıcımızı oluşturacağız.

Giriş:

#Sınıflandırıcıyı eğitim kümesine sığdırma

sklearn.ensemble'dan RandomForestClassifier'ı içe aktarın

model = RandomForestClassifier(n_estimators=100, kriter-'entropi', random_state = 0)

model.fit(X_tren, y_tren)

Çıktı:

RandomForestClassifier(bootstrap=Doğru, class_weight=Yok, kriter='entropi',

max_depth=Yok, max_features='auto', max_leaf_nodes=Yok,

min_impurity_decrease=0.0, min_impurity_split=Yok,

min_sampes_leaf=1, min_sampes_split=2,

min_weight_fraction_leaf=0.0, n_estimators=100, n_jobs=Yok,

oob_score=Yanlış, random_state=0, verbose=0, Warm_start=Yanlış)

Dördüncü adım: Sonuçları tahmin edin ve Karışıklık matrisini yapın

Sınıflandırıcımızı oluşturduktan sonra, test setinde kullanarak sonuçları tahmin edebilir ve karışıklık matrisini yapabilir ve model için doğruluk puanlarını alabiliriz. Puan ne kadar yüksek olursa, modelimiz o kadar doğru olur.

Giriş:

#Test seti sonuçlarını tahmin et

y_pred = mode.predict(X_test)

#Karışıklık matrisini oluştur

sklearn.metrics'den configuration_matrix'i içe aktarın

cm = karışıklık_matrix(y_test, y_pred)

santimetre

çıktı :

dizi ([[16, 0, 0]

[0, 17, 1]

[0, 0, 11]])

Giriş :

#Modeliniz için puan alın

model.score(X_test, y_test)

çıktı :

0,97777777777777

Çözüm

Rastgele orman sınıflandırıcılarının birçok uygulaması vardır. En sağlam makine öğrenimi algoritmaları arasındadırlar ve herhangi bir AI ve ML profesyonelinde olmazsa olmazlardır.

Yapay Zeka hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Makine öğreniminde Rastgele Orman nedir?

Random Forest, diğer birçok makine öğrenimi algoritmasından daha doğru tahminler verebilen bir topluluk öğrenme yöntemidir. Karar ağacı öğrenmede yaygın olarak kullanılır. Karar ağaçları kullanılarak bir orman oluşturulur, her karar ağacı kendi içinde güçlü bir sınıflandırıcıdır. Bu karar ağaçları, güçlü sınıflandırıcılardan oluşan bir orman oluşturmak için kullanılır. Bu güçlü sınıflandırıcılar ormanı, karar ağaçlarından veya diğer makine öğrenimi algoritmalarından daha iyi bir tahmin sağlar.

Rastgele orman ve karar ağaçları arasındaki farklar nelerdir?

Karar ağacı, belirli bir problem için analiz sürecini tanımlayan bir akış şemasıdır. Bunları en sık sınıflandırma problemleri için kullanma eğilimindeyiz. Bir karar ağacı, bir sınıflandırma yapmak için gerekli olan eleme sürecini tanımlar. Rastgele orman, karar ağacının aksine, bir ağaç topluluğuna dayanır ve birçok çalışma, genel olarak karar ağacından daha güçlü olduğunu göstermektedir. Ayrıca, rastgele orman, fazla uydurmaya karşı daha dirençlidir ve eksik veri olduğunda daha kararlıdır.

Rastgele ormanın dezavantajları nelerdir?

Rastgele Orman biraz karmaşık bir modeldir. Kara kutu modeli değildir ve sonuçları yorumlamak kolay değildir. Diğer makine öğrenimi modellerinden daha yavaştır. İyi bir doğruluk elde etmek için çok sayıda özellik gerektirir. Rastgele ormanlar, torbalama, artırma veya istifleme gibi diğer topluluk yöntemleri gibi bir tür topluluk öğrenme yöntemidir. Bu yöntemler kararsız olma eğilimindedir, yani eğitim verileri biraz değişirse, nihai model büyük ölçüde değişebilir.