Sınıflandırma Algoritmaları - Rastgele Orman
Giriş
Rastgele orman, hem sınıflandırma hem de regresyon için kullanılan denetimli bir öğrenme algoritmasıdır. Ancak, esas olarak sınıflandırma problemleri için kullanılır. Bildiğimiz gibi bir ormanın ağaçlardan oluştuğunu ve daha fazla ağaç daha sağlam orman anlamına geldiğini biliyoruz. Benzer şekilde, rastgele orman algoritması, veri örnekleri üzerinde karar ağaçları oluşturur ve daha sonra her birinden tahmini alır ve son olarak oylama yoluyla en iyi çözümü seçer. Tek bir karar ağacından daha iyi olan bir toplu yöntemdir çünkü sonucun ortalamasını alarak fazla uyumu azaltır.
Rastgele Orman Algoritmasının Çalışması
Random Forest algoritmasının çalışmasını aşağıdaki adımların yardımıyla anlayabiliriz -
Step 1 - İlk olarak, belirli bir veri kümesinden rastgele örneklerin seçilmesiyle başlayın.
Step 2- Daha sonra, bu algoritma her örnek için bir karar ağacı oluşturacaktır. Daha sonra her karar ağacından tahmin sonucunu alır.
Step 3 - Bu adımda, tahmin edilen her sonuç için oylama yapılacaktır.
Step 4 - Sonunda, nihai tahmin sonucu olarak en çok oylanan tahmin sonucunu seçin.
Aşağıdaki şema çalışmasını gösterecektir -
Python'da Uygulama
İlk olarak, gerekli Python paketlerini içe aktararak başlayın -
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
Ardından, iris veri kümesini web bağlantısından aşağıdaki şekilde indirin -
path = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
Ardından, veri kümesine aşağıdaki gibi sütun adları atamamız gerekiyor -
headernames = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class']
Şimdi, pandas veri çerçevesine aşağıdaki gibi veri setini okumamız gerekiyor -
dataset = pd.read_csv(path, names=headernames)
dataset.head()
sepal uzunlukta | sepal genişlik | petal uzunlukta | petal genişliği | Sınıf | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | Iris-setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | Iris-setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | Iris-setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | Iris-setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | Iris-setosa |
Veri Ön İşleme aşağıdaki kod satırlarının yardımıyla yapılacaktır -
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values
Daha sonra, verileri tren ve test bölmesine ayıracağız. Aşağıdaki kod, veri kümesini% 70 eğitim verilerine ve test verilerinin% 30'una böler -
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30)
Ardından, modeli RandomForestClassifier sklearn sınıfının yardımıyla aşağıdaki gibi eğitin -
from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier(n_estimators=50)
classifier.fit(X_train, y_train)
Sonunda tahmin yapmamız gerekiyor. Aşağıdaki komut dosyası yardımıyla yapılabilir -
y_pred = classifier.predict(X_test)
Ardından, sonuçları aşağıdaki gibi yazdırın -
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
result = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:")
print(result)
result1 = classification_report(y_test, y_pred)
print("Classification Report:",)
print (result1)
result2 = accuracy_score(y_test,y_pred)
print("Accuracy:",result2)
Çıktı
Confusion Matrix:
[
[14 0 0]
[ 0 18 1]
[ 0 0 12]
]
Classification Report:
precision recall f1-score support
Iris-setosa 1.00 1.00 1.00 14
Iris-versicolor 1.00 0.95 0.97 19
Iris-virginica 0.92 1.00 0.96 12
micro avg 0.98 0.98 0.98 45
macro avg 0.97 0.98 0.98 45
weighted avg 0.98 0.98 0.98 45
Accuracy: 0.9777777777777777
Rastgele Ormanın Artıları ve Eksileri
Artıları
Aşağıdakiler Random Forest algoritmasının avantajlarıdır -
Farklı karar ağaçlarının sonuçlarının ortalamasını alarak veya birleştirerek aşırı uyum sorununun üstesinden gelir.
Rastgele ormanlar, çok çeşitli veri öğeleri için tek bir karar ağacından daha iyi çalışır.
Rastgele orman, tek karar ağacından daha az varyansa sahiptir.
Rastgele ormanlar çok esnektir ve çok yüksek doğruluğa sahiptir.
Rasgele orman algoritmasında verilerin ölçeklendirilmesi gerekli değildir. Ölçeklendirmeden veri sağladıktan sonra bile iyi doğruluğu korur.
Rasgele orman algoritmasında verilerin ölçeklendirilmesi gerekli değildir. Ölçeklendirmeden veri sağladıktan sonra bile iyi doğruluğu korur.
Eksileri
Aşağıdakiler, Random Forest algoritmasının dezavantajlarıdır -
Karmaşıklık, Rastgele orman algoritmalarının ana dezavantajıdır.
Rastgele ormanların inşası, karar ağaçlarından çok daha zor ve zaman alıcıdır.
Random Forest algoritmasını uygulamak için daha fazla hesaplama kaynağı gereklidir.
Karar ağaçları koleksiyonumuzun geniş olması durumunda daha az sezgiseldir.
Rastgele ormanların kullanıldığı tahmin süreci, diğer algoritmalara kıyasla çok zaman alıcıdır.