Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Phân lớp dữ liệu bằng cây quyết định với R

Bài cuối 12-20-2016 09:02 PM của chucnv. 0 trả lời.
Trang 1 trong số 1 (1 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 12-20-2016 09:02 PM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 9,440

    Phân lớp dữ liệu bằng cây quyết định với R

    Phân lớp dữ liệu bằng cây quyết định trong ngôn ngữ R

    Classification by Decision Tree with R

    chuc1803@gmail.com

     

    Cây quyết định là kỹ thuật được dùng rất phổ biển trong phân lớp dữ liệu (xem thêm bài viết về cây quyết định tại đây: http://bis.net.vn/forums/t/378.aspx). Bài viết này giới thiệu kỹ thuật phân lớp dữ liệu bằng cây quyết định trong ngôn ngữ R.

    Data set: iris (Download tại ĐÂY).

    Tools: R, Package: party, Function: ctree

    (Download Code R tại ĐÂY)

    #Load data set iris

    setwd("D:/R") # Dặt lại thư mục làm việc

    library("xlsx") # load thư mục đọc file Excel

    iris=read.xlsx("iris.xlsx",1, header=T) # Đọc dữ liệu

    attach(iris) # Gán dữ liệu vào phân tích

    fix(iris) # Xem và hiệu chỉnh dữ liệu


    summary(iris) # Xem thống kê về dữ liệu

     #Chia dữ liệu thành 2 phần TrainingData (70%) và TestingData (30%) một cách ngẫu nhiên

     ind = sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0.3)) # Tạo bộ giá trị ngẫu nhiên

    trainData = iris[ind==1,] #Training Data

    testData = iris[ind==2,] #Testing Data

    library("party") # Load thư viện party

    iris_ctree = ctree(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data=trainData) # Hàm ctree để xây dựng cây quyết định với Training Data

    print(iris_ctree)# Hiển thị các thông tin về cây quyết định đã xây dựng

    plot(iris_ctree) # Vẽ cây quyết định

     

    plot(iris_ctree, type="simple")


    table(predict(iris_ctree), trainData$Species, dnn=c("Prediction", "Actual")) # Kiểm tra kết quả dự đoán của mô hình

    Confusion Matrix của mô hình dự đoán với Training Data. 
    Kết quả cho thấy mô hình phân lớp rất tốt với độ chính xác 95.5% (=(34+35+36)/(34+35+36+1+4))

     

    testPred = predict(iris_ctree, newdata = testData) # Sử dụng Testing Data để kiểm tra Model

    table(testPred, testData$Species, dnn=c("Prediction", "Actual")) # Kết quả dự đoán với Testing Data


    Kết quả dự đoán với Testing Data là 97.5% (=(16+14+9)/(16+14+9+1))

    • Điểm chủ đề: 20
Trang 1 trong số 1 (1 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems