- Nghiên cứu các kỹ thuật phân lớp dữ liệu dựa vào cây quyết định, ứng dụng các kỹ thuật đó để chuẩn đoán bệnh rối loạn trầm cảm dựa vào các thông tin đầu vào.. Về bản chất, KPDL liên qu
Trang 1HOÀNG THỊ THANH HIỀN
ỨNG DỤNG KHAI PHÁ DỮ LIỆU
ĐỂ XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN
BỆNH TRẦM CẢM CHO HỌC SINH PHỔ THÔNG
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Đà Nẵng – Năm 2016
Trang 2HOÀNG THỊ THANH HIỀN
ỨNG DỤNG KHAI PHÁ DỮ LIỆU
ĐỂ XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH TRẦM CẢM CHO HỌC SINH PHỔ THÔNG
Chuyên ngành : HỆ THỐNG THÔNG TIN
Mã số : 60.48.01.04
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Người hướng dẫn khoa học: PGS.TS NGUYỄN THANH BÌNH
Đà Nẵng – Năm 2016
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được
ai công bố trong bất kỳ công trình nào khác
Tác giả
Hoàng Thị Thanh Hiền
Trang 4MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu nghiên cứu và nhiệm vụ nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu 3
5 Bố cục của luận văn 4
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 6
1.1 KHAI PHÁ DỮ LIỆU 6
1.1.1 Định nghĩa 6
1.1.2 Quy trình KPDL 7
1.1.3 Các kỹ thuật KPDL 9
1.1.4 Những ứng dụng của KPDL 10
1.2 KPDL BẰNG KỸ THUẬT CÂY QUYẾT ĐỊNH 11
1.2.1 Giới thiệu 11
1.2.2 Cấu trúc DT 13
1.2.3 Phương pháp xây dựng DT 13
1.2.4 Ưu điểm của DT 14
1.2.5 Thuật toán ID3 15
1.2.6 Thuật toán C4.5 21
1.3 KPDL BẰNG KỸ THUẬT PHÂN CỤM 30
1.3.1 Giới thiệu 30
1.3.2 Thuật toán K-Means 31
KẾT LUẬN CHƯƠNG 1 35
CHƯƠNG 2 NGHIÊN CỨU VÀ XỬ LÝ DỮ LIỆU VỀ BỆNH RỐI LOẠN TRẦM CẢM 36
2.1 ĐẶC ĐIỂM TÂM SINH LÝ CỦA TUỔI VỊ THÀNH NIÊN 36
Trang 52.2 KHÁI NIỆM VỀ BỆNH RỐI LOẠN TRẦM CẢM 37
2.3 THỰC TRẠNG BỆNH RỐI LOẠN TRẦM CẢM 38
2.4 ĐẶC ĐIỂM LÂM SÀNG CỦA BỆNH RỐI LOẠN TRẦM CẢM 39
2.4.1 Đặc điểm lâm sàng chung 39
2.4.2 Đặc điểm rối loạn trầm cảm ở trẻ vị thành niên 41
2.5 CHẨN ĐOÁN BỆNH RỐI LOẠN TRẦM CẢM 43
2.6 CÁC YẾU TỐ LIÊN QUAN ĐẾN BỆNH RLTC 45
2.6.1 Yếu tố gia đình 45
2.6.2 Yếu tố học đường 45
2.6.3 Yếu tố xã hội 45
2.7 THU THẬP VÀ XỬ LÝ DỮ LIỆU NGHIÊN CỨU BỆNH RLTC 46
2.7.1 Thu thập dữ liệu 46
2.7.2 Xử lý dữ liệu 47
2.8 CÁC CÔNG CỤ XÂY DỰNG MÔ HÌNH KPDL 47
2.8.1 Hệ quản trị CSDL SQL Server 2014 47
2.8.2 Công cụ xây dựng mô hình KPDL Business Intelligence 48
2.9 KPDL VỚI MSSQL SERVER 2014 ANALYSIS SERVICES 50
2.9.1 Giới thiệu 50
2.9.2 Môi trường phát triển ứng dụng 51
2.9.3 Các thuật toán KPDL trong MSSQL Server 2014 54
KẾT LUẬN CHƯƠNG 2 55
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH RỐI LOẠN TRẦM CẢM DỰA TRÊN KHAI PHÁ DỮ LIỆU 56
3.1 XÂY DỰNG CSDL TRONG SQL SERVER 56
3.1.1 Mô tả dữ liệu 56
3.1.2 Bài toán chẩn đoán bệnh RLTC 60
3.1.3 Lựa chọn giải thuật giải quyết bài toán 61
Trang 63.1.4 Xây dựng CSDL 62
3.2 ỨNG DỤNG KỸ THUẬT DT ĐỂ XÂY DỰNG MÔ HÌNH CHẨN ĐOÁN BỆNH RLTC 63
3.2.1 Dữ liệu yêu cầu cho việc xây dựng mô hình DT 63
3.2.2 Những tham số được hỗ trợ trong thuật toán DT 63
3.2.3 Xây dựng mô hình KPDL và kết quả đạt được 64
3.2.4 Mức độ phụ thuộc của các dấu hiệu chẩn đoán bệnh RLTC 69
3.2.5 Đánh giá mô hình dự đoán 71
3.3 ỨNG DỤNG KỸ THUẬT PHÂN CỤM ĐỂ PHÂN TÍCH CÁC ĐẶC TRƯNG CỦA BỆNH RLTC 71
3.3.1 Dữ liệu yêu cầu cho việc xây dựng mô hình phân cụm 71
3.3.2 Xây dựng mô hình phân cụm 72
3.3.3 Kết quả mô hình phân cụm của bệnh RLTC 73
3.4 XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH RỐI LOẠN TRẦM CẢM 76
KẾT LUẬN CHƯƠNG 3 79
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 80
TÀI LIỆU THAM KHẢO 82 QUYẾT ĐỊNH GIAO ĐỀ TÀI (Bản sao)
PHỤ LỤC
Trang 7DBMS Database Management System (Hệ quản trị cơ sở dữ liệu)
DT Decision Tree (Cây quyết định)
IG Information Gain (Gia lượng thông tin)
KPDL Khai phá dữ liệu
RLTC Rối loạn trầm cảm
SSAS Microsoft SQL Server 2012 Analysis Services
SQL Structured Query Language
Trang 8DANH MỤC CÁC BẢNG
Số hiệu
1.2 Ví dụ thuật toán C4.5 dữ liệu chơi golf 25 1.3 Ví dụ minh họa thuật toán K-Means 32 2.1 Các công cụ lập trình ứng dụng Data Mining 52
2.2 Các thuật toán Data Mining trong MSSQL Server
3.1 Cấu trúc dữ liệu chẩn đoán bệnh RLTC 56
3.2 Mức độ phụ thuộc của từng biểu hiện đối với bệnh
Trang 9DANH MỤC CÁC HÌNH VẼ
Số hiệu
1.3 Cây quyết định chơi golf từ thuật toán ID3 20 1.4 Cây quyết định chơi golf từ thuật toán C4.5 30
2.1 Quy trình xây dựng mô hình KPDL với BI 49
3.2 Dữ liệu sử dụng cho Training và test mô hình 62
3.4 Cây quyết định chẩn đoán bệnh RLTC 66 3.5 Các yếu tố ảnh hưởng đến bệnh RLTC 70 3.6 Ma trận biểu diễn khả năng chẩn đoán mô hình DT 71
3.8 Ma trận biểu diễn kết quả mô hình phân cụm 73
3.9 Những đặc trưng chi tiết của bệnh RLTC trong từng
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài
Hiện nay, trầm cảm là một bệnh diễn ra khá phổ biến và có tác động phức tạp đến đời sống xã hội, nhất là đối với lứa tuổi thanh thiếu niên Nguyên nhân chủ yếu dẫn đến hiện tượng này chính là vấn đề về sức khoẻ tâm thần Theo ước tính của Tổ chức Y tế thế giới (WHO) trên 25% dân số thế giới bị rối loạn tâm thần và hành vi tại một thời điểm nào đó trong cuộc đời [19] Hằng năm, bệnh trầm cảm cướp đi trung bình 850.000 mạng người
Dự báo, đến năm 2020 trầm cảm là căn bệnh xếp hạng 2 trong số những căn bệnh phổ biến toàn cầu với 121 triệu người mắc bệnh
Ở Việt Nam, nghiên cứu của Lê Thị Kim Dung về một số yếu tố ảnh hưởng đến sức khỏe tâm thần của học sinh ở một số trường trung học cơ sở của một số thành phố ở Việt Nam cho thấy tỷ lệ học sinh có biểu hiện trầm cảm là 8,4% [3] Theo kết quả nghiên cứu của Nguyễn Thị Thuỳ Vân (2014) luận văn thạc sĩ y tế cộng đồng trường Đại học y khoa Huế tỷ lệ mắc bệnh trầm cảm ở học sinh phổ thông là 8,9% [10]
Sức khỏe tâm thần là một cấu phần quan trọng trong sức khỏe tổng thể của trẻ Đây là một vấn đề lớn cần được quan tâm, đặc biệt trong công tác chăm sóc sức khoẻ ban đầu ở cộng đồng Vấn đề sức khỏe tâm thần ở thời kỳ
vị thành niên có mối liên quan chặt chẽ với rất nhiều hành vi như: uống rượu, hút thuốc, sử dụng ma túy, nguy cơ tự tử,… sẽ ảnh hưởng đến sức khỏe của trẻ khi trưởng thành
Ở tuổi vị thành niên, rối loạn trầm cảm thường biểu hiện là những thay đổi về cảm xúc như: cảm thấy buồn, khóc, vô vọng; không quan tâm đến những hoạt động vui chơi, giải trí hay suy giảm các hoạt động học tập; ăn không ngon miệng; hay thay đổi về giấc ngủ; hay có những khó chịu trong cơ
Trang 11thể một cách mơ hồ; ngoài ra trẻ còn nghĩ rằng không thể làm được việc gì đúng, cảm thấy cuộc sống không có ý nghĩa hoặc vô vọng [6]
Trầm cảm ảnh hưởng rất lớn đến năng lực học tập, giao tiếp; sự hình thành phát triển các mối quan hệ xã hội, hoàn thiện thể chất, tinh thần và tính cách của trẻ Nếu rối loạn trầm cảm không được quan tâm phòng ngừa và can thiệp phù hợp sẽ tăng gánh nặng cho gia đình và xã hội Do đó, yêu cầu cấp thiết cần phải có hệ thống chẩn đoán sàng lọc lâm sàng để phát hiện sớm các biểu hiện rối loạn trầm cảm ở học sinh phổ thông nhằm đưa ra các giải pháp can thiệp kịp thời trong việc phát triển sức khỏe
Hiện nay, việc ứng dụng Công nghệ thông tin (CNTT) vào lĩnh vực y tế còn hạn chế, nhất là việc hỗ trợ tìm kiếm, khai thác thông tin nhằm chẩn đoán các biểu hiện lâm sàng Trong đó, khai phá dữ liệu là một kỹ thuật thường được áp dụng để hỗ trợ đưa ra các quyết định khá chính xác
Xuất phát từ những thực tế trên, tôi đã chọn đề tài “Ứng dụng khai phá
dữ liệu để xây dựng hệ thống chẩn đoán bệnh trầm cảm cho học sinh phổ thông” để nghiên cứu luận văn thạc sĩ của mình
2 Mục tiêu nghiên cứu và nhiệm vụ nghiên cứu
Mục tiêu nghiên cứu
Nghiên cứu phương pháp khai phá dữ liệu và ứng dụng để xây dựng hệ thống hỗ trợ chẩn đoán bệnh rối loạn trầm cảm
Nhiệm vụ nghiên cứu:
- Tìm hiểu về bệnh rối loạn trầm cảm, tiến hành điều tra thu thập dữ liệu
Trang 12- Ứng dụng công cụ hỗ trợ khai phá Business Intelligence để xây dựng
và kiểm tra các mô hình
- Đánh giá kết quả dự đoán của mô hình và lựa chọn mô hình tốt nhất để chẩn đoán bệnh rối loạn trầm cảm
- Ứng dụng kỹ thuật cây quyết định xây dựng hệ thống chẩn đoán bệnh trầm cảm của học sinh
- Ứng dụng kỹ thuật phân cụm để phân tích các đặc trưng của bệnh rối loại trầm cảm
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
- Dữ liệu nghiên cứu bao gồm các đặc điểm cá nhân và một số yếu tố liên quan đến biểu hiện rối loạn trầm cảm của học sinh
- Các kỹ thuật khai phá dữ liệu, công cụ khai phá dữ liệu và mô-đun lập trình trong khai phá dữ liệu
Phạm vi nghiên cứu
- Số liệu thu thập gồm các hồ sơ bệnh án thuộc đối tượng trẻ vị thành niên từ 12 -18 tuổi, được chẩn đoán bệnh trầm cảm tại Khoa tâm thần - bệnh viện đa khoa tỉnh Quảng Trị, phòng khám đa khoa trường Cao Đẳng Y tế Quảng Trị và một số phòng khám tư nhân trên địa bàn tỉnh Quảng Trị
- Các kỹ thuật: phân lớp bằng cây quyết định và kỹ thuật phân cụm
- Công cụ hỗ trợ khai phá Business Intelligence và các mô-đun hỗ trợ
- Xây dựng hệ thống chẩn đoán bệnh và tìm ra những đặc trưng của bệnh rối loạn trầm cảm
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận
- Thu thập, đọc hiểu thông tin từ các tài liệu, giáo trình liên quan đến khai phá dữ liệu
Trang 13- Nghiên cứu các kỹ thuật phân lớp dữ liệu dựa vào cây quyết định, ứng dụng các kỹ thuật đó để chuẩn đoán bệnh rối loạn trầm cảm dựa vào các thông tin đầu vào
- Tìm hiểu các kỹ thuật phân cụm để phân tích những đặc trưng của bệnh rối loạn trầm cảm
Phương pháp nghiên cứu thực tiễn
- Sử dụng kiến thức khai phá dữ liệu cộng với tri thức chuyên gia bác sĩ,
y học chứng cứ và y học thực chứng trong quá trình khai phá dữ liệu y khoa
- Tiến hành so sánh kết quả của các kỹ thuật khai phá dữ liệu để lựa chọn
kỹ thuật cho kết quả chính xác nhất
- Xây dựng hệ thống nhằm hỗ trợ bác sĩ trong việc chẩn đoán và điều trị bệnh
5 Bố cục của luận văn
Ngoài các phần như mở đầu, kết luận và hướng phát triển, đề tài gồm 3 chương:
Chương 1: Tổng quan về khai phá dữ liệu Chương này tìm hiểu và trình bày các nội dung: nghiên cứu tổng quan về khai phá dữ liệu; các kỹ thuật khai phá dữ liệu bằng cây quyết định và kỹ thuật phân cụm
Chương 2: Nghiên cứu và xử lý dữ liệu về bệnh rối loạn trầm cảm Chương này trình bày nội dung sau: tìm hiểu đặc điểm tâm lý của tuổi vị thành niên, khái niệm về bệnh rối loạn trầm cảm, đặc điểm lâm sàng, các yếu
tố liên quan đến bệnh rối loại trầm cảm trên cơ sở đó thu thập và xử lý dữ liệu nghiên cứu bệnh RLTC Ngoài ra còn trình bày các công cụ xây dựng mô hình khai phá dữ liệu
Chương 3: Xây dựng hệ thống chẩn đoán bệnh trầm cảm dựa trên khai phá dữ liệu Chương này trình bày dữ liệu yêu cầu cho việc xây dựng mô hình, những tham số hỗ trợ cho các thuật toán từ đó ứng dụng kỹ thuật cây
Trang 14quyết định để chẩn đoán bệnh và kỹ thuật phân cụm để phân tích các đặc trưng của bệnh rối loại trầm cảm cho học sinh Đồng thời chương này xây dựng chương trình cài đặt thử nghiệm việc chẩn đoán bệnh bằng kỹ thuật quyết định và kỹ thuật phân cụm trên cơ sở dữ liệu bệnh RLTC
Trang 15sở dữ liệu Về bản chất, KPDL liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu có tính chính quy trong tập dữ liệu Ở mức độ tổng quát, ta có thể coi mục đích chính của quá trình KPDL là mô tả
và dự đoán [5] Dự đoán liên quan đến việc sử dụng các biến hoặc các trường trong cơ sở dữ liệu để dự đoán những giá trị chưa biết hoặc những giá trị trong tương lai của các biến quan tâm Mô tả hướng tới việc tìm ra các mẫu
mô tả dữ liệu Dự đoán và mô tả có tầm quan trọng khác nhau đối với các thuật toán KPDL
Giáo sư Tom Mitchell đã đưa ra định nghĩa KPDL như sau: “KPDL là
việc sử dụng dữ liệu lịch sử để khám phá những qui tắc và cải thiện những quyết định trong tương lai”
Định nghĩa của Ferruzza: “KPDL là tập hợp các phương pháp được
dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan
hệ và các mẫu chưa biết bên trong dữ liệu”
Định nghĩa của Parsaye: “KPDL là quá trình trợ giúp quyết định, trong
đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong cơ sở dữ liệu (CSDL) lớn”
Với một cách tiếp cận ứng dụng hơn, tiến sĩ Fayyad đã phát biểu:
“KPDL thường được xem là việc khám phá tri thức trong các CSDL, là một
Trang 16quá trình trích xuất những thông tin ẩn, trước đây chưa biết và có khả năng hữu ích, dưới dạng các quy luật, ràng buộc, qui tắc trong CSDL.”
Còn các nhà thống kê thì xem "KPDL như là một quá trình phân tích
được thiết kế thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp hoặc các mối quan hệ mang tính hệ thống giữa các biến và sau
đó sẽ hợp thức hoá các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho tập con mới của dữ liệu"
Nói tóm lại: KPDL là một quá trình phát hiện những tri thức mới từ những dữ liệu đã thu thập được
mô hình mới chưa biết [7]
Quá trình xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn đề cần giải quyết Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải pháp Bước tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho giải thuật khai phá dữ liệu có thể hiểu được Về lý thuyết thì có vẻ rất đơn giản nhưng khi thực hiện thì đây thực sự là một quá trình rất khó khăn, gặp phải nhiều vướng mắc như: các dữ liệu phải được sao
ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi),…Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá dữ liệu để tìm được các mẫu có ý nghĩa dưới dạng biểu
Trang 17diễn tương ứng với các ý nghĩa đó (thường thì được biểu diễn dưới dạng các luật xếp loại, cây quyết định, phát sinh luật, biểu thức hồi quy,…)
Quy trình KPDL bao gồm các bước như trong hình sau:
Hình 1.1 Quy trình KPDL
Bước 1 Làm sạch dữ liệu (Data cleaning & preprocessing): Loại bỏ
nhiễu và các dữ liệu không cần thiết
Bước 2 Tích hợp dữ liệu: (Data integration): quá trình hợp nhất dữ liệu
thành những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch
và tiền xử lý (data cleaning & preprocessing)
Bước 3 Trích chọn dữ liệu (Data selection): trích chọn dữ liệu từ những
kho dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri
Trang 18thức Quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ (incomplete data),
Bước 4 Chuyển đổi dữ liệu (Data transformation): Các dữ liệu được
chuyển đổi sang các dạng phù hợp cho quá trình xử lý
Bước 5 Khai phá dữ liệu (Data mining): Là một trong các buớc quan
trọng nhất, trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu
Bước 6 Ước lượng mẫu (Knowledge evaluation): Quá trình đánh giá các
kết quả tìm đuợc thông qua các độ đo nào đó
Bước 7 Biểu diễn tri thức (Knowledge presentation): Quá trình này sử dụng các kỹ thuật để biểu diễn và thể hiện trực quan cho nguời dùng
1.1.3 Các kỹ thuật KPDL
- Cây quyết định (Decision Tree): Kỹ thuật cây quyết định là một công
cụ mạnh và hiệu quả trong việc phân lớp và dự báo Các đối tượng dữ liệu được phân thành các lớp Các giá trị của đối tượng dữ liệu chưa biết sẽ được
dự đoán, dự báo Tri thức được rút ra trong kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng
- Phân lớp dữ liệu (Data Classification): Mục tiêu của phân lớp dữ liệu
đó là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu (mỗi mẫu 1 lớp) Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình chấp nhận được
- Phân cụm dữ liệu (Data Clustering): Mục tiêu của phân cụm dữ liệu là
nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm, sao cho các đối tượng thuộc cùng một lớp là tương đồng
- Khai phá luật kết hợp (Association Rule): Mục tiêu của phương pháp
này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong CSDL
Trang 19Đầu ra của giải thuật luật kết hợp là tập luật kết hợp tìm được
- Hồi quy (Regression): Phương pháp hồi quy tương tự như là phân lớp
dữ liệu Nhưng khác ở chỗ nó dùng để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá trị rời rạc
- Giải thuật di truyền (Genetic Algorithm): Là quá trình mô phỏng theo
tiến hoá của tự nhiên Ý tưởng chính của giải thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá trong sinh học
- Mạng Nơron (Neural Network): Đây là một trong những kỹ thuật
KPDL được ứng dụng phổ biến hiện nay Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người
Nói cách khác mục đích KPDL chính là tìm ra các mẫu và các mô hình đang tồn tại trong các CSDL nhưng vẫn còn tiểm ẩn có trong CSDL Ngày nay KPDL có nhiều ứng dụng trong thực tế, một số ứng dụng điển hình của KPDL có thể được áp dụng trong các lĩnh vực như:
- Tài chính và thị trường chứng khoán: Áp dụng vào việc phân tích các thẻ tín dụng tiêu biểu của các khách hàng, phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục vốn, giá cả, lãi suất, dữ liệu thẻ tín dụng và phát hiện gian lận…
Trang 20- Marketing: các ứng dụng bao gồm việc phân tích hành vi của khách hành dựa vào các hoá đơn mua hàng, xác định kế hoạch Marketing
- Bảo hiểm: Áp dụng vào việc phân tích mức độ rủi ro xảy ra đối với từng loại hàng hoá, dịch vụ hay chiến lược tìm kiếm khách …
- Y học và chăm sóc y tế: ứng dụng vào việc tìm ra mẫu trong phim Quang, phân tích dữ liệu thí nghiệm để tìm ra bệnh tật, phân tích mối liên hệ giữa triệu chứng bệnh, chẩn đoán và phân tích ảnh hưởng của thuốc và hiệu quả của việc điều trị và tối ưu hoá các quá trình xử lý trong một bệnh viện, mối quan hệ giữa tình trạng bệnh nhân với chuyên môn của bác sĩ…
X Text mining & Web mining: Phân lớp văn bản và các trang web Tóm tắt văn bản…
- Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, phát hiện gian lận, các ứng dụng quản lý và chăm sóc khách hàng, phát hiện sự cố để đưa ra biện pháp phát triển chất lương dịch vụ…
Ngoài ra KPDL có nhiều ứng dụng khác có thể được áp dụng trong các lĩnh vực như môi trường, xã hội học…
1.2 KPDL BẰNG KỸ THUẬT CÂY QUYẾT ĐỊNH
1.2.1 Giới thiệu
Trong lĩnh vực KPDL, cây quyết định (Decision Tree - DT) là một mô hình dự đoán thuộc lớp các bài toán phân lớp dùng để xác định lớp của các đối tượng cần dự đoán DT dựa vào dãy các luật để dự đoán lớp các đối tượng DT có cấu trúc biểu diễn dạng cây Trong đó, mỗi nút trong biểu diễn một thuộc tính, mỗi nhánh biễu diễn giá trị có thể có của thuộc tính, mỗi lá biểu diễn các lớp quyết định và đỉnh trên cùng của cây gọi là gốc
Trong lĩnh vực học máy, DT là một kiểu mô hình dự báo, nghĩa là một ánh xạ từ các quan sát về một sự vật hay hiện tượng tới các kết luận về giá trị mục tiêu của sự vật hiện tượng Mỗi nút trong tương ứng với một biến; đường
Trang 21nối giữa nó với nút con của nó thể hiện giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự đoán của biến phân loại; DT học để dự đoán giá trị của các biến phân loại bằng cách dựa vào tập huấn luyện để chọn ra các nút gốc
để phân nhánh cây bằng cách tính độ lợi thông tin, quá trình này được lặp đi lặp lại một cách đệ qui cho đến khi không thể tiếp tục thực hiện việc phân tách cây được nữa Kỹ thuật học máy dùng trong DT được gọi là học bằng
DT, hay chỉ gọi với tên ngắn gọn là DT [11],[13]
Dữ liệu huấn luyện cho DT là tập các bản ghi có dạng
(x,y) = (x1, x2, x3, ,xk, y)
Trong đó: y được gọi là biến phân loại (hay còn gọi là biến mục tiêu hay biến phụ thuộc) và x1, x2, x3, ,xk là các biến độc lập
DT được chia làm 2 loại:
+ Cây truy hồi dùng để dự đoán giá trị của biến phân loại có kiểu dữ liệu định lượng như dự đoán doanh thu, lợi nhuận, giá thành sản phẩm
+ Cây phân lớp dùng để dự đoán giá trị của biến phân loại có kiểu định danh như dự đoán khả năng mua hàng của khách hàng (có mua hoặc không mua), khả năng bị bệnh của bệnh nhân (có bệnh hoặc không có bệnh), kết quả học tập của nhận viên (xuất sắc, giỏi, khá, trung bình, yếu)
Hình 1.2 Biểu diễn DT cơ bản
Root
Leaf node Internal node
Leaf node Leaf node Branch
Trang 22- Mỗi nút trong biểu diễn một thuộc tính (biến độc lập)
- Mỗi nhánh từ một nút sẽ tương ứng với một giá trị có thể của thuộc tính gắn với nút đó
- Mỗi nút lá biểu diễn một phân lớp (biến phụ thuộc)
- DT được sử dụng trong phân lớp bằng cách duyệt từ nút gốc của cây cho đến khi đụng đến nút lá, từ đó rút ra lớp của đối tượng cần xét
- Một DT biểu diễn một phép tuyển của các kết hợp của các ràng buộc đối với các giá trị thuộc tính
- Mỗi đường đi từ nút gốc đến một lá sẽ tương ứng với một kết hợp của các giá trị thuộc tính
- DT chính là một phép tuyển của các kết hợp
1.2.3 Phương pháp xây dựng DT
Có rất nhiều thuật toán khác nhau để xây dựng DT như: CLS, ID3, C4.5, SPRINT nhưng nói chung quá trình xây dựng DT bao gồm 2 giai đoạn: Tạo cây và tỉa cây
Tạo cây: Thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện cho đến khi các mẫu ở mỗi nút lá thuộc cùng một lớp
Tỉa cây: Là việc làm dùng để tối ưu hoá cây, là xác định và xoá những nhánh mà có phần tử hỗn loạn hoặc những phần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó)
Có rất nhiều biến đổi khác nhau về nòng cốt của thuật toán DT, mặc dù vậy chúng vẫn tuân theo các bước sau:
Trang 23- Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị
- Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây
- Thuộc tính được phân loại (rời rạc hoá các thuộc tính dạng phi số)
- Chọn một thuộc tính để phân chia thành các nhánh Thuộc tính được chọn dựa trên độ đo thống kê
- Tiếp tục lặp lại việc xây dựng DT cho các nhánh
Điều kiện để dừng việc phân chia:
- Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)
- Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa
- Không còn lại mẫu nào tạo nút
1.2.4 Ưu điểm của DT
So với các phương pháp KPDL khác, DT có một số ưu điểm:
DT dễ hiểu: có thể hiểu mô hình DT sau khi được giải thích ngắn gọn
Việc chuẩn bị dữ liệu cho một DT chỉ đòi hỏi dữ liệu được chuẩn hoá
cơ bản hoặc đôi khi không cần thiết tiền xử lý dữ liệu khi tiến hành khai phá Trong khi đó, các kỹ thuật khác thường đòi hỏi chuẩn hoá dữ liệu, cần tạo các biến phụ và loại bỏ các giá trị rỗng
DT có thể xử lý cả dữ liệu có giá trị bằng số, liên tục và rời rạc Các kỹ thuật khác thường xuyên để phân tích các bộ dữ liệu chỉ gồm các thuộc tính
có giá trị hoặc liên tục (dạng số) hoặc rời rạc
Có thể thẩm định một mô hình bằng các kiểm tra thống kê Điều này làm cho ta có thể tin tưởng vào mô hình
DT có thể xử lý tốt một lượng dữ liệu lớn đưa ra kết quả trong thời gian ngắn Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của DT
Trang 241.2.5 Thuật toán ID3
a Giới thiệu
Thuật toán ID3 do Ross Quilan đề xuất [17] Tư tưởng của thuật toán ID3 là việc xây dựng DT được thực hiện đệ qui từ trên xuống và sử dụng độ lợi thông tin làm độ đo để chọn nút gốc để phân tách cây IG là tham số được tính dựa trên Entropy Nút được chọn làm nút gốc là khi nó có IG lớn nhất hoặc code có Entropy nhỏ nhất Công thức tính Entropy:
Entropy(S) = ∑𝐼∈𝐶−𝑝(𝐼)𝑙𝑜𝑔2𝑝(𝐼) (1.1)
Trong đó: S: tập dữ liệu huấn luyện; p(I) là tỷ số giữ các mẫu thuộc về lớp I trên tổng số các mẫu huấn luyện trong S; C là tập giá trị của thuộc tính
phân loại
Các bước chính trong thuật toán ID3:
1 Tính Entropy của tất cả các thuộc tính trong data set S
2 Chia tập S thành các tập con sử dụng thuộc tính có Entropy nhỏ nhất (tương ứng với IG lớn nhất)
3 Tạo DT với node gốc là nút có IG lớn nhất
4 Thực hiện đệ qui trên các tập con sử dụng các thuộc tính còn lại
b Lựa chọn thuộc tính để kiểm tra
Entropy
Entropy là một đại lượng toán học được sử dụng trong lĩnh vực lý thuyết thông tin nhằm đo lượng tin ngẫu nhiên của một sự kiện hay của phân phối ngẫu nhiên cho trước của một tập S Entropy của một tập S được định nghĩa: + Trường hợp tổng quát, đối với tập con S có phân lớp thì có biểu thức:
Trong đó pi là tần xuất tương đối của lớp i trong S
+ Các trường hợp đặc biệt:
Trang 25 Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng một lớp thì Entropy(S)= 0
Nếu trong tập S có số mẫu phân bổ đều nhau vào các lớp thì Entropy(S)=1
Các trường hợp còn lại 0 < Entropy(S)<1
Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp “Yes” (+),
“NO” (-) Ký hiệu P+ là để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định là “Yes”, và P- là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là
“No” trong tập S
Entropy(S) = -P+𝑙𝑜𝑔2𝑃+− 𝑃−𝑙𝑜𝑔2𝑃− (1.3)
Gia lượng thông tin IG (Information Gain)
Gia lượng thông tin là tiêu chuẩn đánh giá khả năng của một thuộc tính khi được dùng để phân lớp các mẫu dựa vào giá trị Entropy Dựa vào tiêu chuẩn này để chọn được thuộc tính có giá trị Entropy nhỏ nhất và dùng thuộc tính này để phân chia tập mẫu
Cho tập dữ liệu S gồm có n thuộc tính Ai (i=1,2 n) giá trị IG gọi tắt là Gain của thuộc tính A trong tập S ký hiệu là Gain(A,S) được tính:
Gain(S,A) = Entropy(S) - ∑𝑣∈𝑉𝑉𝑎𝑙𝑢𝑠𝑒(𝐴)|𝑆|𝑆|𝑣| 𝐸𝑛𝑡𝑟𝑜𝑝𝑦(𝑆𝑣) (1.4)
Trong đó: v các giá trị của thuộc tính A; S v bằng tập hợp con của tập S
mà có thuộc tính A mang giá trị v; |𝑆𝑣| là số phần tử của tập S v ; | 𝑆| là số phần
tử của tập S
Trong công thức trên, thành phần thứ 2 thể hiện giá trị Entropy sau khi tập S được phân chia bởi các giá trị của thuộc tính A
c Giải thuật ID3
Thuật toán ID3 được trình bày như sau:
ID3(R,C,S)
Trang 26Input: R: Tập các thuộc tính,
C: Thuộc tính phân loại
S: Tập dữ liệu huấn luyện
Output: Returns a Decision Tree
Begin:
If S rỗng then trả về một node với giá trị lỗi (Failure);
If S gồm các records với giá trị thuộc tính phân loại giống nhau then trả
về nút với giá trị đó;
if R rỗng then trả về một nút với giá trị có tần xuất hiện nhiều nhất trong
các giá trị của thuộc tính phân loại trong S;
Let D là thuộc tính có giá trị IG(D,S) lớn nhất trong R;
Let {dj|j=1,2, ,m}là các giá trị của thuộc tính D;
Let {Sj|j=1,2, ,m} là các tập con của S gồm các records tương ứng với giá trị dj của thuộc tính D;
Return một cây với nút gốc có nhãn là D và các cạnh có nhãn d1, d2, ,
dm tương ứng với các giá trị của thuộc tính D;
ID3(R-{D},C,S1), ID3(R-{D}, C, S2), , ID3(R-{D}, C, Sm);
End ID3;
d Ví dụ
Xét ví dụ quyết định chơi/không chơi golf Các thuộc tính được mô tả:
Bảng 1.1 Bảng dữ liệu chơi golf
Day Outlook Temp Humidity Wind Play?
Trang 27Day Outlook Temp Humidity Wind Play?
7 Overcast Cool Normal Weak Yes
10 Rain Mild Normal Strong Yes
11 Sunny Mild Normal Strong Yes
12 Overcast Mild High Strong Yes
13 Overcast Hot Normal Weak Yes
Bảng 1.1 có 14 bộ dữ liệu với 4 thuộc tính điều kiện (Outlook, Temp,
Humidity, Wind) và một thuộc tính quyết định là “Play” có giá trị nhãn là
5log14
514
9log14
9)
5,9I(
)S,
Trang 28Tính Gain cho Temp
Gain(S, Temp) = Entropy(S) - 144 Entropy(SHot) - 146 Entropy(SMild) - 144Entropy(SCool)= 0.940 - 4
Tính Gain cho Wind
Gain(S, Wind) = Entropy(S) - 6
Tính Gain cho Humidity
Gain(S,Humidit) = Entropy(S) - 147Entropy(SHigh) - 147Entropy(SNormal)
Trang 29Gain(SSunny, Humidity) = Entropy(SSunny) - 3
5 x Entropy(SHigh) - 2
5 x Entropy(SNormal) = 0.971 - 3
Ta tính Gain cho các thuộc tính Temp, Wind của nút Rain
Gain(SRain,Temp) = Entropy(SRain) - 3
5 Entropy(SMild) - 2
5 Entropy(SCool) = 0.971 - 3
Ta có cây quyết định chơi golf như sau:
Hình 1.3 Cây quyết định chơi golf từ thuật toán ID3
Yes
Yes
No
Trang 30Luật 2: if (Outlook = Sunny) and (Humidity= Normal) then Play= Yes Luật 3: if (Outlook = Overcast) then Play= Yes
Luật 4: if (Outlook = Rain) and (Wind= Weak) then Play= Yes
Luật 5: if (Outlook = Rain) and (Wind= Strong) then Play= No
e Đánh giá thuật toán ID3
Ưu điểm của thuật toán ID3
Sử dụng thuật toán tìm kiếm leo đồi dựa trên giá trị Gain để tìm kiếm các thuộc tính trong toàn bộ DT
Đầu ra chỉ là một giả thiết đơn (cho 1 kết quả duy nhất)
Sử dụng các thuộc tính tĩnh: Hạn chế tối đa cho những bản ghi dữ liệu riêng lẽ
Kiểm soát được dữ liệu rác, dữ liệu tạp bên ngoài bằng cách giảm bớ yêu cầu tiêu chuẩn cho việc chấp nhận những dữ liệu chưa hoàn thành
Những khuyết điểm của thuật toán ID3
Không xử lý các thuộc tính có kiểu giá trị liên tục (kiểu số thực)
Không thích ứng được với những tập dữ liệu tạp (dễ phát sinh lỗi) Không hiệu quả khi xuất hiện những dữ liệu không mong muốn
DT khi sinh ra lớn, rườm rà, chưa được tối ưu ở mức tối đa có thể
Không có khả năng xử lý các ví dụ thiếu giá trị thuộc tính
1.2.6 Thuật toán C4.5
a Giới thiệu
Thuật toán C4.5 được phát hiện và công bố bởi Quinlan vào năm 1996 Thuật toán C4.5 là thuật toán được cải tiến từ thuật toán ID3, C4.5 giải quyết được hầu hết hạn chế của ID3 C4.5 sử dụng độ đo là Gain Ratio thực hiện phân lớp tập mẫu dữ liệu theo chiến lược ưu tiên theo chiều sâu và được dùng rộng rãi trong các ứng dụng phân lớp với lượng dữ liệu cỡ vài trăm nghìn bản ghi
Trang 31Độ đo sử dụng để xác định điểm chia tốt nhất
RatioGain: Sự đánh giá thay đổi các giá trị của thuộc tính
𝑅𝑎𝑡𝑖𝑜𝐺𝑎𝑖𝑛(𝑆, 𝐴)= 𝐺𝑎𝑖𝑛(𝑆,𝐴)
𝑆𝑝𝑙𝑖𝑡𝐼𝑛𝑓𝑜𝑚𝑎𝑡𝑖𝑜𝑛(𝑆,𝐴)
Trong đó:
Cách tính Entropy và Gain như đã trình bày phần 1.2.5.b
SplitInfomation: Thông tin tiềm ẩn được tạo ra bằng cách chia tập dữ liệu trong một số tập con nào đó
𝑅𝑎𝑡𝑖𝑜𝐺𝑎𝑖𝑛(𝑆, 𝐴)=− ∑ |𝑆𝑖 |
|𝑆|
𝑐 𝑖=1 log2|𝑆𝑖 |
|𝑆|
Với Si làtập con của S chứa các ví dụ có thuộc tính A mang giá trị Vi Để
ý rằng SplitInfomation thực sự chính là Entropy của S với sự liên quan trên những giá trị của thuộc tính A Trong thuật toán C4.5 tất cả các thuộc tính sẽ được tính toán độ đo RatioGain, thuộc tính nào có độ đo RatioGain lớn nhất
sẽ được chọn làm thuộc tính phân chia
b Thuật toán C4.5
Dữ liệu vào: Tập dữ liệu E, tập thuộc tính F, tập nhãn lớp
Dữ liệu ra: Mô hình DT
Thuật toán:
Tạo cây (Tập dữ liệu E, tập thuộc tính F, tập nhãn lớp)
Nếu điều kiện dừng (E,F) = Đúng
Trang 32Đặt V={v|v thoả mãn điều kiện là phần phân chia xuất phát từ Nutgoc}
Lặp qua từng tập phân chia v ∈ V
Đặt Ev = {e| Nutgoc.điều kiện kiểm tra (e) = v và e ∈ E}
Nutcon = Tạocây(Ev, F, Tập nhãn lớp)
Dừng lặp
End if
Trả về Nút gốc
Gọi hàm Tạocây (E, tập thuộc tính F của E, tập nhãn lớp)
Giải thích về thuật toán:
Đây là một thuật toán kiểu đệ qui tạo DT Tại hàm chính, gọi hàm đệ quy TạoCây() với ba tham số vào là tập dữ liệu E, tập thuộc tính F của E và tập nhãn Thuật toán làm việc bằng cách thực hiện đệ quy chọn giá trị thuộc tính tốt nhất để chia, lưu ý là chọn giá trị của thuộc tính sao cho điều kiện chia tốt nhất, tiếp tục tiến hành mở rộng nút con bằng cách gọi đệ qui cho đến khi điều kiện dừng được thoả mãn
c Mội số cải tiến so với ID3
Thuộc tính liên tục:
Thuật toán ID3 bị giới hạn bởi việc liên quan đến tập những giá trị rời rạc Trong thuật toán C4.5 chúng ta sẽ mở rộng phạm vị hoạt động của nó cho những thuộc tính có giá trị liên tục để phù hợp với thế giới thực
Thuật toán C4.5 đưa ra định nghĩa những giá trị rời rạc mới để phân những giá trị liên tục thành những thuộc tính tượng trưng một lần nữa theo nguyên tắc sau:
Dựa trên một giá trị nếu muốn phân chia nhị phân
Dựa trên vài giá trị nếu muốn có nhiều nhánh
Trang 33 Với mỗi giá trị tính các mẫu thuộc một lớp theo dạng F<v và F>v
Cách chọn giá trị v hiệu quả:
Sắp xếp các giá trị tăng dần
Chọn giá trị trung bình của từng cặp giá trị của thuộc tính để phân chia và tính chỉ số gia lượng thông tin
Chọn giá trị phân chia có chỉ số gia lượng thông tin cao nhất
Thuộc tính nhiều giá trị
Thuật toán ID3 bị giới hạn bởi việc liên quan đến những thuộc tính có nhiều giá trị mà các giá trị này lại duy nhất như kiểu dữ liệu ngày – tháng –năm, kiểu dữ liệu như mã nhân viên, số chứng minh nhân dân sẽ hình thành một số lượng quá lớn các nhánh con làm kết quả của cây trở nên lớn và phức tạp nhưng lại vô nghĩa Khi đó, việc chia một tập dữ liệu thành quá nhiều các tập con dẫn đến số lượng các lớp tại mỗi nút giảm và do đó Entropy trên thuộc tính đó cũng giảm theo, nên sự thu thập thông tin sẽ cao hơn các thuộc tính khác Vì vậy thuộc tính này sẽ được lựa chọn thường xuyên để tách, dẫn đến độ phân nhánh lớn, cây sẽ rất lớn và phức tạp
C4.5 giải quyết vấn đề này bằng cách lựa chọn thuộc tính để phân tách theo nguyên tắc:
Thuộc tính có tỉ lệ gia lượng thông tin cao
Entropy của thuộc tính lớn hơn Entropy trung bình của tất cả các thuộc tính
Thuộc tính thiếu giá trị
Nếu giá trị của thuộc tính F bị mất trên một số bộ dữ liệu, hướng giải quyết sẽ thế nào? Giả sử rằng (x,C(x)) là một trong những tập huấn luyện trong S và giá trị F(x) là không được biết đến
Giải pháp là thay bằng giá trị xuất hiện nhiều nhất của thuộc tính F
Trang 34 Thay bằng giá trị xuất hiện nhiều nhất của thuộc tính A mà có cùng giá trị hàm mục tiêu
Tính lại các công thức dựa trên những giá trị đã có của thuộc tính F
d Ví dụ thuật toán C4.5
Bảng 1.2 Ví dụ thuật toán C4.5 dữ liệu chơi golf
Day Outlook Temp Humidity Wind Play?
12 Overcast Mild 90 Strong Yes
Dữ liệu vào:
Tập dữ liệu thời tiết
Tập thuộc tính: Day, Outlook, Temp, Humidity, Wind
Tập nhãn lớp: Yes – No
Dữ liệu ra: Mô hình quyết định chơi golf
Tạo cây quyết định:
Trang 35Lần tạo cây đầu tiên:
Tìm điểm chia tốt nhất (E,F)
E: Tập dữ liệu thời tiết
F: Day, Outlook, Temp, Humidity, Wind
Tính độ đo tỉ lệ Gain cho thuộc tính “Outlook”
EntropyOutlook(S)= 145Entropy (Ssunny) + 144 𝑥 Entropy(SOvercast) + 145 x Entropy(Srain)= (5
14log2 6
14− 8
14log2 8
14 = 0.985 GainRatio(S,Wind) = 0.048/0.985 = 0.049
Tính độ đo tỉ lệ Gain cho thuộc tính “Humidity”
EntropyHumidity(S) = 4
14 Entropy (S72.5) + 10
14 Entropy(S>72.5)
Trang 36Tính độ đo tỉ lệ Gain cho thuộc tính “Day”:
EntropyDay(S)= 4
14Entropy(SD1)+ ….+ 4
14Entropy(SD14) = 12 x 4
14 x0= 0 Gain(S,Day)= Entropy(S) – EntropyDay(S) = 0.940 – 0 = 0.940
SplitInfomation(S,Day) = 14x (−141) log2141 = 3.807
GainRatio(S,Day) = 0.940/3.807 = 0.246
Lựa chọn thuộc tính tốt nhất để phân chia:
Entropy trung bình của các thuộc tính = (0.694+ 0.892 + 0.925 + 0.911 + 0)/5= 0.684
Ta có: GainRatio(S,Outlook) = 0.156
EntropyOutlook(S)= 0.694>0.684
Thuộc tính được chọn để phân chia: Outlook
Tương tự như lần tạo cây thứ 1 ta tiếp tục tạo cây thứ 2:
Nhánh “Sunny”
Tính độ đo tỉ lệ Gian cho thuộc tính “Temp”:
Trang 37SplitInfomation(SSunny,Temp) = - (25) log2(25) − (25) log2(25) −
(15) log2(25) = 1.522
GainRatio(Ssunny,Temp) = 0.571/1.522 = 0.375
Tính độ đo tỉ lệ Gian cho thuộc tính “Humidity”:
Chọn giá trị phân chia tốt nhất:
Tính độ đo tỉ lệ Gian cho thuộc tính “Wind”:
EntropyWind(SSunny)= 2
5xEntropy (SWeak) + 3
5 𝑥 Entropy(SStrong)
= 25(1) + ((35) (−13) log2(13) − (23) log2(23)) = 0.951
Gain(SSunny,Wind)= 0.971– 0.951 = 0.020
SplitInfomation(SSunny,Wind) = - (25) log225−35log235= 0.971
GainRatio(SSunny,Wind) = 0.020/0.971 = 0.021
Trang 38Tính độ đo tỉ lệ Gain cho thuộc tính “Day”:
EntropyDay(SSunny)= 15 x Entropy(SD1)+1
5xEntropy(SD2)+ 15xEntropy(SD8) + 15 x Entropy(SD9)+ 15 x Entropy(SD11)= 0
Gain(SSunny,Day)= 0.971 – 0 = 0.971
SplitInfomation(SSunny,Day) = 5 x (−1
5) log21
5= 2.322 GainRatio(SSunny,Day) = 0.971/2.322= 0.418
Thuộc tính được phân chia: “Humidity”:
Nhánh “Rain”
Tính độ đo tỉ lệ Gian cho thuộc tính “Humidity”
Entropy(Srain) = - 35log2(35) − (25) log2(25) = 0.971
Entropytemp(Srain)= (35) x Entropy (SMild) +25x Entropy (SCool)
SplitInfomation(Srain,Temp) = - (3
5) (log22
5− (2
5) log22
5) = 0.971 GainRatio(Srain,Temp) = 0.020/0.971 = 0.021
Tính độ đo tỉ lệ Gain cho thuộc tính “Wind”:
EntropyWind(Srain)= 3
5xEntropy (SWeak) + 2
5 𝑥 Entropy(SStrong)
= (35) 𝑥(0) + (25) 𝑥(0) = 0 Gain(Srain,Wind)= 0.971– 0= 0.971
SplitInfomation(Srain,Wind) = - (35) log235−25log225= 0.971
GainRatio(Srain,Wind) = 0.971/0.971 = 1
Độ đo tỉ lệ Gain cho thuộc tính “Day”
Trang 39EntropyDay(Srain)= 141 xEntropy(SD4)+1
14xEntropy(SD5)+ 141 x Entropy(SD6) + 1
14 x Entropy(SD10)+ 1
14 x Entropy(SD14)= 0 Gain(Srain,Day)= 0.971 – 0 = 0.971
SplitInfomation(Srain, Day) = 5 x (−15) log215= 2.322
GainRatio(Srainm,Day) = 0.971/2.322= 0.418
Thuộc tính được chọn để phân chia: “Wind”
Hình 1.4 Cây quyết định chơi golf từ thuật toán C4.5
Luật rút ra từ cây quyết định:
Luật 1: if (Outlook = Sunny) and (Humidity >77.5) then Play= No
Luật 2: if (Outlook = Sunny) and (Humidity 77.5) then Play= Yes
Luật 3: if (Outlook = Overcast) then Play= Yes
Luật 4: if (Outlook = Rain) and (Wind= Weak) then Play= Yes
Luật 5: if (Outlook = Rain) and (Wind= Strong) then Play= No
1.3 KPDL BẰNG KỸ THUẬT PHÂN CỤM
1.3.1 Giới thiệu
Phân cụm là kỹ thuật quan trọng trong KPDL, có nhiều định nghĩa khác nhau về kỹ thuật này, nhưng về bản chất thì phân cụm là quy trình tìm cách nhóm các đối tượng đã cho vào các cụm, sao cho các đối tượng trong cùng
Yes
Yes
No
Trang 40một cụm tương tự nhau và các đối tượng khác cụm thì không tương tự nhau Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu Tuy nhiên, không có tiêu chí nào được xem là tốt nhất để đánh giá hiệu quả của phân cụm Nó phụ thuộc vào mục đích của phân cụm như: data reduction, “natural clusters”, “useful” clusters, outlier detection [15]
Ứng dụng của phân cụm dữ liệu trong các lĩnh vực:
Kinh doanh: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn,…
Sinh học: Phân nhóm động vật và thực vật dựa vào các thuộc tính
Địa lý: nhận ra các vùng đất giống nhau dựa vào CSDL quan sát trên Trái Đất, phân nhóm nhà,
Bảo hiểm, tài chính: Nhận dạng các nhóm công ty có chính sách bảo hiểm với chi phí đền bù trung bình cao, phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds),…
Website: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog),…
Một công cụ độc lập để xem xét phân bố dữ liệu
Làm bước tiền xử lý cho các thuật toán khác
1.3.2 Thuật toán K-Means
K-Means là thuật toán quan trọng và phổ biến trong kỹ thuật phân cụm
Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng
đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm là
nhỏ nhất Thuật toán K-Means thực hiện qua các bước như Hình 1.5: