แผนผังการตัดสินใจใน R: แผนผังการจำแนกประเภทพร้อมตัวอย่าง

ต้นไม้การตัดสินใจคืออะไร?

ต้นไม้แห่งการตัดสินใจ เป็นอัลกอริทึมการเรียนรู้ของเครื่องที่มีความยืดหยุ่นสูงซึ่งสามารถทำงานทั้งการจำแนกประเภทและการถดถอยได้ อัลกอริทึมเหล่านี้มีประสิทธิภาพมาก โดยสามารถปรับชุดข้อมูลที่ซับซ้อนได้ นอกจากนี้ ต้นไม้การตัดสินใจยังเป็นส่วนประกอบพื้นฐานของป่าสุ่ม ซึ่งเป็นหนึ่งในอัลกอริทึมการเรียนรู้ของเครื่องที่มีประสิทธิภาพมากที่สุดในปัจจุบัน

การฝึกอบรมและการแสดงภาพแผนผังการตัดสินใจใน R

ในการสร้างแผนผังการตัดสินใจแรกของคุณในตัวอย่าง R เราจะดำเนินการดังต่อไปนี้ในบทช่วยสอนแผนผังการตัดสินใจนี้:

  • ขั้นตอนที่ 1: นำเข้าข้อมูล
  • ขั้นตอนที่ 2: ทำความสะอาดชุดข้อมูล
  • ขั้นตอนที่ 3: สร้างชุดฝึก/ชุดทดสอบ
  • ขั้นตอนที่ 4: สร้างแบบจำลอง
  • ขั้นตอนที่ 5: ทำการทำนาย
  • ขั้นตอนที่ 6: วัดประสิทธิภาพ
  • ขั้นตอนที่ 7: ปรับไฮเปอร์พารามิเตอร์

ขั้นตอนที่ 1) นำเข้าข้อมูล

หากคุณสงสัยเกี่ยวกับชะตากรรมของไททานิค คุณสามารถรับชมวิดีโอนี้ได้ที่ Youtube- วัตถุประสงค์ของชุดข้อมูลนี้คือเพื่อคาดการณ์ว่าผู้คนกลุ่มใดมีแนวโน้มที่จะมีชีวิตรอดหลังจากการชนกับภูเขาน้ำแข็ง ชุดข้อมูลประกอบด้วยตัวแปร 13 ตัวและการสังเกต 1309 รายการ ชุดข้อมูลเรียงลำดับตามตัวแปร X

set.seed(678)
path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/titanic_data.csv'
titanic <-read.csv(path)
head(titanic)

Output:

##   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)

Output:

##         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

จากเอาต์พุตส่วนหัวและส่วนท้าย คุณจะสังเกตเห็นว่าข้อมูลไม่ได้ถูกสับเปลี่ยน นี่เป็นปัญหาใหญ่! เมื่อคุณจะแบ่งข้อมูลของคุณระหว่างชุดรถไฟและชุดทดสอบ คุณจะต้องเลือก เพียง ผู้โดยสารชั้น 1 และ 2 (ไม่มีผู้โดยสารจากชั้น 3 อยู่ใน 80 เปอร์เซ็นต์แรกของการสังเกต) ซึ่งหมายความว่าอัลกอริทึมจะไม่เห็นคุณลักษณะของผู้โดยสารชั้น 3 ข้อผิดพลาดนี้จะนำไปสู่การทำนายที่ไม่ดี

เพื่อแก้ไขปัญหานี้ คุณสามารถใช้ฟังก์ชันตัวอย่าง()

shuffle_index <- sample(1:nrow(titanic))
head(shuffle_index)

แผนผังการตัดสินใจ รหัส R คำอธิบาย

  • ตัวอย่าง(1:nrow(ไททานิค)): สร้างรายการดัชนีแบบสุ่มตั้งแต่ 1 ถึง 1309 (เช่น จำนวนแถวสูงสุด)

Output:

## [1]  288  874 1078  633  887  992

คุณจะใช้ดัชนีนี้เพื่อสับเปลี่ยนชุดข้อมูลไททานิค

titanic <- titanic[shuffle_index, ]
head(titanic)

Output:

##         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	

ขั้นตอนที่ 2) ทำความสะอาดชุดข้อมูล

โครงสร้างข้อมูลแสดงให้เห็นว่าตัวแปรบางตัวมี NA's การล้างข้อมูลให้ทำดังนี้

  • วางตัวแปร home.dest,cabin, name, X และ ticket
  • สร้างตัวแปรปัจจัยสำหรับ pclass และรอดมาได้
  • ปล่อย NA ออกไป
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)

คำอธิบายรหัส

  • เลือก (-c (home.dest, ห้องโดยสาร, ชื่อ, X, ตั๋ว)): ปล่อยตัวแปรที่ไม่จำเป็น
  • pclass = factor(pclass, Level = c(1,2,3), label= c('Upper', 'Middle', 'Lower')): เพิ่มเลเบลให้กับตัวแปร pclass 1 กลายเป็นบน 2 กลายเป็นกลาง และ 3 กลายเป็นต่ำกว่า
  • ปัจจัย(รอดชีวิต, ระดับ = c(0,1), ป้ายกำกับ = c('ไม่', 'ใช่')): เพิ่มป้ายกำกับให้กับตัวแปรที่รอดชีวิต 1 กลายเป็นไม่ และ 2 กลายเป็นใช่
  • na.omit(): ลบการสังเกต NA

Output:

## 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...		

ขั้นตอนที่ 3) สร้างชุดฝึก/ชุดทดสอบ

ก่อนที่คุณจะฝึกโมเดลของคุณ คุณต้องดำเนินการสองขั้นตอน:

  • สร้างชุดฝึกและชุดทดสอบ: คุณฝึกโมเดลในชุดชุดฝึกและทดสอบการทำนายในชุดทดสอบ (เช่น ข้อมูลที่มองไม่เห็น)
  • ติดตั้ง rpart.plot จากคอนโซล

แนวทางปฏิบัติทั่วไปคือการแบ่งข้อมูล 80/20 โดย 80 เปอร์เซ็นต์ของข้อมูลใช้เพื่อฝึกโมเดล และ 20 เปอร์เซ็นต์เพื่อคาดการณ์ คุณต้องสร้างเฟรมข้อมูลสองเฟรมแยกกัน คุณคงไม่อยากแตะชุดทดสอบจนกว่าคุณจะสร้างโมเดลเสร็จ คุณสามารถสร้างชื่อฟังก์ชัน create_train_test() ที่รับสามอาร์กิวเมนต์

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, ])
    }
}

คำอธิบายรหัส

  • function(data, size=0.8, train = TRUE): เพิ่มอาร์กิวเมนต์ในฟังก์ชัน
  • n_row = nrow(data): นับจำนวนแถวในชุดข้อมูล
  • Total_row = size*n_row: กลับแถวที่ n เพื่อสร้างชุดรถไฟ
  • train_sample <- 1:total_row: เลือกแถวแรกไปยังแถวที่ n
  • if (train ==TRUE){ } else { }: หากเงื่อนไขเป็นจริง ให้ส่งคืนชุดรถไฟ มิฉะนั้นจะเป็นชุดทดสอบ

คุณสามารถทดสอบฟังก์ชันของคุณและตรวจสอบมิติได้

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)

Output:

## [1] 836   8
dim(data_test)

Output:

## [1] 209   8

ชุดข้อมูลรถไฟมี 1046 แถว ในขณะที่ชุดข้อมูลทดสอบมี 262 แถว

คุณใช้ฟังก์ชัน prop.table() ร่วมกับ table() เพื่อตรวจสอบว่ากระบวนการสุ่มถูกต้องหรือไม่

prop.table(table(data_train$survived))

Output:

##
##        No       Yes 
## 0.5944976 0.4055024
prop.table(table(data_test$survived))

Output:

## 
##        No       Yes 
## 0.5789474 0.4210526

ในชุดข้อมูลทั้งสองชุด จำนวนผู้รอดชีวิตเท่ากัน คือประมาณ 40 เปอร์เซ็นต์

ติดตั้ง rpart.plot

rpart.plot ไม่พร้อมใช้งานจากไลบรารี conda คุณสามารถติดตั้งได้จากคอนโซล:

install.packages("rpart.plot")

ขั้นตอนที่ 4) สร้างแบบจำลอง

คุณพร้อมที่จะสร้างแบบจำลองแล้ว ไวยากรณ์สำหรับฟังก์ชันแผนผังการตัดสินใจ Rpart คือ:

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	

คุณใช้วิธีการเรียนเพราะคุณทำนายชั้นเรียน

library(rpart)
library(rpart.plot)
fit <- rpart(survived~., data = data_train, method = 'class')
rpart.plot(fit, extra = 106

คำอธิบายรหัส

  • rpart(): ฟังก์ชั่นให้พอดีกับโมเดล ข้อโต้แย้งคือ:
    • รอดชีวิตมาได้ ~.: สูตรของแผนผังการตัดสินใจ
    • data = data_train: ชุดข้อมูล
    • method = 'class': ติดตั้งโมเดลไบนารี่
  • rpart.plot(fit, extra= 106): พล็อตต้นไม้ คุณสมบัติพิเศษถูกตั้งค่าเป็น 101 เพื่อแสดงความน่าจะเป็นของคลาสที่ 2 (มีประโยชน์สำหรับการตอบกลับแบบไบนารี) คุณสามารถอ้างถึง บทความสั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกอื่นๆ

Output:

สร้างแบบจำลองแผนผังการตัดสินใจใน R

คุณเริ่มต้นที่โหนดรูท (ความลึก 0 มากกว่า 3 ด้านบนของกราฟ):

  1. ที่ด้านบนคือความน่าจะเป็นโดยรวมของการเอาชีวิตรอด แสดงสัดส่วนผู้โดยสารที่รอดชีวิตจากอุบัติเหตุครั้งนี้ ผู้โดยสารร้อยละ 41 รอดชีวิต
  2. โหนดนี้จะถามว่าผู้โดยสารเป็นชายหรือไม่ หากใช่ คุณจะลงไปที่โหนดลูกด้านซ้ายของรูท (ความลึก 2) 63 เปอร์เซ็นต์เป็นผู้ชายที่มีความน่าจะเป็นรอดชีวิต 21 เปอร์เซ็นต์
  3. ในโหนดที่สอง คุณถามว่าผู้โดยสารชายมีอายุมากกว่า 3.5 ปีหรือไม่ ถ้าใช่ โอกาสรอดคือ 19 เปอร์เซ็นต์
  4. คุณทำแบบนั้นต่อไปเพื่อทำความเข้าใจว่าฟีเจอร์ใดที่ส่งผลต่อความน่าจะเป็นของการเอาชีวิตรอด

โปรดทราบว่า หนึ่งในคุณสมบัติหลายประการของแผนผังการตัดสินใจก็คือ จำเป็นต้องมีการเตรียมข้อมูลเพียงเล็กน้อย โดยเฉพาะอย่างยิ่งพวกเขาไม่จำเป็นต้องปรับขนาดคุณลักษณะหรือจัดกึ่งกลาง

ตามค่าเริ่มต้น ฟังก์ชัน rpart() จะใช้นามสกุล Gini มาตรการเจือปนเพื่อแยกบันทึก ยิ่งค่าสัมประสิทธิ์ Gini สูง อินสแตนซ์ภายในโหนดก็จะยิ่งแตกต่างกันมากขึ้น

ขั้นตอนที่ 5) ทำการทำนาย

คุณสามารถทำนายชุดข้อมูลทดสอบของคุณได้ ในการทำนาย คุณสามารถใช้ฟังก์ชันทำนาย () ไวยากรณ์พื้นฐานของการทำนายสำหรับแผนผังการตัดสินใจ R คือ:

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	

คุณต้องการทำนายว่าผู้โดยสารคนไหนมีแนวโน้มที่จะรอดชีวิตมากกว่าหลังจากการชนกันจากชุดทดสอบ หมายความว่าคุณจะรู้ว่าในบรรดาผู้โดยสาร 209 คนนั้นคนไหนจะรอดหรือไม่

predict_unseen <-predict(fit, data_test, type = 'class')

คำอธิบายรหัส

  • ทำนาย (พอดี data_test ประเภท = 'คลาส'): ทำนายคลาส (0/1) ของชุดทดสอบ

ทดสอบผู้โดยสารที่ไม่ผ่านและผู้ที่ทำได้

table_mat <- table(data_test$survived, predict_unseen)
table_mat

คำอธิบายรหัส

  • table(data_test$survived, Predict_unseen): สร้างตารางเพื่อนับจำนวนผู้โดยสารที่ถูกจัดประเภทเป็นผู้รอดชีวิตและเสียชีวิต โดยเปรียบเทียบกับการจัดหมวดหมู่ต้นไม้ตัดสินใจที่ถูกต้องใน R

Output:

##      predict_unseen
##        No Yes
##   No  106  15
##   Yes  30  58

แบบจำลองทำนายผู้โดยสารที่เสียชีวิตได้ถูกต้อง 106 คน แต่จัดประเภทผู้รอดชีวิต 15 คนว่าเสียชีวิตแล้ว จากการเปรียบเทียบ แบบจำลองดังกล่าวจัดผู้โดยสาร 30 คนผิดว่าเป็นผู้รอดชีวิตในขณะที่ผู้โดยสารเสียชีวิต

ขั้นตอนที่ 6) วัดประสิทธิภาพ

คุณสามารถคำนวณการวัดความแม่นยำสำหรับงานจำแนกประเภทได้ด้วย เมทริกซ์ความสับสน:

เหตุการณ์ เมทริกซ์ความสับสน เป็นทางเลือกที่ดีกว่าในการประเมินประสิทธิภาพการจำแนกประเภท แนวคิดทั่วไปคือการนับจำนวนครั้งที่อินสแตนซ์ True ถูกจัดว่าเป็นเท็จ

วัดประสิทธิภาพของแผนผังการตัดสินใจใน R

แต่ละแถวในเมทริกซ์ความสับสนแสดงถึงเป้าหมายที่แท้จริง ในขณะที่แต่ละคอลัมน์แสดงถึงเป้าหมายที่คาดการณ์ไว้ แถวแรกของเมทริกซ์นี้ถือว่าผู้โดยสารที่เสียชีวิต (ชั้นเท็จ): 106 ถูกจำแนกอย่างถูกต้องว่าเป็นผู้โดยสารที่เสียชีวิต (ลบจริง) ในขณะที่ที่เหลือถูกจัดประเภทผิดว่าเป็นผู้รอดชีวิต (บวกเท็จ- แถวที่สองพิจารณาผู้รอดชีวิต ระดับบวกคือ 58 (บวกจริง), ในขณะที่ ลบจริง คือ 30

คุณสามารถคำนวณ การทดสอบความแม่นยำ จากเมทริกซ์ความสับสน:

วัดประสิทธิภาพของแผนผังการตัดสินใจใน R

มันคือสัดส่วนของค่าบวกจริงและค่าลบจริงส่วนผลรวมของเมทริกซ์ ด้วย R คุณสามารถเขียนโค้ดได้ดังต่อไปนี้:

accuracy_Test <- sum(diag(table_mat)) / sum(table_mat)

คำอธิบายรหัส

  • sum(diag(table_mat)): ผลรวมของเส้นทแยงมุม
  • sum(table_mat): ผลรวมของเมทริกซ์

คุณสามารถพิมพ์ความแม่นยำของชุดทดสอบได้:

print(paste('Accuracy for test', accuracy_Test))

Output:

## [1] "Accuracy for test 0.784688995215311"

คุณมีคะแนน 78 เปอร์เซ็นต์สำหรับชุดทดสอบ คุณสามารถจำลองแบบฝึกหัดเดียวกันด้วยชุดข้อมูลการฝึกได้

ขั้นตอนที่ 7) ปรับไฮเปอร์พารามิเตอร์

ต้นไม้การตัดสินใจใน R มีพารามิเตอร์ต่างๆ ที่ควบคุมด้านต่างๆ ของความพอดี ในไลบรารีต้นไม้การตัดสินใจ rpart คุณสามารถควบคุมพารามิเตอร์ได้โดยใช้ฟังก์ชัน rpart.control() ในโค้ดต่อไปนี้ คุณจะแนะนำพารามิเตอร์ที่คุณจะปรับแต่ง คุณสามารถดูได้ที่ บทความสั้น สำหรับพารามิเตอร์อื่นๆ

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 the final note i.e. the leaf
-maxdepth: Set the maximum depth of any node of the final tree. The root node is treated a depth 0

เราจะดำเนินการดังนี้:

  • สร้างฟังก์ชันเพื่อคืนความแม่นยำ
  • ปรับความลึกสูงสุด
  • ปรับจำนวนตัวอย่างขั้นต่ำที่โหนดต้องมีก่อนจึงจะสามารถแยกได้
  • ปรับจำนวนตัวอย่างขั้นต่ำที่โหนดปลายสุดต้องมี

คุณสามารถเขียนฟังก์ชันเพื่อแสดงความแม่นยำได้ คุณเพียงแค่ล้อมโค้ดที่คุณใช้ก่อนหน้านี้:

  1. ทำนาย: Predict_unseen <- ทำนาย (พอดี, data_test, ประเภท = 'คลาส')
  2. สร้างตาราง: table_mat <- table(data_test$survived, Predict_unseen)
  3. ความแม่นยำในการคำนวณ: precision_Test <- sum(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
}

คุณสามารถลองปรับแต่งพารามิเตอร์และดูว่าคุณสามารถปรับปรุงโมเดลให้มากกว่าค่าเริ่มต้นได้หรือไม่ โปรดทราบว่าคุณต้องมีความแม่นยำมากกว่า 0.78

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)

Output:

## [1] 0.7990431

โดยมีพารามิเตอร์ดังต่อไปนี้:

minsplit = 4
minbucket= round(5/3)
maxdepth = 3cp=0

คุณได้รับประสิทธิภาพที่สูงกว่ารุ่นก่อนหน้า ขอแสดงความยินดี!

สรุป

เราสามารถสรุปฟังก์ชันในการฝึกอัลกอริทึมต้นไม้การตัดสินใจได้ R

ห้องสมุด วัตถุประสงค์ ฟังก์ชัน ชั้น พารามิเตอร์ รายละเอียดเพิ่มเติม
ส่วนหนึ่ง ต้นไม้การจำแนกประเภทรถไฟใน R ส่วน() ชั้น สูตร df ​​วิธีการ
ส่วนหนึ่ง ฝึกแผนผังการถดถอย ส่วน() อโนวา สูตร df ​​วิธีการ
ส่วนหนึ่ง วางแผนต้นไม้ rpart.พล็อต() รุ่นที่ติดตั้ง
ฐาน คาดการณ์ ทำนาย() ชั้น รุ่นที่ติดตั้งประเภท
ฐาน คาดการณ์ ทำนาย() พร็อบ รุ่นที่ติดตั้งประเภท
ฐาน คาดการณ์ ทำนาย() เวกเตอร์ รุ่นที่ติดตั้งประเภท
ส่วนหนึ่ง พารามิเตอร์ควบคุม rpart.ควบคุม() แบ่งขั้นต่ำ กำหนดจำนวนการสังเกตขั้นต่ำในโหนดก่อนที่อัลกอริทึมจะทำการแยก
มินบัคเก็ต กำหนดจำนวนการสังเกตขั้นต่ำในบันทึกสุดท้าย เช่น ใบไม้
ความลึกสูงสุด ตั้งค่าความลึกสูงสุดของโหนดใดๆ ของแผนผังสุดท้าย โหนดรูทได้รับการปฏิบัติที่ความลึก 0
ส่วนหนึ่ง ฝึกโมเดลพร้อมพารามิเตอร์ควบคุม ส่วน() สูตร, df, วิธีการ, การควบคุม

หมายเหตุ : ฝึกโมเดลกับข้อมูลการฝึกและทดสอบประสิทธิภาพกับชุดข้อมูลที่มองไม่เห็น เช่น ชุดทดสอบ