Hướng dẫn cơ bản về Cây Quyết định trong R

Xin chào các bạn tương lai của khoa học dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của cây quyết định bằng R. Đừng lo lắng nếu bạn chưa từng viết mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn từng bước một. Cuối cùng của bài hướng dẫn này, bạn sẽ có thể tạo ra cây quyết định của riêng mình và cảm thấy như một pháp sư dữ liệu thực thụ!

R - Decision Tree

Cây Quyết định là gì?

Trước khi chúng ta nhảy vào mã, hãy hiểu cây quyết định là gì. Hãy tưởng tượng bạn đang cố gắng quyết định có nên đi chạy hay không. Bạn có thể tự hỏi mình:

  1. Có mưa không?
  2. Tôi có đủ thời gian không?
  3. Tôi có cảm thấy năng lượng không?

Dựa trên câu trả lời của bạn, bạn đưa ra quyết định. Đó chính xác là điều mà cây quyết định làm - nó đưa ra quyết định dựa trên một loạt câu hỏi!

Cài đặt các gói cần thiết trong R

Trước hết, chúng ta cần trang bị cho mình những công cụ đúng đắn. Trong R, những công cụ này được gọi là gói. Cho chuyến phiêu lưu cây quyết định của chúng ta, chúng ta sẽ cần hai gói chính: rpartrpart.plot.

Hãy cài đặt chúng:

install.packages("rpart")
install.packages("rpart.plot")

Bây giờ, hãy tải các gói này:

library(rpart)
library(rpart.plot)

Tuyệt vời! Bạn đã bước đầu tiên vào lập trình R. Hãy tự động viên mình!

Tạo một bộ dữ liệu đơn giản

Bây giờ chúng ta đã sẵn sàng với các công cụ, hãy tạo một bộ dữ liệu đơn giản để làm việc. Hãy tưởng tượng chúng ta đang cố gắng dự đoán liệu ai đó có mua kem hay không dựa trên nhiệt độ và liệu đó có phải cuối tuần hay không.

# Tạo một khung dữ liệu
ice_cream_data <- data.frame(
temperature = c(68, 85, 72, 90, 60, 78, 82, 75, 68, 71),
is_weekend = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0),
buy_icecream = c(0, 1, 0, 1, 0, 1, 1, 0, 1, 0)
)

# Xem dữ liệu
print(ice_cream_data)

Trong bộ dữ liệu này:

  • temperature là theo Fahrenheit
  • is_weekend là 1 cho cuối tuần, 0 cho ngày thường
  • buy_icecream là 1 nếu họ mua kem, 0 nếu họ không mua

Xây dựng Cây Quyết định đầu tiên

Bây giờ hãy đến phần thú vị - hãy xây dựng cây quyết định của chúng ta!

# Tạo mô hình cây quyết định
ice_cream_tree <- rpart(buy_icecream ~ temperature + is_weekend,
data = ice_cream_data,
method = "class")

# Vẽ cây
rpart.plot(ice_cream_tree, extra = 106)

Hãy phân tích những gì đang xảy ra ở đây:

  1. rpart() là hàm chúng ta sử dụng để tạo cây quyết định.
  2. buy_icecream ~ temperature + is_weekend cho R biết chúng ta muốn dự đoán buy_icecream dựa trên temperatureis_weekend.
  3. data = ice_cream_data xác định bộ dữ liệu của chúng ta.
  4. method = "class" cho biết chúng ta đang thực hiện một nhiệm vụ phân loại (dự đoán một thể loại).
  5. rpart.plot() tạo một biểu đồ trực quan của cây.

Khi bạn chạy mã này, bạn sẽ thấy một sơ đồ cây đẹp mắt. Mỗi nút cho thấy một quy tắc quyết định, và các lá cho thấy các dự đoán. Nó giống như một sơ đồ quyết định cho kem!

Hiểu Cây Quyết định

Hãy giải thích cây kem của chúng ta:

  1. Nút顶层 (gốc) cho thấy 第一次 phân chia. Nó có thể là điều gì như "temperature < 76".
  2. Nếu đúng (yes), nó đi theo nhánh trái; nếu sai (no), nó đi theo nhánh phải.
  3. Quá trình này tiếp tục cho đến khi nó đạt đến một nút lá, cho thấy dự đoán cuối cùng.

Các số trong các nút đại diện cho:

  • Lớp dự đoán (0 hoặc 1)
  • Xác suất của lớp đó
  • Phần trăm các quan sát trong nút đó

Làm Dự đoán

Bây giờ chúng ta đã có cây của mình, hãy sử dụng nó để làm một số dự đoán!

# Tạo dữ liệu mới
new_data <- data.frame(
temperature = c(70, 95),
is_weekend = c(1, 0)
)

# Làm dự đoán
predictions <- predict(ice_cream_tree, new_data, type = "class")

# Xem dự đoán
print(predictions)

Mã này dự đoán liệu ai đó có mua kem hay không vào một ngày 70°F cuối tuần và một ngày 95°F ngày thường.

Đánh giá Mô hình

Để xem mô hình của chúng ta hoạt động tốt như thế nào, chúng ta có thể sử dụng ma trận nhầm lẫn:

# Làm dự đoán trên dữ liệu gốc
predictions <- predict(ice_cream_tree, ice_cream_data, type = "class")

# Tạo ma trận nhầm lẫn
confusion_matrix <- table(Actual = ice_cream_data$buy_icecream, Predicted = predictions)

# Xem ma trận nhầm lẫn
print(confusion_matrix)

# Tính độ chính xác
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Độ chính xác:", accuracy))

Điều này cho chúng ta một cái nhìn nhanh về số lượng dự đoán đúng và sai.

Kết luận

Chúc mừng! Bạn vừa xây dựng cây quyết định đầu tiên của mình trong R. Từ việc cài đặt gói đến việc làm dự đoán, bạn đã bao quát rất nhiều nội dung. Nhớ rằng, thực hành là chìa khóa của thành công, vì vậy đừng ngại thử nghiệm với các bộ dữ liệu và tham số khác nhau.

Dưới đây là một tổng kết nhanh về các phương pháp chúng ta đã sử dụng:

Phương pháp Mô tả
install.packages() Cài đặt các gói R
library() Tải các gói đã cài đặt
data.frame() Tạo một khung dữ liệu
rpart() Xây dựng một cây quyết định
rpart.plot() Trực quan hóa cây quyết định
predict() Làm dự đoán sử dụng cây
table() Tạo ma trận nhầm lẫn

Tiếp tục khám phá, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ với khoa học dữ liệu!

Credits: Image by storyset