Örnekle R Rastgele Orman Eğitimi
R'deki Rastgele Orman nedir?
Rastgele ormanlar basit bir fikre dayanır: 'kalabalığın bilgeliği'. Birden fazla tahmincinin sonuçlarının toplamı, en iyi bireysel tahminciden daha iyi bir tahmin verir. Bir grup tahminciye denir topluluk. Bu nedenle bu tekniğe denir Topluluk Öğrenimi.
Önceki eğitimde nasıl kullanılacağını öğrendiniz Karar ağaçları ikili bir tahmin yapmak için. Tekniğimizi geliştirmek için bir grup kişiyi eğitebiliriz. Karar Ağacı sınıflandırıcıları, her biri tren setinin farklı bir rastgele alt kümesinde. Bir tahminde bulunmak için, tüm bireylerin ağaçlarının tahminlerini alıyoruz, ardından en çok oyu alan sınıfı tahmin ediyoruz. Bu tekniğe denir Rastgele Orman.
) 1 Adım Verileri içeri aktarın
Eğitimdekiyle aynı veri kümesine sahip olduğunuzdan emin olmak için Karar ağaçları, tren testi ve test seti internette saklanır. Herhangi bir değişiklik yapmadan bunları içe aktarabilirsiniz.
library(dplyr) data_train <- read.csv("https://raw.githubusercontent.com/guru99-edu/R-Programming/master/train.csv") glimpse(data_train) data_test <- read.csv("https://raw.githubusercontent.com/guru99-edu/R-Programming/master/test.csv") glimpse(data_test)
Adım 2) Modeli eğitin
Bir modelin performansını değerlendirmenin bir yolu, onu bir dizi farklı küçük veri kümesi üzerinde eğitmek ve bunları diğer daha küçük test kümesi üzerinde değerlendirmektir. Buna denir F-katlı çapraz doğrulama özelliği. R Neredeyse aynı boyuttaki veri kümelerini rastgele bölme işlevine sahiptir. Örneğin k=9 ise model dokuz klasör üzerinden değerlendirilir ve geri kalan test seti üzerinde test edilir. Bu işlem tüm alt kümeler değerlendirilene kadar tekrarlanır. Bu teknik, özellikle modelin ayarlanması gereken parametrelere sahip olması durumunda, model seçimi için yaygın olarak kullanılır.
Artık modelimizi değerlendirmenin bir yolunu bulduğumuza göre, verileri en iyi şekilde genelleştiren parametreleri nasıl seçeceğimizi bulmamız gerekiyor.
Rastgele orman, rastgele bir özellik alt kümesi seçer ve birçok Karar Ağacı oluşturur. Model, Karar ağaçlarının tüm tahminlerinin ortalamasını alır.
Rastgele orman, tahminin genelleştirilmesini geliştirmek için değiştirilebilecek bazı parametrelere sahiptir. Modeli eğitmek için RandomForest() fonksiyonunu kullanacaksınız.
Randon Forest'ın sözdizimi
RandomForest(formula, ntree=n, mtry=FALSE, maxnodes = NULL) Arguments: - Formula: Formula of the fitted model - ntree: number of trees in the forest - mtry: Number of candidates draw to feed the algorithm. By default, it is the square of the number of columns. - maxnodes: Set the maximum amount of terminal nodes in the forest - importance=TRUE: Whether independent variables importance in the random forest be assessed
not: Rastgele orman daha fazla parametre üzerinde eğitilebilir. Şuraya başvurabilirsiniz: skeç Farklı parametreleri görmek için
Bir modelin ayarlanması çok sıkıcı bir iştir. Parametreler arasında çok sayıda kombinasyon mümkündür. Hepsini denemek için mutlaka zamanınız yok. İyi bir alternatif, makinenin sizin için en iyi kombinasyonu bulmasına izin vermektir. İki yöntem mevcuttur:
- Rastgele Arama
- Izgara Arama
Her iki yöntemi de tanımlayacağız ancak eğitim sırasında modeli ızgara aramasını kullanarak eğiteceğiz.
Izgara Arama tanımı
Izgara arama yöntemi basittir; model, çapraz doğrulama kullanılarak işlevde ilettiğiniz tüm kombinasyonlar üzerinden değerlendirilecektir.
Örneğin 10, 20, 30 ağaçlı bir model denemek istiyorsunuz ve her ağaç 1, 2, 3, 4, 5'e eşit mtry sayısı üzerinden test edilecek. Daha sonra makine 15 farklı modeli test edecek:
.mtry ntrees 1 1 10 2 2 10 3 3 10 4 4 10 5 5 10 6 1 20 7 2 20 8 3 20 9 4 20 10 5 20 11 1 30 12 2 30 13 3 30 14 4 30 15 5 30
Algoritma şunları değerlendirecektir:
RandomForest(formula, ntree=10, mtry=1) RandomForest(formula, ntree=10, mtry=2) RandomForest(formula, ntree=10, mtry=3) RandomForest(formula, ntree=20, mtry=2) ...
Her seferinde rastgele orman, çapraz doğrulamayla deneyler yapar. Izgara aramanın bir eksikliği deneylerin sayısıdır. Kombinasyon sayısı fazla olduğunda çok kolay patlayıcı hale gelebilir. Bu sorunun üstesinden gelmek için rastgele aramayı kullanabilirsiniz.
Rastgele Arama tanımı
Rastgele arama ile ızgara arama arasındaki büyük fark, rastgele aramanın arama alanındaki tüm hiperparametre kombinasyonlarını değerlendirmeyecek olmasıdır. Bunun yerine, her yinelemede kombinasyonu rastgele seçecektir. Avantajı, hesaplama maliyetini düşürmesidir.
Kontrol parametresini ayarlayın
Modeli oluşturmak ve değerlendirmek için aşağıdaki şekilde ilerleyeceksiniz:
- Modeli varsayılan ayarla değerlendirin
- En iyi mtry sayısını bulun
- En iyi maxnode sayısını bulun
- En iyi ntree sayısını bulun
- Test veri kümesindeki modeli değerlendirin
Parametre incelemesine başlamadan önce iki kitaplık yüklemeniz gerekir.
- caret: R makine öğrenimi kütüphanesi. eğer varsa R'yi yükle r-esansiyel ile. Zaten kütüphanede var
- Dev piton: conda install -cr r-caret
- e1071: R makine öğrenimi kitaplığı.
- Dev piton: conda kurulumu -cr r-e1071
Bunları RandomForest ile birlikte içe aktarabilirsiniz
library(randomForest) library(caret) library(e1071)
Varsayılan ayarlar
K-katlı çapraz doğrulama trainControl() işlevi tarafından kontrol edilir
trainControl(method = "cv", number = n, search ="grid") arguments - method = "cv": The method used to resample the dataset. - number = n: Number of folders to create - search = "grid": Use the search grid method. For randomized method, use "grid" Note: You can refer to the vignette to see the other arguments of the function.
Modeli varsayılan parametrelerle çalıştırmayı deneyebilir ve doğruluk puanını görebilirsiniz.
not: Tüm eğitim boyunca aynı kontrolleri kullanacaksınız.
# Define the control trControl <- trainControl(method = "cv", number = 10, search = "grid")
Modelinizi değerlendirmek için düzeltme kütüphanesini kullanacaksınız. Kütüphanenin hemen hemen tüm öğeleri değerlendirmek için train() adında bir işlevi vardır. makine öğrenme algoritma. Başka bir deyişle, bu işlevi diğer algoritmaları eğitmek için kullanabilirsiniz.
Temel sözdizimi şöyledir:
train(formula, df, method = "rf", metric= "Accuracy", trControl = trainControl(), tuneGrid = NULL) argument - `formula`: Define the formula of the algorithm - `method`: Define which model to train. Note, at the end of the tutorial, there is a list of all the models that can be trained - `metric` = "Accuracy": Define how to select the optimal model - `trControl = trainControl()`: Define the control parameters - `tuneGrid = NULL`: Return a data frame with all the possible combination
Modeli varsayılan değerlerle oluşturmayı deneyelim.
set.seed(1234) # Run the model rf_default <- train(survived~., data = data_train, method = "rf", metric = "Accuracy", trControl = trControl) # Print the results print(rf_default)
Kod Açıklama
- trainControl(method=”cv”, number=10, search=”grid”): Modeli 10 klasörlük ızgara aramasıyla değerlendirin
- train(…): Rastgele bir orman modeli eğitin. Doğruluk ölçüsü ile en iyi model seçilir.
Çıktı:
## Random Forest ## ## 836 samples ## 7 predictor ## 2 classes: 'No', 'Yes' ## ## No pre-processing ## Resampling: Cross-Validated (10 fold) ## Summary of sample sizes: 753, 752, 753, 752, 752, 752, ... ## Resampling results across tuning parameters: ## ## mtry Accuracy Kappa ## 2 0.7919248 0.5536486 ## 6 0.7811245 0.5391611 ## 10 0.7572002 0.4939620 ## ## Accuracy was used to select the optimal model using the largest value. ## The final value used for the model was mtry = 2.
Algoritma 500 ağaç kullanıyor ve üç farklı mtry değerini test ediyor: 2, 6, 10.
Model için kullanılan nihai değer 2 doğrulukla mtry = 0.78 idi. Daha yüksek bir puan almaya çalışalım.
Adım 2) En iyi ölçüm denemesini arayın
Modeli 1'den 10'a kadar mtry değerleriyle test edebilirsiniz.
set.seed(1234) tuneGrid <- expand.grid(.mtry = c(1: 10)) rf_mtry <- train(survived~., data = data_train, method = "rf", metric = "Accuracy", tuneGrid = tuneGrid, trControl = trControl, importance = TRUE, nodesize = 14, ntree = 300) print(rf_mtry)
Kod Açıklama
- tuneGrid <- extend.grid(.mtry=c(3:10)): 3:10'dan itibaren değere sahip bir vektör oluşturun
Model için kullanılan son değer mtry = 4'tür.
Çıktı:
## Random Forest ## ## 836 samples ## 7 predictor ## 2 classes: 'No', 'Yes' ## ## No pre-processing ## Resampling: Cross-Validated (10 fold) ## Summary of sample sizes: 753, 752, 753, 752, 752, 752, ... ## Resampling results across tuning parameters: ## ## mtry Accuracy Kappa ## 1 0.7572576 0.4647368 ## 2 0.7979346 0.5662364 ## 3 0.8075158 0.5884815 ## 4 0.8110729 0.5970664 ## 5 0.8074727 0.5900030 ## 6 0.8099111 0.5949342 ## 7 0.8050918 0.5866415 ## 8 0.8050918 0.5855399 ## 9 0.8050631 0.5855035 ## 10 0.7978916 0.5707336 ## ## Accuracy was used to select the optimal model using the largest value. ## The final value used for the model was mtry = 4.
En iyi mtry değeri şurada saklanır:
rf_mtry$bestTune$mtry
Bunu saklayabilir ve diğer parametreleri ayarlamanız gerektiğinde kullanabilirsiniz.
max(rf_mtry$results$Accuracy)
Çıktı:
## [1] 0.8110729
best_mtry <- rf_mtry$bestTune$mtry best_mtry
Çıktı:
## [1] 4
Adım 3) En iyi maxnode’ları arayın
Maxnode'ların farklı değerlerini değerlendirmek için bir döngü oluşturmanız gerekir. Aşağıdaki kodda şunları yapacaksınız:
- Liste oluştur
- mtry parametresinin en iyi değerine sahip bir değişken oluşturun; Zorunlu
- Döngüyü oluştur
- Maxnode'un mevcut değerini saklayın
- Sonuçları özetle
store_maxnode <- list() tuneGrid <- expand.grid(.mtry = best_mtry) for (maxnodes in c(5: 15)) { set.seed(1234) rf_maxnode <- train(survived~., data = data_train, method = "rf", metric = "Accuracy", tuneGrid = tuneGrid, trControl = trControl, importance = TRUE, nodesize = 14, maxnodes = maxnodes, ntree = 300) current_iteration <- toString(maxnodes) store_maxnode[[current_iteration]] <- rf_maxnode } results_mtry <- resamples(store_maxnode) summary(results_mtry)
Kod açıklaması:
- Store_maxnode <- list(): Modelin sonuçları bu listede saklanacaktır.
- extend.grid(.mtry=best_mtry): En iyi mtry değerini kullan
- for (maxnodes in c(15:25)) { … }: Modeli 15'ten 25'e kadar maxnodes değerleriyle hesaplayın.
- maxnodes=maxnodes: Her yineleme için maxnodes, maxnodes'un mevcut değerine eşittir. yani 15, 16, 17,…
- key <- toString(maxnodes): maxnode değerini bir dize değişkeni olarak saklayın.
- Store_maxnode[[key]] <- rf_maxnode: Modelin sonucunu listeye kaydedin.
- resamples(store_maxnode): Modelin sonuçlarını düzenleyin
- Summary(results_mtry): Tüm kombinasyonun özetini yazdırır.
Çıktı:
## ## Call: ## summary.resamples(object = results_mtry) ## ## Models: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ## Number of resamples: 10 ## ## Accuracy ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 5 0.6785714 0.7529762 0.7903758 0.7799771 0.8168388 0.8433735 0 ## 6 0.6904762 0.7648810 0.7784710 0.7811962 0.8125000 0.8313253 0 ## 7 0.6904762 0.7619048 0.7738095 0.7788009 0.8102410 0.8333333 0 ## 8 0.6904762 0.7627295 0.7844234 0.7847820 0.8184524 0.8433735 0 ## 9 0.7261905 0.7747418 0.8083764 0.7955250 0.8258749 0.8333333 0 ## 10 0.6904762 0.7837780 0.7904475 0.7895869 0.8214286 0.8433735 0 ## 11 0.7023810 0.7791523 0.8024240 0.7943775 0.8184524 0.8433735 0 ## 12 0.7380952 0.7910929 0.8144005 0.8051205 0.8288511 0.8452381 0 ## 13 0.7142857 0.8005952 0.8192771 0.8075158 0.8403614 0.8452381 0 ## 14 0.7380952 0.7941050 0.8203528 0.8098967 0.8403614 0.8452381 0 ## 15 0.7142857 0.8000215 0.8203528 0.8075301 0.8378873 0.8554217 0 ## ## Kappa ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 5 0.3297872 0.4640436 0.5459706 0.5270773 0.6068751 0.6717371 0 ## 6 0.3576471 0.4981484 0.5248805 0.5366310 0.6031287 0.6480921 0 ## 7 0.3576471 0.4927448 0.5192771 0.5297159 0.5996437 0.6508314 0 ## 8 0.3576471 0.4848320 0.5408159 0.5427127 0.6200253 0.6717371 0 ## 9 0.4236277 0.5074421 0.5859472 0.5601687 0.6228626 0.6480921 0 ## 10 0.3576471 0.5255698 0.5527057 0.5497490 0.6204819 0.6717371 0 ## 11 0.3794326 0.5235007 0.5783191 0.5600467 0.6126720 0.6717371 0 ## 12 0.4460432 0.5480930 0.5999072 0.5808134 0.6296780 0.6717371 0 ## 13 0.4014252 0.5725752 0.6087279 0.5875305 0.6576219 0.6678832 0 ## 14 0.4460432 0.5585005 0.6117973 0.5911995 0.6590982 0.6717371 0 ## 15 0.4014252 0.5689401 0.6117973 0.5867010 0.6507194 0.6955990 0
Maxnode'un son değeri en yüksek doğruluğa sahiptir. Daha yüksek bir puan alıp alamayacağınızı görmek için daha yüksek değerlerle deneyebilirsiniz.
store_maxnode <- list() tuneGrid <- expand.grid(.mtry = best_mtry) for (maxnodes in c(20: 30)) { set.seed(1234) rf_maxnode <- train(survived~., data = data_train, method = "rf", metric = "Accuracy", tuneGrid = tuneGrid, trControl = trControl, importance = TRUE, nodesize = 14, maxnodes = maxnodes, ntree = 300) key <- toString(maxnodes) store_maxnode[[key]] <- rf_maxnode } results_node <- resamples(store_maxnode) summary(results_node)
Çıktı:
## ## Call: ## summary.resamples(object = results_node) ## ## Models: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ## Number of resamples: 10 ## ## Accuracy ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 20 0.7142857 0.7821644 0.8144005 0.8075301 0.8447719 0.8571429 0 ## 21 0.7142857 0.8000215 0.8144005 0.8075014 0.8403614 0.8571429 0 ## 22 0.7023810 0.7941050 0.8263769 0.8099254 0.8328313 0.8690476 0 ## 23 0.7023810 0.7941050 0.8263769 0.8111302 0.8447719 0.8571429 0 ## 24 0.7142857 0.7946429 0.8313253 0.8135112 0.8417599 0.8690476 0 ## 25 0.7142857 0.7916667 0.8313253 0.8099398 0.8408635 0.8690476 0 ## 26 0.7142857 0.7941050 0.8203528 0.8123207 0.8528758 0.8571429 0 ## 27 0.7023810 0.8060456 0.8313253 0.8135112 0.8333333 0.8690476 0 ## 28 0.7261905 0.7941050 0.8203528 0.8111015 0.8328313 0.8690476 0 ## 29 0.7142857 0.7910929 0.8313253 0.8087063 0.8333333 0.8571429 0 ## 30 0.6785714 0.7910929 0.8263769 0.8063253 0.8403614 0.8690476 0 ## ## Kappa ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 20 0.3956835 0.5316120 0.5961830 0.5854366 0.6661120 0.6955990 0 ## 21 0.3956835 0.5699332 0.5960343 0.5853247 0.6590982 0.6919315 0 ## 22 0.3735084 0.5560661 0.6221836 0.5914492 0.6422128 0.7189781 0 ## 23 0.3735084 0.5594228 0.6228827 0.5939786 0.6657372 0.6955990 0 ## 24 0.3956835 0.5600352 0.6337821 0.5992188 0.6604703 0.7189781 0 ## 25 0.3956835 0.5530760 0.6354875 0.5912239 0.6554912 0.7189781 0 ## 26 0.3956835 0.5589331 0.6136074 0.5969142 0.6822128 0.6955990 0 ## 27 0.3735084 0.5852459 0.6368425 0.5998148 0.6426088 0.7189781 0 ## 28 0.4290780 0.5589331 0.6154905 0.5946859 0.6356141 0.7189781 0 ## 29 0.4070588 0.5534173 0.6337821 0.5901173 0.6423101 0.6919315 0 ## 30 0.3297872 0.5534173 0.6202632 0.5843432 0.6590982 0.7189781 0
En yüksek doğruluk puanı maxnode değerinin 22’ye eşit olmasıyla elde edilir.
Adım 4) En iyi ağaçları arayın
Artık mtry ve maxnode'un en iyi değerine sahip olduğunuza göre ağaç sayısını ayarlayabilirsiniz. Yöntem maxnode ile tamamen aynıdır.
store_maxtrees <- list() for (ntree in c(250, 300, 350, 400, 450, 500, 550, 600, 800, 1000, 2000)) { set.seed(5678) rf_maxtrees <- train(survived~., data = data_train, method = "rf", metric = "Accuracy", tuneGrid = tuneGrid, trControl = trControl, importance = TRUE, nodesize = 14, maxnodes = 24, ntree = ntree) key <- toString(ntree) store_maxtrees[[key]] <- rf_maxtrees } results_tree <- resamples(store_maxtrees) summary(results_tree)
Çıktı:
## ## Call: ## summary.resamples(object = results_tree) ## ## Models: 250, 300, 350, 400, 450, 500, 550, 600, 800, 1000, 2000 ## Number of resamples: 10 ## ## Accuracy ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 250 0.7380952 0.7976190 0.8083764 0.8087010 0.8292683 0.8674699 0 ## 300 0.7500000 0.7886905 0.8024240 0.8027199 0.8203397 0.8452381 0 ## 350 0.7500000 0.7886905 0.8024240 0.8027056 0.8277623 0.8452381 0 ## 400 0.7500000 0.7886905 0.8083764 0.8051009 0.8292683 0.8452381 0 ## 450 0.7500000 0.7886905 0.8024240 0.8039104 0.8292683 0.8452381 0 ## 500 0.7619048 0.7886905 0.8024240 0.8062914 0.8292683 0.8571429 0 ## 550 0.7619048 0.7886905 0.8083764 0.8099062 0.8323171 0.8571429 0 ## 600 0.7619048 0.7886905 0.8083764 0.8099205 0.8323171 0.8674699 0 ## 800 0.7619048 0.7976190 0.8083764 0.8110820 0.8292683 0.8674699 0 ## 1000 0.7619048 0.7976190 0.8121510 0.8086723 0.8303571 0.8452381 0 ## 2000 0.7619048 0.7886905 0.8121510 0.8086723 0.8333333 0.8452381 0 ## ## Kappa ## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's ## 250 0.4061697 0.5667400 0.5836013 0.5856103 0.6335363 0.7196807 0 ## 300 0.4302326 0.5449376 0.5780349 0.5723307 0.6130767 0.6710843 0 ## 350 0.4302326 0.5449376 0.5780349 0.5723185 0.6291592 0.6710843 0 ## 400 0.4302326 0.5482030 0.5836013 0.5774782 0.6335363 0.6710843 0 ## 450 0.4302326 0.5449376 0.5780349 0.5750587 0.6335363 0.6710843 0 ## 500 0.4601542 0.5449376 0.5780349 0.5804340 0.6335363 0.6949153 0 ## 550 0.4601542 0.5482030 0.5857118 0.5884507 0.6396872 0.6949153 0 ## 600 0.4601542 0.5482030 0.5857118 0.5884374 0.6396872 0.7196807 0 ## 800 0.4601542 0.5667400 0.5836013 0.5910088 0.6335363 0.7196807 0 ## 1000 0.4601542 0.5667400 0.5961590 0.5857446 0.6343666 0.6678832 0 ## 2000 0.4601542 0.5482030 0.5961590 0.5862151 0.6440678 0.6656337 0
Son modeliniz hazır. Rastgele ormanı aşağıdaki parametrelerle eğitebilirsiniz:
- ntree =800: 800 ağaç eğitilecek
- mtry=4: Her yineleme için 4 özellik seçilir
- maxnodes = 24: Terminal düğümlerinde (yapraklarda) maksimum 24 düğüm
fit_rf <- train(survived~., data_train, method = "rf", metric = "Accuracy", tuneGrid = tuneGrid, trControl = trControl, importance = TRUE, nodesize = 14, ntree = 800, maxnodes = 24)
Adım 5) Modeli değerlendirin
Kütüphane düzeltme işaretinin tahmin yapma işlevi vardır.
predict(model, newdata= df) argument - `model`: Define the model evaluated before. - `newdata`: Define the dataset to make prediction
prediction <-predict(fit_rf, data_test)
Karışıklık matrisini hesaplamak ve doğruluk puanını görmek için tahmini kullanabilirsiniz.
confusionMatrix(prediction, data_test$survived)
Çıktı:
## Confusion Matrix and Statistics ## ## Reference ## Prediction No Yes ## No 110 32 ## Yes 11 56 ## ## Accuracy : 0.7943 ## 95% CI : (0.733, 0.8469) ## No Information Rate : 0.5789 ## P-Value [Acc > NIR] : 3.959e-11 ## ## Kappa : 0.5638 ## Mcnemar's Test P-Value : 0.002289 ## ## Sensitivity : 0.9091 ## Specificity : 0.6364 ## Pos Pred Value : 0.7746 ## Neg Pred Value : 0.8358 ## Prevalence : 0.5789 ## Detection Rate : 0.5263 ## Detection Prevalence : 0.6794 ## Balanced Accuracy : 0.7727 ## ## 'Positive' Class : No ##
Varsayılan değerden daha yüksek olan yüzde 0.7943'lük bir doğruluğunuz var
Adım 6) Sonucu Görselleştirin
Son olarak varImp() fonksiyonuyla özelliğin önemine bakabilirsiniz. Görünüşe göre en önemli özellikler cinsiyet ve yaştır. Bu şaşırtıcı değil çünkü önemli özellikler muhtemelen ağacın köküne daha yakın görünürken, daha az önemli özellikler genellikle yapraklara kapalı olarak görünecektir.
varImpPlot(fit_rf)
Çıktı:
varImp(fit_rf) ## rf variable importance ## ## Importance ## sexmale 100.000 ## age 28.014 ## pclassMiddle 27.016 ## fare 21.557 ## pclassUpper 16.324 ## sibsp 11.246 ## parch 5.522 ## embarkedC 4.908 ## embarkedQ 1.420 ## embarkedS 0.000
ÖZET
Rastgele bir ormanın nasıl eğitileceğini ve değerlendirileceğini aşağıdaki tabloyla özetleyebiliriz:
Kütüphane | Nesnel | işlev | Parametre |
---|---|---|---|
rastgeleOrman | Rastgele bir orman oluşturun | RandomForest() | formül, ntree=n, mtry=FALSE, maxnodes = NULL |
şapka | K klasörü çapraz doğrulaması oluştur | trenKontrol() | yöntem = “cv”, sayı = n, arama =”grid” |
şapka | Rastgele Orman Eğit | tren() | formül, df, yöntem = “rf”, metrik= “Doğruluk”, trControl = trainControl(), tuneGrid = NULL |
şapka | Örnekten tahmin etme | tahmin | model, yeniveri=df |
şapka | Karışıklık Matrisi ve İstatistik | karışıklık Matrisi() | model, y testi |
şapka | değişken önem | cvarImp() | model |
Ek
Düzeltme işaretinde kullanılan modelin listesi
names>(getModelInfo())
Çıktı:
## [1] "ada" "AdaBag" "AdaBoost.M1" ## [4] "adaboost" "amdai" "ANFIS" ## [7] "avNNet" "awnb" "awtan" ## [10] "bag" "bagEarth" "bagEarthGCV" ## [13] "bagFDA" "bagFDAGCV" "bam" ## [16] "bartMachine" "bayesglm" "binda" ## [19] "blackboost" "blasso" "blassoAveraged" ## [22] "bridge" "brnn" "BstLm" ## [25] "bstSm" "bstTree" "C5.0" ## [28] "C5.0Cost" "C5.0Rules" "C5.0Tree" ## [31] "cforest" "chaid" "CSimca" ## [34] "ctree" "ctree2" "cubist" ## [37] "dda" "deepboost" "DENFIS" ## [40] "dnn" "dwdLinear" "dwdPoly" ## [43] "dwdRadial" "earth" "elm" ## [46] "enet" "evtree" "extraTrees" ## [49] "fda" "FH.GBML" "FIR.DM" ## [52] "foba" "FRBCS.CHI" "FRBCS.W" ## [55] "FS.HGD" "gam" "gamboost" ## [58] "gamLoess" "gamSpline" "gaussprLinear" ## [61] "gaussprPoly" "gaussprRadial" "gbm_h3o" ## [64] "gbm" "gcvEarth" "GFS.FR.MOGUL" ## [67] "GFS.GCCL" "GFS.LT.RS" "GFS.THRIFT" ## [70] "glm.nb" "glm" "glmboost" ## [73] "glmnet_h3o" "glmnet" "glmStepAIC" ## [76] "gpls" "hda" "hdda" ## [79] "hdrda" "HYFIS" "icr" ## [82] "J48" "JRip" "kernelpls" ## [85] "kknn" "knn" "krlsPoly" ## [88] "krlsRadial" "lars" "lars2" ## [91] "lasso" "lda" "lda2" ## [94] "leapBackward" "leapForward" "leapSeq" ## [97] "Linda" "lm" "lmStepAIC" ## [100] "LMT" "loclda" "logicBag" ## [103] "LogitBoost" "logreg" "lssvmLinear" ## [106] "lssvmPoly" "lssvmRadial" "lvq" ## [109] "M5" "M5Rules" "manb" ## [112] "mda" "Mlda" "mlp" ## [115] "mlpKerasDecay" "mlpKerasDecayCost" "mlpKerasDropout" ## [118] "mlpKerasDropoutCost" "mlpML" "mlpSGD" ## [121] "mlpWeightDecay" "mlpWeightDecayML" "monmlp" ## [124] "msaenet" "multinom" "mxnet" ## [127] "mxnetAdam" "naive_bayes" "nb" ## [130] "nbDiscrete" "nbSearch" "neuralnet" ## [133] "nnet" "nnls" "nodeHarvest" ## [136] "null" "OneR" "ordinalNet" ## [139] "ORFlog" "ORFpls" "ORFridge" ## [142] "ORFsvm" "ownn" "pam" ## [145] "parRF" "PART" "partDSA" ## [148] "pcaNNet" "pcr" "pda" ## [151] "pda2" "penalized" "PenalizedLDA" ## [154] "plr" "pls" "plsRglm" ## [157] "polr" "ppr" "PRIM" ## [160] "protoclass" "pythonKnnReg" "qda" ## [163] "QdaCov" "qrf" "qrnn" ## [166] "randomGLM" "ranger" "rbf" ## [169] "rbfDDA" "Rborist" "rda" ## [172] "regLogistic" "relaxo" "rf" ## [175] "rFerns" "RFlda" "rfRules" ## [178] "ridge" "rlda" "rlm" ## [181] "rmda" "rocc" "rotationForest" ## [184] "rotationForestCp" "rpart" "rpart1SE" ## [187] "rpart2" "rpartCost" "rpartScore" ## [190] "rqlasso" "rqnc" "RRF" ## [193] "RRFglobal" "rrlda" "RSimca" ## [196] "rvmLinear" "rvmPoly" "rvmRadial" ## [199] "SBC" "sda" "sdwd" ## [202] "simpls" "SLAVE" "slda" ## [205] "smda" "snn" "sparseLDA" ## [208] "spikeslab" "spls" "stepLDA" ## [211] "stepQDA" "superpc" "svmBoundrangeString"## [214] "svmExpoString" "svmLinear" "svmLinear2" ## [217] "svmLinear3" "svmLinearWeights" "svmLinearWeights2" ## [220] "svmPoly" "svmRadial" "svmRadialCost" ## [223] "svmRadialSigma" "svmRadialWeights" "svmSpectrumString" ## [226] "tan" "tanSearch" "treebag" ## [229] "vbmpRadial" "vglmAdjCat" "vglmContRatio" ## [232] "vglmCumulative" "widekernelpls" "WM" ## [235] "wsrf" "xgbLinear" "xgbTree" ## [238] "xyf"