แผนผังการตัดสินใจใน 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:
คุณเริ่มต้นที่โหนดรูท (ความลึก 0 มากกว่า 3 ด้านบนของกราฟ):
- ที่ด้านบนคือความน่าจะเป็นโดยรวมของการเอาชีวิตรอด แสดงสัดส่วนผู้โดยสารที่รอดชีวิตจากอุบัติเหตุครั้งนี้ ผู้โดยสารร้อยละ 41 รอดชีวิต
- โหนดนี้จะถามว่าผู้โดยสารเป็นชายหรือไม่ หากใช่ คุณจะลงไปที่โหนดลูกด้านซ้ายของรูท (ความลึก 2) 63 เปอร์เซ็นต์เป็นผู้ชายที่มีความน่าจะเป็นรอดชีวิต 21 เปอร์เซ็นต์
- ในโหนดที่สอง คุณถามว่าผู้โดยสารชายมีอายุมากกว่า 3.5 ปีหรือไม่ ถ้าใช่ โอกาสรอดคือ 19 เปอร์เซ็นต์
- คุณทำแบบนั้นต่อไปเพื่อทำความเข้าใจว่าฟีเจอร์ใดที่ส่งผลต่อความน่าจะเป็นของการเอาชีวิตรอด
โปรดทราบว่า หนึ่งในคุณสมบัติหลายประการของแผนผังการตัดสินใจก็คือ จำเป็นต้องมีการเตรียมข้อมูลเพียงเล็กน้อย โดยเฉพาะอย่างยิ่งพวกเขาไม่จำเป็นต้องปรับขนาดคุณลักษณะหรือจัดกึ่งกลาง
ตามค่าเริ่มต้น ฟังก์ชัน 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 ถูกจัดว่าเป็นเท็จ
แต่ละแถวในเมทริกซ์ความสับสนแสดงถึงเป้าหมายที่แท้จริง ในขณะที่แต่ละคอลัมน์แสดงถึงเป้าหมายที่คาดการณ์ไว้ แถวแรกของเมทริกซ์นี้ถือว่าผู้โดยสารที่เสียชีวิต (ชั้นเท็จ): 106 ถูกจำแนกอย่างถูกต้องว่าเป็นผู้โดยสารที่เสียชีวิต (ลบจริง) ในขณะที่ที่เหลือถูกจัดประเภทผิดว่าเป็นผู้รอดชีวิต (บวกเท็จ- แถวที่สองพิจารณาผู้รอดชีวิต ระดับบวกคือ 58 (บวกจริง), ในขณะที่ ลบจริง คือ 30
คุณสามารถคำนวณ การทดสอบความแม่นยำ จากเมทริกซ์ความสับสน:
มันคือสัดส่วนของค่าบวกจริงและค่าลบจริงส่วนผลรวมของเมทริกซ์ ด้วย 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
เราจะดำเนินการดังนี้:
- สร้างฟังก์ชันเพื่อคืนความแม่นยำ
- ปรับความลึกสูงสุด
- ปรับจำนวนตัวอย่างขั้นต่ำที่โหนดต้องมีก่อนจึงจะสามารถแยกได้
- ปรับจำนวนตัวอย่างขั้นต่ำที่โหนดปลายสุดต้องมี
คุณสามารถเขียนฟังก์ชันเพื่อแสดงความแม่นยำได้ คุณเพียงแค่ล้อมโค้ดที่คุณใช้ก่อนหน้านี้:
- ทำนาย: Predict_unseen <- ทำนาย (พอดี, data_test, ประเภท = 'คลาส')
- สร้างตาราง: table_mat <- table(data_test$survived, Predict_unseen)
- ความแม่นยำในการคำนวณ: 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, วิธีการ, การควบคุม |
หมายเหตุ : ฝึกโมเดลกับข้อมูลการฝึกและทดสอบประสิทธิภาพกับชุดข้อมูลที่มองไม่เห็น เช่น ชุดทดสอบ