R'deki Karar Ağacı: Örnekli Sınıflandırma Ağacı
⚡ Akıllı Özet
R'deki karar ağaçları, her yaprak tek bir baskın sınıfa sahip olana kadar basit evet veya hayır kuralları kullanarak verileri dallara ayırır. Bu kılavuz, Titanic hayatta kalma veri kümesi üzerinde bir rpart sınıflandırma ağacının oluşturulmasını, grafiğinin çizilmesini, değerlendirilmesini ve ayarlanmasını ele almaktadır.

Karar Ağaçları Nedir?
Karar ağaçları Karar ağaçları, hem sınıflandırma hem de regresyon görevlerini gerçekleştirebilen çok yönlü bir makine öğrenimi algoritmasıdır. Karmaşık veri kümelerine uyum sağlayabilen çok güçlü algoritmalardır. Ayrıca, karar ağaçları, günümüzde mevcut en güçlü makine öğrenimi algoritmaları arasında yer alan rastgele ormanların temel bileşenleridir.
Kodda bir ağaç yapısı oluşturmadan önce, ağacın nerede bölüneceğine nasıl karar verdiğini bilmek faydalı olur.
Karar Ağacı Nasıl Çalışır?
Karar ağacı, bir veri kümesini üç tür düğümden oluşan evet veya hayır sorularından oluşan bir akış şemasına dönüştürür: kök her eğitim gözlemini gerçekleştirir, bir iç düğüm Bir tahminleyici hakkında bir soru sorar ve verileri ikiye böler, ve bir Yaprak Bölmeyi durdurur ve çoğunluk sınıfını döndürür.
Büyüme, açgözlü bir prosedür izler. özyinelemeli ikili bölümleme:
- Her aday bölümünü değerlendirin. Her bir tahminleyici ve kesme noktası için, ortaya çıkan iki grubun ne kadar saf olmayacağını ölçün.
- En iyisini saklayın. En fazla safsızlığı azaltan ayrıştırma yöntemi, o düğümde sorulan soru haline gelir.
- Her çocuk için aynı işlemi tekrarlayın. ta ki bir kontrol kuralı onu durdurana kadar: minsplit, minbucket, maxdepth veya cp.
- Kuru erik. Ardından cp, kendi masraflarını karşılamayan dalları budar ve bu da ağacın eğitim setini ezberlemesini engeller.
Her soruda bir değişken bir eşik değerle karşılaştırıldığı için, algoritmanın ölçeklendirmeye veya kukla kodlamaya ihtiyacı yoktur.
Karar Ağaçlarında Gini İndeksi ve Entropi Karşılaştırması
Bu safsızlık iki şekilde ölçülebilir ve rpart size seçim yapma olanağı sunar.
| Kriterler | Gini Endeksi | Entropi (Bilgi Kazancı) |
|---|---|---|
| formül | 1 – sınıf oranlarının karelerinin toplamı | -p çarpı log2(p)'nin toplamı |
| Aralık (iki sınıf) | 0 için 0.5 | 0 için 1 |
| Hesaplama | Daha hızlı, logaritma yok | Daha yavaş, logaritma kullanıyor. |
| rpart ayarı | Varsayılan | parms = list(split = “information”) |
fit_entropy <- rpart(survived~., data = data_train, method = 'class', parms = list(split = "information"))
Pratikte her iki kriter de çoğu zaman aynı dağılımı seçer, bu nedenle varsayılan Gini endeksi güvenli bir seçimdir.
Karar Ağaçlarının Avantajları ve Dezavantajları
Bu ödünleşmeler, tek bir ağacın ne zaman yeterli olduğunu ve ne zaman bir topluluğa geçmeniz gerektiğini size gösterir.
Avantajlar
- Tamamen yorumlanabilir: Uyumlu model, tüm paydaşların okuyabileceği bir diyagramdır.
- Minimum ön işleme: Ölçeklendirme veya normalleştirme gerekmez ve faktörler doğal olarak çalışır.
- Her iki görevi de yerine getirir: `method = 'class'` bir sınıflandırıcıyı, `method = 'anova'` ise bir regresyon ağacını eğitir.
- Hızlıca eğitilebilir: Büyük veri kümeleri saniyeler içinde işlenebilir, bu nedenle ağaçlar kullanışlı bir ilk temel oluşturur.
Dezavantajlar
- Yüksek varyans: Eğitim verilerindeki küçük bir değişiklik, tamamen farklı bir ağaç ortaya çıkarabilir.
- Aşırı uyum eğilimi: Sınırsız bir şekilde büyüyen bir ağaç, cp ve maxdepth onu kısıtlamadığı sürece her yaprağı saf olana kadar büyümeye devam eder.
- Yalnızca eksen paralel bölünmeler: Çapraz sınırlar, merdiven şeklinde birçok kesim gerektirir.
İlk iki zayıflığın çözümü, birçok ağacın ortalamasını almaktır; bu da tam olarak budur. rastgele orman yapar.
R'de Karar Ağacı Nasıl Eğitilir ve Görselleştirilir?
R'da ilk karar ağacınızı oluşturmak için yedi adımı izleyeceksiniz:
- 1. Adım: Verileri içe aktarın
- 2. Adım: Veri kümesini temizleyin
- 3. Adım: Eğitim/test seti oluşturun
- 4. Adım: Modeli oluşturun
- 5. Adım: Tahminde bulunun
- 6. Adım: Performansı ölçün
- Adım 7: Hiper parametreleri ayarlayın
Adım 1) Verileri içe aktarın
Titanik'in akıbetini merak ediyorsanız bu videoyu izleyebilirsiniz. Youtube. Bu veri setinin amacı, buzdağıyla çarpışma sonrasında hangi insanların hayatta kalma olasılığının daha yüksek olduğunu tahmin etmektir. Veri seti 13 değişken ve 1309 gözlem içermektedir. Veri seti X değişkenine göre sıralanır.
set.seed(678) path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/titanic_data.csv' titanic <-read.csv(path) head(titanic)
Çıktı:
## X pclass survived name sex ## 1 1 1 1 Allen, Miss. Elisabeth Walton female ## 2 2 1 1 Allison, Master. Hudson Trevor male ## 3 3 1 0 Allison, Miss. Helen Loraine female ## 4 4 1 0 Allison, Mr. Hudson Joshua Creighton male ## 5 5 1 0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female ## 6 6 1 1 Anderson, Mr. Harry male ## age sibsp parch ticket fare cabin embarked ## 1 29.0000 0 0 24160 211.3375 B5 S ## 2 0.9167 1 2 113781 151.5500 C22 C26 S ## 3 2.0000 1 2 113781 151.5500 C22 C26 S ## 4 30.0000 1 2 113781 151.5500 C22 C26 S ## 5 25.0000 1 2 113781 151.5500 C22 C26 S ## 6 48.0000 0 0 19952 26.5500 E12 S ## home.dest ## 1 St Louis, MO ## 2 Montreal, PQ / Chesterville, ON ## 3 Montreal, PQ / Chesterville, ON ## 4 Montreal, PQ / Chesterville, ON ## 5 Montreal, PQ / Chesterville, ON ## 6 New York, NY
tail(titanic)
Çıktı:
## X pclass survived name sex age sibsp ## 1304 1304 3 0 Yousseff, Mr. Gerious male NA 0 ## 1305 1305 3 0 Zabour, Miss. Hileni female 14.5 1 ## 1306 1306 3 0 Zabour, Miss. Thamine female NA 1 ## 1307 1307 3 0 Zakarian, Mr. Mapriededer male 26.5 0 ## 1308 1308 3 0 Zakarian, Mr. Ortin male 27.0 0 ## 1309 1309 3 0 Zimmerman, Mr. Leo male 29.0 0 ## parch ticket fare cabin embarked home.dest ## 1304 0 2627 14.4583 C ## 1305 0 2665 14.4542 C ## 1306 0 2665 14.4542 C ## 1307 0 2656 7.2250 C ## 1308 0 2670 7.2250 C ## 1309 0 315082 7.8750 S
Baş ve kuyruk çıktısından verilerin karıştırılmadığını fark edebilirsiniz. Bu büyük bir sorun! Verilerinizi bir tren seti ve test seti arasında böleceğinizde, bir tek 1. ve 2. sınıftan yolcu (gözlemlerin en üst yüzde 3'inde 80. sınıftan hiçbir yolcu yok), bu da algoritmanın 3. sınıftaki yolcunun özelliklerini hiçbir zaman göremeyeceği anlamına geliyor. Bu hata kötü tahmin yapılmasına yol açacaktır.
Bu sorunun üstesinden gelmek için sample() fonksiyonunu kullanabilirsiniz.
shuffle_index <- sample(1:nrow(titanic)) head(shuffle_index)
Karar ağacı R kodu Açıklama
- sample(1:nrow(titanic)): 1'den 1309'a kadar (yani maksimum satır sayısı) rastgele bir dizin listesi oluşturun.
Çıktı:
## [1] 288 874 1078 633 887 992
Titanik veri kümesini karıştırmak için bu dizini kullanacaksınız.
titanic <- titanic[shuffle_index, ]
head(titanic)
Çıktı:
## X pclass survived ## 288 288 1 0 ## 874 874 3 0 ## 1078 1078 3 1 ## 633 633 3 0 ## 887 887 3 1 ## 992 992 3 1 ## name sex age ## 288 Sutton, Mr. Frederick male 61 ## 874 Humblen, Mr. Adolf Mathias Nicolai Olsen male 42 ## 1078 O'Driscoll, Miss. Bridget female NA ## 633 Andersson, Mrs. Anders Johan (Alfrida Konstantia Brogren) female 39 ## 887 Jermyn, Miss. Annie female NA ## 992 Mamee, Mr. Hanna male NA ## sibsp parch ticket fare cabin embarked home.dest## 288 0 0 36963 32.3208 D50 S Haddenfield, NJ ## 874 0 0 348121 7.6500 F G63 S ## 1078 0 0 14311 7.7500 Q ## 633 1 5 347082 31.2750 S Sweden Winnipeg, MN ## 887 0 0 14313 7.7500 Q ## 992 0 0 2677 7.2292 C
Adım 2) Veri kümesini temizleyin
Birkaç değişken NA değerleri içeriyor. Temizleme işlemi üç aşamada gerçekleştirilir:
- home.dest, cabin, name, X ve ticket değişkenlerini silin.
- Pclass için faktör değişkenleri oluşturun ve hayatta kalın
- NA'yı bırak
library(dplyr) # Drop variables clean_titanic <- titanic %>% select(-c(home.dest, cabin, name, X, ticket)) %>% #Convert to factor level mutate(pclass = factor(pclass, levels = c(1, 2, 3), labels = c('Upper', 'Middle', 'Lower')), survived = factor(survived, levels = c(0, 1), labels = c('No', 'Yes'))) %>% na.omit() glimpse(clean_titanic)
Code açıklama
- select(-c(home.dest, kabin, isim, X, bilet))): Gereksiz değişkenleri bırakın
- pclass = factor(pclass, levels = c(1,2,3), labels= c('Upper', 'Middle', 'Lower')): pclass değişkenine etiket ekleyin. 1, Upper olur; 2, Middle olur; 3 ise Lower olur.
- faktör(hayatta kaldı, seviyeler = c(0,1), etiketler = c('Hayır', 'Evet')): Hayatta kaldı değişkenine etiketler ekler. 0, Hayır; 1 ise Evet olur.
- na.omit(): NA gözlemlerini kaldırır
Çıktı:
## Observations: 1,045 ## Variables: 8 ## $ pclass <fctr> Upper, Lower, Lower, Upper, Middle, Upper, Middle, U... ## $ survived <fctr> No, No, No, Yes, No, Yes, Yes, No, No, No, No, No, Y... ## $ sex <fctr> male, male, female, female, male, male, female, male... ## $ age <dbl> 61.0, 42.0, 39.0, 49.0, 29.0, 37.0, 20.0, 54.0, 2.0, ... ## $ sibsp <int> 0, 0, 1, 0, 0, 1, 0, 0, 4, 0, 0, 1, 1, 0, 0, 0, 1, 1,... ## $ parch <int> 0, 0, 5, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 2, 0, 4, 0,... ## $ fare <dbl> 32.3208, 7.6500, 31.2750, 25.9292, 10.5000, 52.5542, ... ## $ embarked <fctr> S, S, S, S, S, S, S, S, S, C, S, S, S, Q, C, S, S, C...
Adım 3) Eğitim/test seti oluşturun
Modelinizi eğitmeden önce iki adımı uygulamanız gerekir:
- Bir eğitim ve test seti oluşturun: Modeli tren setinde eğitirsiniz ve tahminleri test setinde (yani görünmeyen veriler) test edersiniz.
- Rpart.plot'u konsoldan yükleyin
Yaygın uygulama, verileri 80/20'ye bölmektir; verilerin yüzde 80'i modeli eğitmeye ve yüzde 20'si tahminlerde bulunmaya hizmet eder. İki ayrı veri çerçevesi oluşturmanız gerekir. Modelinizi oluşturmayı bitirene kadar test setine dokunmak istemezsiniz. Üç bağımsız değişken alan create_train_test() işlev adını oluşturabilirsiniz.
create_train_test(df, size = 0.8, train = TRUE) arguments: -df: Dataset used to train the model. -size: Size of the split. By default, 0.8. Numerical value -train: If set to `TRUE`, the function creates the train set, otherwise the test set. Default value sets to `TRUE`. Boolean value.You need to add a Boolean parameter because R does not allow to return two data frames simultaneously.
create_train_test <- function(data, size = 0.8, train = TRUE) { n_row = nrow(data) total_row = size * n_row train_sample <- 1: total_row if (train == TRUE) { return (data[train_sample, ]) } else { return (data[-train_sample, ]) } }
Code açıklama
- function(data, size=0.8, train = TRUE): Fonksiyondaki argümanları ekleyin
- n_row = dar(veri): Veri kümesindeki satır sayısını sayın
- total_row = size*n_row: Tren setini oluşturmak için n'inci satırı döndürür
- train_sample <- 1:total_row: İlk satırdan n'inci satıra kadar seç
- if (train ==TRUE){ } else { }: Koşul doğru olarak ayarlanırsa tren setini, aksi takdirde test setini döndürün.
Fonksiyonunuzu test edebilir ve boyutu kontrol edebilirsiniz.
data_train <- create_train_test(clean_titanic, 0.8, train = TRUE) data_test <- create_train_test(clean_titanic, 0.8, train = FALSE) dim(data_train)
Çıktı:
## [1] 836 8
dim(data_test)
Çıktı:
## [1] 209 8
Eğitim veri seti 836 satır ve 8 sütundan oluşurken, test veri seti 209 satır ve aynı 8 sütundan oluşmaktadır.
Rastgeleleştirme işleminin doğru olup olmadığını doğrulamak için prop.table() işlevini table() ile birlikte kullanırsınız.
prop.table(table(data_train$survived))
Çıktı:
## ## No Yes ## 0.5944976 0.4055024
prop.table(table(data_test$survived))
Çıktı:
## ## No Yes ## 0.5789474 0.4210526
Her iki veri setinde de hayatta kalanların sayısı aynı, yaklaşık yüzde 40.
rpart.plot'u yükleyin
rpart.plot conda kitaplıklarında mevcut değildir. Konsoldan yükleyebilirsiniz:
install.packages("rpart.plot")
Adım 4) Modeli oluşturun
Modeli oluşturmaya hazırsınız. rpart() karar ağacı fonksiyonunun sözdizimi şu şekildedir:
rpart(formula, data=, method='') arguments: - formula: The function to predict - data: Specifies the data frame - method: - "class" for a classification tree - "anova" for a regression tree
Bir sınıfı tahmin ettiğiniz için sınıf yöntemini kullanırsınız.
library(rpart) library(rpart.plot) fit <- rpart(survived~., data = data_train, method = 'class') rpart.plot(fit, extra = 106)
Code açıklama
- rpart(): Modele uyacak işlev. Argümanlar şunlardır:
- hayatta kaldı ~.: Karar Ağaçlarının Formülü
- veri = data_train: Veri kümesi
- method = 'sınıf': İkili bir modele uyun
- rpart.plot(fit, extra= 106): Ağacı çizer. extra argümanı 106 olarak ayarlanmıştır ve bu, ikinci sınıfın olasılığını ve her düğümdeki gözlem yüzdesini gösterir. Daha fazla bilgi için şuraya bakabilirsiniz: skeç Diğer seçenekler hakkında daha fazla bilgi için.
Çıktı:
Grafın en tepesindeki kök düğümden ve 3 derinliğin 0. noktasından başlıyorsunuz:
- En üstte genel hayatta kalma olasılığı yer alır. Kazadan sağ kurtulan yolcuların oranını gösteriyor. Yolcuların yüzde 41'i hayatta kaldı.
- Bu düğüm, yolcunun cinsiyetinin erkek olup olmadığını sorar. Eğer evet ise, kökün sol çocuğuna (derinlik 1) inilir. Yolcuların %63'ü erkektir ve hayatta kalma olasılıkları %21'dir.
- İkinci düğümde erkek yolcunun 3.5 yaş üstü olup olmadığını soruyorsunuz. Eğer evet ise, hayatta kalma şansı yüzde 19'dur.
- Hangi özelliklerin hayatta kalma olasılığını etkilediğini anlamak için böyle devam edersiniz.
Karar Ağaçlarının birçok özelliğinden birinin çok az veri hazırlığı gerektirmesi olduğunu unutmayın. Özellikle özellik ölçeklendirme veya ortalama gerektirmezler.
Varsayılan olarak, rpart() fonksiyonu şunu kullanır: Gini Her bir bölmeyi seçmek için kirlilik ölçüsü kullanılır. Gini değeri ne kadar yüksekse, o düğüm içindeki sınıflar o kadar karışıktır; bu nedenle algoritma her zaman Gini değerini en çok düşüren bölmeyi seçer.
Adım 5) Bir tahminde bulunun
Test veri kümenizi tahmin edebilirsiniz. Tahmin yapmak için tahmin() fonksiyonunu kullanabilirsiniz. R karar ağacı için tahminin temel sözdizimi şöyledir:
predict(fitted_model, df, type = 'class') arguments: - fitted_model: This is the object stored after model estimation. - df: Data frame used to make the prediction - type: Type of prediction - 'class': for classification - 'prob': to compute the probability of each class - 'vector': Predict the mean response at the node level
Şimdi, test grubundaki 209 yolcunun her biri için, modelin çarpışmadan sağ kurtulmalarını bekleyip beklemediğini tahmin ediyorsunuz.
predict_unseen <-predict(fit, data_test, type = 'class')
Code açıklama
- tahmin(fit, data_test, type = 'sınıf'): Test kümesinin sınıfını (0/1) tahmin edin
Şimdi tahmin edilen sınıfları gerçek sonuçlarla karşılaştırın.
table_mat <- table(data_test$survived, predict_unseen)
table_mat
Code açıklama
- table(data_test$survived, predict_unseen): Tahmin edilen sınıfların gerçek sonuca karşı olasılık tablosunu oluşturun.
Çıktı:
## predict_unseen ## No Yes ## No 106 15 ## Yes 30 58
Satırlar gerçek değerleri, sütunlar ise tahminleri göstermektedir. Model, 106 hayatta kalmayan ve 58 hayatta kalan kişiyi doğru bir şekilde belirlemiş, ancak 15 hayatta kalmayan kişiyi hayatta kalan, 30 hayatta kalan kişiyi ise ölmüş olarak etiketlemiştir.
Adım 6) Performansı ölçün
Sınıflandırma görevi için bir doğruluk ölçüsünü şu şekilde hesaplayabilirsiniz: karışıklık matrisi:
MKS karışıklık matrisi sınıflandırma performansını değerlendirmek için daha iyi bir seçimdir. Genel fikir, True örneklerinin kaç kez Yanlış olarak sınıflandırıldığını saymaktır.
Bir karışıklık matrisindeki her satır gerçek bir hedefi, her sütun ise tahmin edilen bir hedefi temsil eder. Bu matrisin ilk satırı ölen yolcuları (negatif sınıf) dikkate alır: 106 kişi doğru şekilde ölü olarak sınıflandırılmıştır (Gerçek negatif15 kişi ise yanlışlıkla hayatta kalanlar olarak sınıflandırılmıştı (Yanlış pozitifİkinci satırda hayatta kalanlar ele alınıyor: 58'i doğru şekilde tanımlandı (gerçek pozitif), 30'ü ise gözden kaçırıldı (Yanlış negatif).
Hesaplayabilirsiniz doğruluk testi karışıklık matrisinden:
Matris toplamına göre gerçek pozitif ve gerçek negatifin oranıdır. R ile aşağıdaki gibi kodlayabilirsiniz:
accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)
Code açıklama
- toplam(diag(table_mat))): Köşegenin toplamı
- sum(table_mat): Matrisin toplamı.
Test setinin doğruluğunu yazdırabilirsiniz:
print(paste('Accuracy for test', accuracy_Test))
Çıktı:
## [1] "Accuracy for test 0.784688995215311"
Test veri setindeki doğruluk oranı 0.7847'dir, yani %78.47'dir. Modelin ne kadar aşırı uyum sağladığını görmek için aynı işlemi eğitim veri seti üzerinde tekrarlayın.
Adım 7) Hiper parametreleri ayarlayın
R'deki karar ağacı, uyumun yönlerini kontrol eden çeşitli parametrelere sahiptir. Rpart karar ağacı kütüphanesinde, rpart.control() işlevini kullanarak parametreleri kontrol edebilirsiniz. Aşağıdaki kodda, ayarlayacağınız parametreleri tanıtıyorsunuz. Şuraya başvurabilirsiniz: skeç diğer parametreler için.
rpart.control(minsplit = 20, minbucket = round(minsplit/3), maxdepth = 30) Arguments: -minsplit: Set the minimum number of observations in the node before the algorithm perform a split -minbucket: Set the minimum number of observations in a terminal node, i.e. the leaf -maxdepth: Set the maximum depth of any node of the final tree. The root node is treated as depth 0
Aşağıdaki gibi ilerleyeceğiz:
- Doğruluğu döndürmek için işlev oluşturun
- Maksimum derinliği ayarlayın
- Bir düğümün bölünebilmesi için sahip olması gereken minimum örnek sayısını ayarlayın
- Bir yaprak düğümün sahip olması gereken minimum örnek sayısını ayarlayın
Doğruluğu görüntülemek için bir fonksiyon yazabilirsiniz. Daha önce kullandığınız kodu kaydırmanız yeterlidir:
- tahmin: tahmin_unseen <- tahmin(uygun, veri_testi, tür = 'sınıf')
- Tablo üretin: table_mat <- table(data_test$survived, tahmin_unseen)
- Hesaplama doğruluğu: doğruluk_Test <- toplam(diag(table_mat))/sum(table_mat)
accuracy_tune <- function(fit) { predict_unseen <- predict(fit, data_test, type = 'class') table_mat <- table(data_test$survived, predict_unseen) accuracy_Test <- sum(diag(table_mat)) / sum(table_mat) accuracy_Test }
Şimdi parametreleri ayarlayın ve varsayılan modele göre bir iyileşme sağlayıp sağlayamayacağınıza bakın. Hatırlatmak gerekirse, 0.7847'lik bir doğruluk oranını geçmeniz gerekiyor.
control <- rpart.control(minsplit = 4,
minbucket = round(5 / 3),
maxdepth = 3,
cp = 0)
tune_fit <- rpart(survived~., data = data_train, method = 'class', control = control)
accuracy_tune(tune_fit)
Çıktı:
## [1] 0.7990431
Aşağıdaki parametre ile:
minsplit = 4
minbucket = round(5/3)
maxdepth = 3
cp = 0
Doğruluk oranı 0.7847'den 0.7990'a yükseliyor, bu nedenle optimize edilmiş ağaç, varsayılan yapılandırmayı yaklaşık 1.4 puan geride bırakıyor.
R'de Karar Ağaçları: Hızlı Fonksiyon Referansı
Aşağıdaki tabloda, yukarıdaki yedi adımda kullanılan her fonksiyon, bu fonksiyonu sağlayan paket ve beklediği parametrelerle birlikte listelenmiştir. R.
| Kütüphane | Hedef | İşlev | Sınıf | Parametreler | Detaylar |
|---|---|---|---|---|---|
| bölüm | R'deki tren sınıflandırma ağacı | rpart() | sınıf | formül, df, yöntem | |
| bölüm | Tren regresyon ağacı | rpart() | anova | formül, df, yöntem | |
| bölüm | Ağaçların grafiğini çizin | rpart.plot() | takılı model | ||
| baz | tahmin | ) (Tahmin | sınıf | takılı model, tip | |
| baz | tahmin | ) (Tahmin | prob | takılı model, tip | |
| baz | tahmin | ) (Tahmin | vektör | takılı model, tip | |
| bölüm | kontrol parametreleri | rpart.control() | minimum bölünmüş | Algoritma bölme işlemini gerçekleştirmeden önce düğümdeki minimum gözlem sayısını ayarlayın | |
| küçük kova | Uç düğümdeki (yani yaprak düğümdeki) minimum gözlem sayısını ayarlayın. | ||||
| Maksimum derinlik | Son ağacın herhangi bir düğümünün maksimum derinliğini ayarlayın. Kök düğüm 0 derinliğinde kabul edilir. | ||||
| bölüm | Kontrol parametreli tren modeli | rpart() | formül, df, yöntem, kontrol |
Not: Modeli bir eğitim verisi üzerinde eğitin ve performansı görünmeyen bir veri kümesinde, yani test kümesinde test edin.



