Xây dựng một mô hình quyết định dựa trên Microsoft Decision Trees

Một phần của tài liệu PHÂN LỚP DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH VÀ ỨNG DỤNG TRONG SQL SERVER 2012 (Trang 31)

Ta sẽ dùng dữ liệu mẫu trong cơ sở dữ liệu AdventureWorksDW2012 để minh họa quá trình khai phá bằng mô hình Microsoft Decision Tree

Tập huấn luyện là vTargetMail, bảng này chứa các thông tin về những khách hàng mà công ty đã thu thập được, gồm những khách hàng đã mua xe cũng như không mua xe.

CustomerKey Khóa chính

FirstName Tên

MiddleName Tên đệm

LastName Họ

BirthDate Ngày sinh

MaritalStatus Tình trạng hôn nhân

Gender Giới tính

YearlyIncome Thu nhập hàng năm

TotalChildren Số con cái

NumberChildrenAtHome Số con đang ở chung cha mẹ HouseOwnerFlag Có nhà riêng hay không NumberCarsOwned Số xe ô tô sở hữu

Region Khu vực sinh sống

Age Tuổi

BikeBuyer Đã mua xe hay không (Thuộc tính mục tiêu)

Tập mẫu là ProspectiveBuyer, bảng này cũng có các cột tương tự như bảng huấn luyện. Quá trình khai phá dữ liệu trải qua các bước sau:

+ Bước 1 – Chuẩn bị CSDL để phân tích: Bước này thiết lập kết nối (connection), nguồn dữ liệu (datasource), khung nhìn dữ liệu (dataview) trên cơ sở dữ liệu mẫu.

+ Bước 2 – Xây dựng mô hình dữ liệu: Bước này chọn thuật toán khai phá, chọn các thuộc tính đầu vào (input attributes) và thuộc tính mục tiêu (prediction attributes), chuẩn hóa kiểu dữ liệu, chọn tập dữ liệu để kiểm thử kết quả.

+ Bước 3 – Thực hiện khai phá: Bước này thực hiện tiến trình khai phá dữ liệu theo thuật toán đã chọn.

+Bước 4 – Khám phá kết quả: Bước này xem xét kết quả khai phá và rút ra các kết luận cần thiết.

đoán bằng cách kiểm tra kết quả dự đoán trên tập dữ liệu kiểm thử.

+ Bước 6 – Dự báo: Bước này dùng mô hình đã xây dựng để dự báo kết quả trên tập đích (dự báo khả năng mua xe của khách hàng mới).

Các khái niệm tập huấn luyện, tập kiểm thử và tập đích được diễn giải như sau: + Tập huấn luyện (training set) là tập dữ liệu đã có sẵn giá trị của các thuộc tính mục tiêu, dùng huấn luyện cho mô hình dự đoán. Ta dùng 1 phần của bảng vTargetMail để huấn luyện, vì bảng này chứa thông tin về các khách hàng đã mua xe hoặc không mua xe, thể hiện trong cột BikeBuyer.

+ Tập kiểm thử (testing set) là tập dữ liệu đã có sẵn giá trị của các thuộc tính mục tiêu, dùng kiểm tra tính chính xác của mô hình dự đoán, tập này phải khác với tập huấn luyện. Ta dùng 1 phần còn lại của bảng vTargetMail để kiểm thử kết quả, tức là ta cho chạy dự đoán trên tập kiểm thử này và so sánh kết quả dự đoán với giá trị mục tiêu đã biết.

+ Tập đích (target set) là tập dữ liệu chưa có giá trị của các thuộc tính mục tiêu, ta sẽ dùng mô hình dự đoán đã xây dựng để dự đoán giá trị của thuộc tính mục tiêu. Mỗi mẫu trong tập đích đều được dự đoán với xác suất chính xác nhất định. Các giá trị của thuộc tính mục tiêu chính là các lớp trong bài toán phân lớp.

Sau đây là minh họa kết quả của quá trình khai phá dữ liệu ở từng bước. Để việc trình bày được cô đọng, người viết không đưa diễn giải cách thực hiện của từng bước mà chỉ đưa ra kết quả thu được ở từng bước và những hình ảnh quan trọng. Chi tiết “step-by-step” về cách thực hiện khai phá xin bạn đọc xem trong tài liệu “SQL Server 2012 Tutorials: Analysis Services – Data Mining”.

Bước 1 – Chuẩn bị CSDL để phân tích

+ Khởi động SQL Server Data Tools (bản chất là Visual Studio 2010), tạo một dự án Analysis Services Project.

+ Tạo một Data Source trỏ đến máy chủ SQL Server 2012 chứa CSDL AdventureWorksDW2012.

Source View là một tập con của dữ liệu gốc, ta có thể biến đổi một số thuộc tính trên tập con này mà không ảnh hưởng đến dữ liệu gốc.

(Hình: Một dự án phân tích dữ liệu)

Bước 2 – Xây dựng mô hình dữ liệu

+ Tạo một mô hình dữ liệu Mining Structure, chọn mô hình khai phá là TM- Decision-Tree

+ Chọn bảng huấn luyện là vTargetMail.

+ Trong cột Predictable, chọn thuộc tính BikeBuyer - là thuộc tính mục tiêu cần dự báo.

+ Trong cột Input, chọn các thuộc tính: Age, CommuteDistance, EnglishEducation, EnglishOccupation, Gender, GeographyKey, HouseOwnerFlag, MaritalStatus, NumberCarsOwned, NumberChildrenAtHome, Region, TotalChildren,

YearlyIncome. Đây là các thuộc tính đầu vào được dùng để tính toán. + Chuẩn hóa kiểu dữ liệu, đảm bảo các thuộc tính đều là rời rạc (Discrete). +Chọn tập kiểm thử là tối đa 30% hoặc 1000 dòng trong bảng vTargetMail.

+ Deploy, gửi dự án đến Analysis Services trên máy chủ CSDL. + Process, xử lý dữ liệu trên máy chủ.

+ Trong tab Dependency Network, ta có thể xem những thuộc tính nào có ảnh hưởng nhất đến thuộc tính mục tiêu. Chọn thanh trượt All Links ở mức 3, ta sẽ thấy các thuộc tính

Total Children, Number Cars Owned và Commute Distance là những thuộc tính có ảnh hưởng nhất đến BikeBuyer. Như vậy ta rút ra được một tri thức quan trọng là số con cái, số xe ô tô đang có và khoảng cách đi làm là 3 thuộc tính có ảnh hưởng nhất đến việc mua xe của khách hàng.

+ Đến đây chúng ta chỉ mới hoàn thành giai đoạn huấn luyện để rút ra luật phân lớp từ những dữ liệu đã biết. Ta còn phải đánh giá kết quả dự báo.

Giả sử ta có danh sách 10000 khách hàng, theo kinh nghiệm của công ty nếu mở chiến dịch tiếp thị ngẫu nhiên thì sẽ có tối đa 10% số khách hàng được tiếp thị sẽ mua xe – 1000 người, 1000 người này gọi là số khách hàng mục tiêu. Do điều kiện tài chính không cho phép, công ty chỉ có thể tiếp thị đến 4000 người, bằng 40% số người có trong danh sách.

Nếu ta chọn chiến lược tiếp thị ngẫu nhiên như trước đây thì trong 4000 người ngẫu nhiên đượ c tiếp thị ta chỉ tiếp cận được 400 khách hàng mục tiêu, sẽ chỉ có 400 người mua xe, vì tỷ lệ mua xe chỉ là 10%.

Nếu ta dùng mô hình dự báo, chỉ tiếp thị đến những khách hàng được dự báo có nhiều khả năng mua xe, thì trong 4000 người được lựa chọn tiếp thị sẽ có nhiều hơn 400 người mua xe, tức là tiếp cận được nhiều mục tiêu hơn.

Nếu mô hình dự báo hoàn hảo, dự báo đúng 100%, thì trong 4000 người được tiếp thị sẽ có 1000 người mua xe - tiếp cận 100% mục tiêu ! Tất nhiên chưa có mô hình dự báo nào có thể đạt đến mức độ lý tưởng như vậy.

+ SQL Server cung cấp một số công cụ đánh giá hiệu quả của mô hình dự báo, chẳng hạn biểu đồ Lift Chart. Sơ đồ Lift Chart có 2 đường:

.. Decision Trees: Đường dự báo bằng cây quyết định mà ta đã xây dựng. . Ideal Model: Đường lý tưởng.

Dĩ nhiên Prediction <= Ideal.

Cột Overall Population: Tỷ lệ số khách hàng được lựa chọn để tiếp thị. Cột Target Population: Tỷ lệ số khách hàng mục tiêu đạt được.

(Hình: Biểu đồ Lift Chart)

+Click vào cột Overall Population ở vị trí 40%, nhìn vào bảng chú giải, ta thấy rằng nếu tiếp thị đến 40% số khách hàng có trong danh sách thì: Mô hình ngẫu nhiên chỉ đạt được 40% số khách hàng mục tiêu, mô hình dự đoán Decision Tree đạt được 40.7% số khách hàng mục tiêu, mô hình lý tưởng đạt được 50% số khách hàng mục tiêu.

+ Cột Score cho ta ước lượng để so sánh hiệu quả của các mô hình dự báo với nhau, trường hợp này ta chỉ mới dùng 1 mô hình dự báo Decision Tree nên không thể so sánh với các mô hình dự báo khác.

Bước 6 – Dự báo

+ Đây là giai đoạn được mong đợi nhất, giai đoạn thu kết quả, ta sẽ dùng mô hình dự báo (đã được kiểm định tính chính xác) để dự báo những khách hàng có nhiều khả năng mua xe trong bảng ProspectiveBuyer.

+ Sau khi thực thi truy vấn, ta thu được bảng kết quả dự báo. Bảng gồm 1026 người được dự báo có khả năng mua xe, kèm theo thông tin của từng khách hàng và xác suất dự báo đúng. Dựa vào kết quả này, công ty sẽ thực hiện chiến dịch tiếp thị đến những khách hàng nào có xác suất dự báo đúng cao nhất. Nếu tiếp thị đến 4000 khách hàng công ty sẽ tiếp cận được xấp xỉ 537 khách hàng mục tiêu thay vì chỉ 400 khách hàng như cách tiếp thị ngẫu nhiên trước đây. Đó chính là hiệu quả mà mô hình dự báo mang lại

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Bài tiểu luận này đã trình bày cơ sở lý thuyết của kỹ thuật phân lớp bằng thuật toán cây quyết định và cách thực hành trên phần mềm SQL Server 2012. và quan trọng hơn là có thể ứng dụng trong môi trường thực tế bằng một công cụ mạnh mẽ là SQL Server 2012.

Một số học viên thường chọn minh họa các lý thuyết bằng cách tự viết phần mềm để biểu diễn thuật toán, đây là cách tốt để hiểu rõ thuật toán. Tuy nhiên, đối với các học viên đang công tác trong môi trường doanh nghiệp, mục đích của việc học là ứng dụng được trong thực tế, đem lại kết quả cụ thể và thu được lợi nhuận chứ không phải mục đích chỉ dừng lại ở mức độ hiểu thuật toán. Cho nên cách tiếp cận phù hợp là hiểu cơ sở lý thuyết và sử dụng được công cụ có sẵn để nhanh chóng ứng dụng.

Decision Tree chỉ là một trong số rất nhiều thuật toán, bài toán phân lớp chỉ là một trong số các bài toán của lĩnh vực khai phá dữ liệu, khám phá tri thức. Vì vậy hướng phát triển tiếp theo là:

+ Tìm hiểu các thuật toán phân lớp khác và so sánh ưu nhược điểm của chúng. + Tìm hiểu các bài toán khác như gom cụm, khám phá luật kết hợp, khai phá dữ liệu chuỗi. Thực hành và so sánh hiệu quả của các kỹ thuật này trên phần mềm SQL Server hoặc các công cụ khác.

TÀI LIỆU THAM KHẢO Tiếng Việt

[1] PGS.TS.Đỗ Phúc, “Slide bài giảng môn Hệ hỗ trợ ra quyết định”.

[2] GS.TSKH.Hoàng Kiếm, “Giải một bài toán trên máy tính như thế nào – Tập 3”. [3] ĐH BK HCM, Slide bài giảng môn Khai phá dữ liệu, 2009

Tiếng Anh

[1] Microsoft, SQL Server 2012 Tutorials: Analysis Services – Data Mining, 2012. .

Một phần của tài liệu PHÂN LỚP DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH VÀ ỨNG DỤNG TRONG SQL SERVER 2012 (Trang 31)