R - ต้นไม้ตัดสินใจ

ต้นไม้ตัดสินใจคือกราฟเพื่อแสดงตัวเลือกและผลลัพธ์ในรูปแบบของต้นไม้ โหนดในกราฟแสดงถึงเหตุการณ์หรือทางเลือกและขอบของกราฟแสดงถึงกฎหรือเงื่อนไขการตัดสินใจ ส่วนใหญ่จะใช้ในแอปพลิเคชัน Machine Learning และ Data Mining โดยใช้ R

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

แพ็คเกจ R "party" ใช้ในการสร้างต้นไม้การตัดสินใจ

ติดตั้งแพ็คเกจ R

ใช้คำสั่งด้านล่างใน R console เพื่อติดตั้งแพ็คเกจ คุณต้องติดตั้งแพ็กเกจที่เกี่ยวข้องด้วยถ้ามี

install.packages("party")

แพ็กเกจ "ปาร์ตี้" มีฟังก์ชัน ctree() ซึ่งใช้ในการสร้างและวิเคราะห์ต้นไม้ Decison

ไวยากรณ์

ไวยากรณ์พื้นฐานสำหรับการสร้างแผนผังการตัดสินใจใน R คือ -

ctree(formula, data)

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • formula เป็นสูตรที่อธิบายตัวทำนายและตัวแปรตอบสนอง

  • data คือชื่อของชุดข้อมูลที่ใช้

ป้อนข้อมูล

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

นี่คือข้อมูลตัวอย่าง

# Load the party package. It will automatically load other
# dependent packages.
library(party)

# Print some records from data set readingSkills.
print(head(readingSkills))

เมื่อเรารันโค้ดด้านบนจะสร้างผลลัพธ์และแผนภูมิต่อไปนี้ -

nativeSpeaker   age   shoeSize      score
1           yes     5   24.83189   32.29385
2           yes     6   25.95238   36.63105
3            no    11   30.42170   49.60593
4           yes     7   28.66450   40.28456
5           yes    11   31.88207   55.46085
6           yes    10   30.07843   52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................

ตัวอย่าง

เราจะใช้ไฟล์ ctree() เพื่อสร้างโครงสร้างการตัดสินใจและดูกราฟ

# Load the party package. It will automatically load other
# dependent packages.
library(party)

# Create the input data frame.
input.dat <- readingSkills[c(1:105),]

# Give the chart file a name.
png(file = "decision_tree.png")

# Create the tree.
  output.tree <- ctree(
  nativeSpeaker ~ age + shoeSize + score, 
  data = input.dat)

# Plot the tree.
plot(output.tree)

# Save the file.
dev.off()

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

null device 
          1 
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

   as.Date, as.Date.numeric

Loading required package: sandwich

สรุป

จากแผนผังการตัดสินใจที่แสดงด้านบนเราสามารถสรุปได้ว่าใครก็ตามที่มีคะแนนทักษะการอ่านน้อยกว่า 38.3 และอายุมากกว่า 6 ปีจะไม่ใช่เจ้าของภาษา