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à Naive Bayes trong SQL Server Analysis Services

Bài cuối 05-03-2016 08:23 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
  • 05-03-2016 08:23 PM

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

    Phân lớp dữ liệu bằng cây quyết định và Naive Bayes trong SQL Server Analysis Services

    PHÂN LỚP DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH VÀ NAÏVE BAYES TRONG SQL SERVER ANALYSIS SERVICES

    chuc1803@gmail.com

    Bài viết này giới thiệu kỹ thuật phân lớp dữ liệu dựa vào cây quyết định và Naïve Bayes trong khai phá dữ liệu.

    Dữ liệu dùng để minh họa cho 2 kỹ thuật này là dữ liệu về thời tiết của 14 ngày như sau:


    SQL Script tạo CSDL minh họa (Copy and run)

    IF EXISTS (SELECT name FROM sys.tables WHERE name = N'ClassificationExample')
        DROP TABLE dbo.ClassificationExample;
    create table dbo.ClassificationExample 
    (
      PKey integer identity(1,1) Primary Key,
      Outlook varchar(8) not null,
      Temperature varchar(4) not null,
      Humidity varchar(6) not null,
      Windy varchar(5) not null,
      Play varchar(3) not null
    )
    insert into dbo.ClassificationExample values ('sunny','hot','high','FALSE','no')
    insert into dbo.ClassificationExample values ('sunny','hot','high','TRUE','no')
    insert into dbo.ClassificationExample values ('overcast','hot','high','FALSE','yes')
    insert into dbo.ClassificationExample values ('rainy','mild','high','FALSE','yes')
    insert into dbo.ClassificationExample values ('rainy','cool','normal','FALSE','yes')
    insert into dbo.ClassificationExample values ('rainy','cool','normal','TRUE','no')
    insert into dbo.ClassificationExample values ('overcast','cool','normal','TRUE','yes')
    insert into dbo.ClassificationExample values ('sunny','mild','high','FALSE','no')
    insert into dbo.ClassificationExample values ('sunny','cool','normal','FALSE','yes')
    insert into dbo.ClassificationExample values ('rainy','mild','normal','FALSE','yes')
    insert into dbo.ClassificationExample values ('sunny','mild','normal','TRUE','yes')
    insert into dbo.ClassificationExample values ('overcast','mild','high','TRUE','yes')
    insert into dbo.ClassificationExample values ('overcast','hot','normal','FALSE','yes')
    insert into dbo.ClassificationExample values ('rainy','mild','high','TRUE','no') 

    Phân lớp dữ liệu bằng cây quyết định (Decision Tree)

    Xem thêm về lý thuyết về cây quyết định tại đây (http://bis.net.vn/forums/t/378.aspx)

    Bước 1. Khởi động SQL Server Data Tools và tạo một Analysis Project có tên ClassificationExample như sau:


    Trong cửa sổ Solution Explorer tạo mới 1 Data Source như sau


    Tiếp tục tạo Data Source View như sau:


    Trong cửa sổ Solution Explorer tạo mới Data Mining structure cây quyết định như sau:



    Chọn các thuộc tính Key, Input và Predict cho mô hình như sau:


    Chọn dữ liệu để test mô hình. Dữ liệu để  xây dựng (training) và kiểm tra (testing) mô hình có thể dùng chung 1 data set và thông thường dữ liệu để test model là 30%. Nếu dữ liệu để test model trong 1 data set khác hoặc muốn dùng 100% dữ liệu để training model thì để testing data bằng 0.


    Thiết lập các tham số để chạy mô hình: Right Click vào Model và chọn Set Algorithm Parameters


    Thiết lập lại các tham số như sau:


    Thực hiện (Deploy) mô hình: Right Click vào model và chọn Deploy. Kết quả cây quyết định như sau:


    Mạng phụ thuộc của mô hình


    Phân lớp dữ liệu bằng Naïve Bayes

    Xem thêm về lý thuyết phân lớp dữ liệu bằng Naïve Bayes tại đây: (http://bis.net.vn/forums/t/390.aspx)

    Trong Solution Explorer, chọn Mining Structures, Tạo mới một Mining Structure như sau:


    Tiếp theo xác định Input, Key, Predict, Testing data thiết lập tương tự như cây quyết định

    Thiết lập tham số cho thuật toán như sau:


    Kết quả mô hình phân lớp bằng Naïve Bayes như sau:


    Mạng phụ thuộc


    Sự khác biệt giữa các thuộc tính


    Sau khi xây dựng mô hình phân lớp dữ liệu, ta có thể sử dụng mô hình đã xây dựng để dự đoán dữ liệu chưa biết.

    Giả sử ta có dữ liệu về thời tiết của một ngày như sau:

    Humidity: normal; Outlook: Sunny; Temperature: mild; Windy: False

    Bây ta sử dụng mô hình phân lớp Naïve Bayes vừa xây dựng để dự đoán với thời tiết này thì có khả năng người ta có đến sân chơi thể thao hay không (Play = Yes hoặc No)

    Trong Tab Mining Model Prediction chọn Select Case Table chọn bảng dữ liệu input và bấm OK. Chú ý ánh xạ (Mapping) giữa các cột của Model và các cột của bảng dữ liệu input cho đúng (xem hình sau)


    Right Click và Input Table và chọn Singleton Query


    Thiết kế query dự đoán như sau, xem kết quả thì bấm Result trên góc trên trái của window design


    Kết quả dự đoán: Play =Yes với xác suất 0.72


    Cửa sổ Soluttion Explorer của Data Mining Project “ClassificationExample”

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