Tuỳ vào cách tiếp cận được sử dụng, khai phá dữ liệu còn có thể áp dụng một số kỹ thuật như mạngnơron, lý thuyết tập thô hoặc tập mờ, biểu diễn tri thức,… So với cácphương pháp này, k
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 5
1.1 Khai phá dữ liệu 5
1.2 Những thách thức trong Khai phá dữ liệu 10
1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu 12
CHƯƠNG II: PHÂN LỚP DỮ LIỆU 13
2.1 Bài toán phân lớp 13
2.1.1 Phát biểu bài toán 13
2.1.2 Một số ứng dụng của bài toán phân lớp 13
2.2 Các kỹ thuật phân lớp 14
2.2.1 Kỹ thuật sử dụng khoảng cách 14
2.2.2 Kỹ thuật phân lớp theo tiếp cận thống kê xác xuất 17
2.2.3 Cây quyết định 30
2.2.4 Mạng neural 45
2.2.5 Các kỹ thuật khác 59
CHƯƠNG III: CÁC THUẬT TOÁN TÌM LUẬT KẾT HỢP 63
3.1 Luật kết hợp 63
3.1.1 Một số khái niệm liên quan 64
3.1.2 Ứng dụng của luật kết hợp 67
3.2 Thuật toán chung cho luật kết hợp 68
3.3 Một số thuật toán tìm luật kết hợp 68
3.3.1 Thuật toán AIS 68
Trang 23.3.3 Thuật toán Apriori 72
3.3.4 Thuật toán Eclat (tìm tập phổ biến) 88
CHƯƠNG IV: CÀI ĐẶT THUẬT TOÁN 90
4.1 Cài đặt thuật toán 90
4.2 Chạy thuật toán với bộ dữ liệu điểm của học viên 91
4.2.1 Xử lý dữ liệu 91
4.2.2 Thiết kế giao diện 92
KẾT LUẬN 95
TÀI LIỆU THAM KHẢO 97
Bảng từ viết tắt
Từ hoặc cụm từ Từ viết tắt Từ tiếng Anh
Khai phá dữ liệu KPDL Data Mining
Trang 3LỜI NÓI ĐẦU
Trong thời đại ngày nay, Internet phát triển rộng lớn khắp toàn cầu,cùng với sự bùng nổ của ngành Công nghệ thông tin và những điều kiệnphát triển của nó, các công nghệ lưu trữ dữ liệu và phục hồi dữ liệu ngàycàng phát triển nhanh chóng tạo điều kiện cho các đơn vị thu thập dữ liệunhiều hơn và tốt hơn Chính vì lý do này mà cơ sở dữ liệu ở các cơ quan,doanh nghiệp, đơn vị, trường học ngày càng nhiều thông tin tiềm ẩn, phongphú và đa dạng; đặc biệt trong việc học tập các môn học của học viên, cácnhà trường đã nhận thức đ ược tầm quan trọng của việc nắm bắt và xử lýthông tin, sử dụng những tri thức được chiết xuất từ cơ sở dữ liệu để phục
vụ cho việc dự đoán phân loại học viên trong các môn học tiếp theo trongquá trình học tập của học viên tại nhà trường
Trước những điều kiện và yêu cầu đặt ra của nhiệm vụ đào tạo, đòihỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và cóhiệu quả để lấy được thông tin có giá trị Khai phá dữ liệu là một kỹ thuậtđược áp dụng rất hiệu quả phục vụ cho mục đích này; là một khâu trongquá trình khám phá tri thức, khai phá dữ liệu làm nhiệm vụ trích xuất cácthông tin có giá trị tiềm ẩn trong những kho dữ liệu; hiện nay, kỹ thuật nàyđang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh
và đời sống khác nhau như: y tế, marketing, ngân hàng, viễn thông,Internet,… Không ai có thể phủ nhận những lợi ích to lớn mà nhờ áp dụng
kỹ thuật khai phá đem lại
Nhận thấy tầm quan trọng của vấn đề này, trong nội dung đồ án tốtnghiệp của mình em đã nghiên cứu về kỹ thuật khai phá dữ liệu, trong đótập trung đi sâu nghiên cứu lĩnh vực phân lớp dữ liệu và tìm luật kết hợpcủa khai phá dữ liệu với mục đích dựa trên kết quả học tập của các họcviên, sinh viên mà cụ thể là các dữ liệu điểm của các môn học để phân lớp
Trang 4môn học Cung cấp thêm thông tin về việc học tập của học viên, về các sởthích, sự say mê, ham học hỏi của học viên cho giáo viên, nhà trường; giúp
họ có được những thông tin cần thiết, quan trọng; giảm bớt thời gian tìmhiểu, phân tích, đánh giá, có được cơ sở tin cậy, chính xác giúp ích trongviệc học tập và giảng dạy
Em xin chân thành cảm ơn thầy giáo hướng dẫn đã tận tình hướngdẫn, chỉ bảo, giúp đỡ cho em trong quá trình làm đồ án để cho em hoànthành đồ án tốt nghiệp của mình
Trang 5CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Khai phá dữ liệu
Khai phá dữ liệu là quá trình khai thác những thông tin tiềm ẩn cótính dự đoán, những thông tin có nhiều ý nghĩa từ những cơ sở dữ liệu lớn,
nó được coi như là một bước trong quá trình khám phá tri thức (KnowledgeDiscovery in Databases – KDD) Khai phá dữ liệu là giai đoạn quan trọngnhất trong tiến trình khám phá tri thức từ cơ sở dữ liệu, các tri thức này córất nhiều ý nghĩa, là cơ sở hỗ trợ trong việc ra quyết định trong khoa học vàkinh doanh
Các bước trong quá trình khám phá tri thức:
- Làm sạch dữ liệu (Data cleaning): loại bỏ dữ liệu nhiễu hoặc dữliệu không thích hợp
- Tích hợp dữ liệu (Data Intergration): Tích hợp dữ liệu từ các nguồnkhác nhau như CSDL, kho dữ liệu, file text,
- Trích chọn dữ liệu (data selection): trích chọn những tập dữ liệucần được khai phá từ các tập dữ liệu lớn ban đầu (database, datawarehouses,…) theo một số tiêu chí nhất định
- Biến đổi dữ liệu (data transformation): chuẩn hoá và làm mịn dữliệu, đưa dữ liệu về dạng thuận lợi nhất, phù hợp cho việc khai phá bằngcách thực hiện các thao tác nhóm hoặc tập hợp
- Khai phá dữ liệu (data mining): là giai đoạn thiết yếu, đây là bướcquan trọng và tốn nhiều thời gian nhất của toàn bộ quá trình khám phá trithức, đây là bước áp dụng những kỹ thuật khai phá để khai thác, trích xuấtthông tin có ích, những mẫu điển hình, những mối liên hệ đặc biệt có nhiềugiá trị, mang nhiều ý nghĩa từ dữ liệu
- Đánh giá mẫu (Pattern Evaluation): đánh giá sự hữu ích của cácmẫu biểu diễn tri thức dựa vào một số phép đo
Trang 6- Trình diễn dữ liệu (knowledge presentation): sử dụng các kỹ thuậttrình diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được chongười sử dụng.
Databases
Data Integration
Selection
Data Cleaning
Hình 1.1 Các bước trong quá trình khám phá trí thức.
Khai phá dữ liệu là một lĩnh vực liên quan tới rất nhiều ngành học khácnhư: hệ Cơ sở dữ liệu, thống kê, trực quan hoá Tuỳ vào cách tiếp cận được
sử dụng, khai phá dữ liệu còn có thể áp dụng một số kỹ thuật như mạngnơron, lý thuyết tập thô hoặc tập mờ, biểu diễn tri thức,… So với cácphương pháp này, khai phá dữ liệu có một số ưu thế rõ rệt, cụ thể:
Phương pháp hệ chuyên gia: phương pháp này khác với khai phá dữliệu ở chỗ các ví dụ của hệ chuyên gia thường ở mức chất lượng caohơn nhiều so với các dữ liệu trong cơ sở dữ liệu và chúng thường chỉbao hàm được các trường hợp quan trọng Ngoài ra, các chuyên giasẽ xác nhận giá trị và tính hữu ích của các mẫu phát hiện được
So sánh với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ởchỗ, khai phá dữ liệu có thể sử dụng với các cơ sở dữ liệu chứa nhiềunhiễu, dữ liệu không đầy đủ hoặc biến đổi liên tục Trong khi đó,
Trang 7phương pháp học máy chủ yếu được áp dụng trong các cơ sở dữ liệuđầy đủ, ít biến động và tập dữ liệu không quá lớn.
Phương pháp thống kê là một trong những nền tảng lý thuyết củaKhai phá dữ liệu nhưng phương pháp thống kê còn tồn tại một sốđiểm yếu mà Khai phá dữ liệu đã khắc phục được:
Các phương pháp thống kê chuẩn không phù hợp với các kiểu
dữ liệu có cấu trúc trong rất nhiều các cơ sở dữ liệu
Các phương pháp thống kê hoạt động hoàn toàn theo dữ liệu,
nó không sử dụng tri thức sẵn có về lĩnh vực
Kết quả phân tích của thống kê có thể sẽ rất nhiều và khó cóthể làm rõ được
Phương pháp thống kê còn có sự hướng dẫn của người dùng
để xác định phân tích dữ liệu như thế nào và ở đâu
Các kỹ thuật khai phá dữ liệu được chia làm 2 nhóm chính:
- Kỹ thuật khai phá dữ liệu mô tả: mô tả về các tính chất hoặc cácđặc tính chung của dữ liệu trong CSDL, các kỹ thuật này gồm có: phâncụm (clustering), tóm tắt (sumerization), trực quan hoá (visualization),phân tích sự phát triển và độ lệch (Evolution and deviation analyst), phântích luật kết hợp (association rules),…
- Kỹ thuật khai phá dữ liệu dự đoán: đưa ra các dự đoán dựa vào cácsuy diễn trên dữ liệu hiện thời, các kỹ thuật này gồm có: phân lớp(classification), hồi quy (regression),…
Các bài toán chính trong khai phá dữ liệu: 3 bài toán thông dụng vàphổ biến nhất là:
- Bài toán phân lớp dữ liệu và hồi quy: Mục tiêu của phương phápphâ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 phânlớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để
Trang 8+ Xây dựng mô hình: một mô hình sẽ được xây dựng trên việc phântích các mẫu dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyếtđịnh bởi một thuộc tính gọi là thuộc tính lớp Các mẫu dữ liệu này cònđược gọi là tập dữ liệu huấn luyện Các nhãn lớp của tập dữ liệu huấn luyệnđều phải được xác định trước khi xây dựng mô hình, vì vậy phương phápnày còn được gọi là học có giám sát, khác với phân cụm dữ liệu là họckhông có giám sát.
+ Sử dụng mô hình để phân lớp dữ liệu: trước hết ta tính toán độchính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽđược sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tươnglai
Phương pháp hồi quy khác với phân lớp dữ liệu ở chỗ, hồi quy dùng
để dự đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dựđoán về các giá trị rời rạc
- Bài toán phân cụm (clustering/segmentation): Mục tiêu chính củaphương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trongtậ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 còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng.Phân cụm dữ liệu là một ví dụ của phương pháp học không giám sát.Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phảiđịnh nghĩa trước các mẫu dữ liệu huấn luỵện Vì thế, có thể coi phân cụm
dữ liệu là một cách học bằng quan sát (learning by observation), trong khiphân lớp dữ liệu là học bằng ví dụ (learning by example) Với phương phápnày ta không thể biết kết quả các cụm thu được sẽ thế nào khi bắt đầu quátrình, do đó luôn cần một chuyên gia về lĩnh vực đó để đánh giá các cụmthu được Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng vềphân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại
Trang 9trang Web…Ngoài ra, phân cụm dữ liệu còn có thể được sử dụng như mộtbước tiền xử lý cho các thuật toán khai phá dữ liệu khác.
- Bài toán luật kết hợp: là dạng biểu diễn tri thức ở dạng khá đơngiản, 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 Mẫu đầu ra của giải thuật khai phá dữliệu là tập luật kết hợp tìm được, ví dụ: “75% học viên học tốt môn cấu trúc
dữ liệu và giải thuật thì học tốt môn lập trình hướng đối tượng, 30% sinhviên học tốt cả môn cấu trúc dữ liệu và giải thuật và môn lập trình hướngđối tượng” Ở đây, “học tốt môn cấu trúc dữ liệu và giải thuật” là vế tráicủa luật, “học tốt môn lập trình hướng đối tượng” là vế phải của luật, con
số 75% là độ tin cậy của luật, con số 30% là độ hỗ trợ của luật Độ hỗ trợ
và độ tin cậy là 2 độ đo đặc trưng và quan trọng của luật Chúng tương ứngphản ánh sự hữu ích và sự chắc chắn của luật đã khám phá Độ hỗ trợ 30%
có nghĩa là 30% của tất cả các học viên đã phân tích chỉ ra rằng học viênđồng thời học tốt cả hai môn cấu trúc dữ liệu và giải thuật và môn lập trìnhhướng đối tượng Độ tin cậy 75% có nghĩa là 75% các học viên học tốtmôn cấu trúc dữ liệu và giải thuật cũng học tốt môn lập trình hướng đốitượng
Ngoài ra còn một số bài toán khác như:
- Bài toán khai phá chuỗi theo thời gian (sequential/temporalpatterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự vàtính thời gian
- Bài toán mô tả khái niệm (concept description & summarization):tập trung vào việc mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: tóm tắt vănbản, mô tả khái niệm,…
Những công cụ khai phá dữ liệu có thể dự đoán những xu hướngtrong tương lai và do đó cho phép doanh nghiệp ra những quyết định kịp
Trang 10Những ứng dụng điển hình của khai phá dữ liệu:
Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis and decisionsupport)
Text mining & Webmining: phân lớp văn bản và các trang Web, tómtắt văn bản, tìm kiếm thông tin,…
Tin – sinh: tìm kiếm, đối sánh các quan hệ gen và thông tin ditruyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền,…
Điều trị y học: (medical treatment): mối liên hệ giữa triệu chứng,chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc men,
…)
Tài chính và thị trường chứng khoán (finance & stock market): phântí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,…
Những ứng dụng thực tế:
+ Ngành bảo hiểm y tế Australia đã dựa vào việc chẩn đoán bệnhtrong y tế dựa trên kết quả xét nghiệm và đã phát hiện ra nhiều trường hợpxét nghiệm không hợp lý, tiết kiệm được 1 triệu USD/năm
+ Trang Web mua bán qua mạng Amazon.com cũng tăng doanh thunhờ áp dụng khái phá dữ liệu trong việc phân tích sở thích mua bán củakhách hàng
+ Bitish Telecom đã phát hiện ra những nhóm người thường xuyêngọi cho nhau bằng mobile và thu lợi hàng triệu USD
1.2 Những thách thức trong Khai phá dữ liệu
CSDL có kích thước lớn: Các CSDL có tới hàng trăm bảng, mỗi
bảng hàng trăm trường, số lượng bản ghi cỡ hàng triệu, kích thướccác CSDL dạng này ở mức gigabyte
Trang 11 Số chiều dữ liệu nhiều: Một vấn đề rất khó khăn khi giải quyết các
bài toán KPDL là số chiều của dữ liệu rất lớn (số thuộc tính, sốbiến) Việc gia tăng số chiều khiến các thuật toán tìm kiếm trongkhông gian tìm kiếm nếu không được mở rộng thì rất khó đạt đượchiệu quả
Over-fitting: Với các hệ thống KPDL theo mô hình học có giám sát,
tức là học quy nạp thì rất có thể diễn ra tình trạng hệ thống học vẹt,trên tập dữ liệu huấn luyện thì kết quả rất tốt, nhưng trên tập kiểmtra thì kết quả rất tồi Đây là một vấn đề mang tính bản chất cố hữucủa các hệ thống học máy
Sự thay đổi dữ liệu và tri thức: Sự thay đổi nhanh chóng của dữ
liệu có thể làm cho các hệ thống KPDL đã được xây dựng trước đóhoạt động không chính xác Các thuộc tính đầu vào của các hệKPDL trong quá trình thực tế, có thể bị chỉnh sửa, loại bỏ…
Dữ liệu nhiễu, dữ liệu không đầy đủ: Vấn đề xử lý dữ liệu không
đầy đủ và lẫn nhiễu đã trở thành một phần trong toàn bộ quá trìnhKPDL Vấn đề này càng trở nên nghiêm trọng khi dữ liệu của cácứng dụng thực tế có tỷ lệ lỗi lên đến 20%
Mối quan hệ phức tạp giữa các lĩnh vực: Cấu trúc hình cây và
thuộc tính hoặc giá trị, mối quan hệ giữa các thuộc tính, thuộc tính
ẩn, có tính trừu tượng cao… đòi hỏi phải có những thuật toán đủmạnh để giải quyết
Khả năng giải thích: Một số hệ thống KPDL yêu cầu tính giải thích
những tri thức rút được từ dữ liệu Những tri thức này được mô tảdưới dạng các tập luật, hoặc mô hình đồ thị, ngôn ngữ tự nhiên hay
sử dụng các kỹ thuật trực quan hoá dữ liệu và tri thức…
Khả năng tích hợp với các hệ thống khác: Hệ thống để đạt được
Trang 12thống khác, ví dụ như các hệ sensor đầu thu dữ liệu, các công cụbảng tính, trực quan dữ liệu.
1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu
KPDL là một lĩnh vực mới, do đó đang còn rất nhiều vấn đề chưa đuợc nghiên cứu một cách trọn vẹn Sau đây là một số hướng nghiên cứu đã và đang thu hút được sự chú ý của các nhà tin học
OLAM (OnLine Analytical Mining) - Sự tích hợp giữa CSDL, kho
dữ liệu, và KPDL Hiện nay một số hệ quản trị CSDL như Oracle,
MS SQL Server, DB2 đã tích hợp tính năng xây dựng kho dữ liệu vàphân tích trực tuyến (OLAP) Những nhà nghiên cứu trong lĩnh vựcCSDL mong muốn có một sự tích hợp giữa CSDL, kho dữ liệu vàKPDL
Khám phá được nhiều dạng tri thức khác nhau từ nhiều kiểu dữ liệu
Tính hiệu quả, tính chính xác, độ phức tạp tính toán, khả năng mởrộng và tích hợp, xử lý nhiễu và dữ liệu không đầy đủ, tính hữudụng (ý nghĩa) của tri thức
Kết hợp KPDL với tri thức cơ sở
Vấn đề song song hóa và phân tán quá trình KPDL
Ngôn ngữ truy vấn trong KPDL (Data Mining Query Language –DMQL): cung cấp cho người sử dụng một ngôn ngữ hỏi thuận tiệntương tự như SQL đối với CSDL quan hệ
Biểu diễn và trực quan hóa tri thức khai phá được sao cho gần gũivới người sử dụng Tri thức có thể biểu diễn đa chiều, đa tầng để sửdụng tri thức hiệu quả hơn
Trang 13CHƯƠNG II: PHÂN LỚP DỮ LIỆU 2.1 Bài toán phân lớp
2.1.1 Phát biểu bài toán
Cho một CSDL D = {t1,t2,…,tn}, một tập hợp các lớp C= {C1,…,Cm}, bàitoán phân lớp được phát biểu như sau: Xác định ánh xạ f : D C sao chovới mỗi ti được quy về một lớp Cj
Về mặt thực chất, bài toán phân lớp chính là chia D thành các lớp tươngđương
2.1.2 Một số ứng dụng của bài toán phân lớp
Bài toán phân lớp được ứng dụng trong hầu hết các lĩnh vực và đang là mộttrong những chủ đề mang tính thời sự của khoa học KPDL, một số lĩnh vực
Y học Xác định ung thư Hình ảnh tế bào Kết luận có ung thư
hay không?Phân loại văn
bản
Tìm kiếm thôngtin trên Internet Dữ liệu văn bản Phân loại văn bản
Sản phẩm có bị lỗihay không?
Nhận dạng
tiếng nói
Các thao tác tựđộng (bán vé máybay, đặt chỗ…)
Tín hiệu dạng
số Các từ, câu lệnh
Bảng 2.1 Một số ứng dụng của bài toán phân lớp
Trang 142.2 Các kỹ thuật phân lớp
2.2.1 Kỹ thuật sử dụng khoảng cách
a) Tiếp cận phân lớp bằng khoảng cách
Kỹ thuật sử dụng 'khoảng cách' để phân lớp mẫu được phát triển từ
rất sớm Ý tưởng của kỹ thuật này khá đơn giản:
- Đặt mẫu kiểm tra vào lớp mà 'khoảng cách' giữa mẫu thử và lớp đó
b) Thuật toán k người láng giềng gần nhất (K - Means)
Thuật toán k người láng giềng gần nhất, mỗi một mẫu với n thuộctính sẽ được mô tả bởi một vectơ n chiều, và như vậy mỗi một mẫu sẽ đượcbiểu diễn là một điểm trong không gian mẫu n chiều, tất cả các mẫu dùngcho việc huấn luyện đều được lưu trữ và biểu diễn trong không gian mẫu
Thuật toán K – Means do J.MacQueen giới thiệu năm 1967 trong tàiliệu “J Some Methods for Classification and Analysis of MultivariateObservations”
Với một mẫu cần phân lớp, thuật toán sẽ thực hiện tìm kiếm trong
không gian mẫu k mẫu có 'khoảng cách' gần với mẫu kiểm tra nhất.
Khoảng cách giữa các mẫu được tính theo cách xác định khoảng cách trongkhông gian Euclid n chiều Khoảng cách giữa hai điểm X = (x1, x2, …, xn)
và Y = (y1, y2, …, yn) trong không gian Enclid n chiều được định nghĩa:
Trang 15X d
1
2
) (
) ,
Cụ thể khoảng cách Euclidean được tính như sau:
A = {a1, a2 an} - Tập n đối tượng
aj=(xj1, xj2, xjm) j=1 n - phần tử thứ j cần phân lớp
xjs s=1 m - thuộc tính của đối tượng
ci=(ci1, ci2, cim) i=1 k - phần tử trung tâm lớp i
cjs s=1 m - thuộc tính của phần tử trung tâm i
Khoảng cách Euclidean giữa mỗi đối tượng aj đến phần tử trung tâmlớp i ci
1
2
) (
Sau đó tính lại toạ độ tâm của lớp như sau:
Clusteri = {a1, a2 at} – Nhóm thứ i
Trang 17- Khởi tạo ci i=1 k ngẫu nhiên
- Lặp
B1: Xác định khoảng cách Euclidean giữa aj j=1 n và ci i=1 ktheo công thức (2-2)
B2: Nhóm đối tượng vào cluster dựa nhỏ nhất
B3: Tính ci của mỗi nhóm theo công thức (2-3)
- Đến khi không còn đối tượng nào di chuyển từ lớp này sang lớpkhác
Bảng 2.2 Thuật toán k - means
c) Đánh giá ưu nhược điểm
Nhược điểm
Việc khởi tạo phần tử trung tâm của lớp ban đầu ảnh hưởng đến sựphân chia đối tượng vào lớp trong trường hợp dữ liệu không lớn
Số lớp k luôn phải được xác định trước.
Không xác định được rõ ràng vùng của lớp, cùng 1 đối tượng, nó cóthể được đưa vào nhóm này hoặc nhóm khác khi dung lượng dữ liệuthay đổi
Điều kiện khởi tạo có ảnh hưởng lớn đến kết quả Điều kiện khởi tạokhác nhau có thể cho ra kết quả phân vùng nhóm khác nhau
Không giống như kỹ thuật học cây quyết định hoặc mạng noron, kỹthuật khoảng cách coi các thuộc tính của đối tượng đều có trọng sốnhư nhau, điều này làm giảm hiệu quả phân lớp của thuật toán nếubài toán có số lượng thuộc tính lớn, không thực hiện được phân lớptheo những tính chất quan trọng của đối tượng trước…
Trang 182.2.2 Kỹ thuật phân lớp theo tiếp cận thống kê xác xuất
a) Lý thuyết xác xuất thống kê
Để cho tiện theo dõi, chúng tôi sẽ trình bày tóm tắt lại các khái niệm chínhtrong lý thuyết xác xuất
Định nghĩa 2.1 Xác suất của biến cố A được tính với điều kiện biến cố B
đã xảy ra gọi là xác suất có điều kiện của A, ký hiệu là P(A/B)
) (
) (
) / (
B P
B A P B A
Nếu A và B đều là các biến cố có thể (nghĩa là P(A) 0 và P(B) 0)
) ( ).
/ ( ) ( ).
/ ( )
Các tiền đề của lý thuyết xác xuất:
Để định nghĩa một cách đúng đắn ngữ nghĩa của việc trình bày lý thuyếtxác suất, chúng ta cần mô tả xác suất như thế nào và sự ảnh hưởng lẫn nhaugiữa các mối quan hệ logic Xác suất thường sử dụng một tập các tiên đề
mà chúng ràng buộc các chỉ định xác suất Các tiên đề sau đây là đủ trongthực tế:
Giá trị của các xác suất đều nằm trong khoảng từ 0 đến 1.0£P(A)£1
Các mục tiêu tất yếu đúng có xác suất là 1, các mục tiêu tất yếu sai
có xác suất là 0 P(True)=1 P(False)=0
Xác suất của các sự kiện tách rời được tính theo công thức:
P(AB) = P(A) + P(B) – P(A B)
Sự phân bố xác suất chung (The joint probability distribution)
Một mô hình xác suất của một lĩnh vực gồm một tập hợp các biếnngẫu nhiên mà chúng có thể lấy các giá trị đặc biệt với xác suất nào đó Đặtcác biến là X1 Xn Một sự kiện nguyên tử là việc phân bổ các giá trị riêngbiệt tới tất cả các biến, nói cách khác là xác định trạng thái cụ thể của mộtvùng
Trang 19Sự phân bố xác suất chung P(X1 ,….,Xn) gán xác suất cho các sự kiện
có thể P(Xi) là một vectơ có kích thước là 1 đối với không gian xác suấtcác giá trị có thể của biến Xi Khi đó một bảng có kích thước n ô với giá trịtrong mỗi ô là xác suất của một trạng thái xác định
Ví dụ: Đây là sự phân bố xác suất chung cho vùng y học chung bao gồm 2
biến logic Toothache và Cavitry
Ví dụ: P(Caviry)= 0.06+0.04= 0.10
P(Caviry Toothache) = 0.04 + 0.01 + 0.06 = 0.11
Chúng ta có thể đưa ra những suy luận về 1 mục tiêu chưa biết A, từ mụctiêu B đã cho bằng cách tính P(A|B) Xác suất có điều kiện có thể được tìmtheo công thức sau:
08 0 01 0 04 0
04 0 )
(
) (
Toothache Cavry
P Toothache Cavty
P
b) Thuật toán phân lớp Bayesian
Như đã giải thích, điểm mấu chốt của các thuật toán phân lớp là phảiphân cụm các phần tử với nhau Điều đó có nghĩa là xuất phát từ một tậphợp các điểm, thuật toán sẽ cố gắng đưa ra một tập các tập con có thể phủ
Trang 20kín toàn bộ không gian (hay còn gọi là phân hoạch) sao cho việc tạo các tậpcon càng đơn giản càng tốt
Một vấn đề đặt ra là làm thế nào để xác định một đối tượng thuộcvào một lớp nào đó khi chỉ kiểm tra vectơ thuộc tính của nó là rất khó.Thực tế là, sự khác biệt giữa vectơ thuộc tính của đối tượng và vectơ thuộctính của lớp để biết được đối tượng thuộc lớp nào, sự khác biệt này khiếncho việc có được một biến cố chắc chắn là rất khó khăn Đây chính là điểmgiải thích tại sao các phương pháp tiếp cận theo hướng thống kê lại được sửdụng rộng rãi
Thuật toán phân lớp Bayesian là một trong những thuật toán phânlớp điển hình nhất trong khai thác dữ liệu và tri thức Ý tưởng chính củathuật toán là tính xác suất có điều kiện của sự kiện c thuộc lớp x theo sựphân loại dựa trên xác suất có trước của sự kiện c thuộc lớp x trong điềukiện T
( | , ) ( | ) )
Giả sử có N lớp tài liệu: C1, C2,…,Cn
Mỗi lớp Ci có xác suất p(Ci) và ngưỡng CtgTshi
Gọi p(C| Doc) là xác suất để tài liệu Doc thuộc lớp C
Cho một lớp C và một tài liệu Doc, nếu xác suất p(C|Doc) tính đượclớn hơn hoặc bằng giá trị ngưỡng của C thì tài liệu Doc sẽ thuộc vào lớp C
Tài liệu Doc được biểu diễn như một vectơ có kích thước là số từkhoá trong tài liệu Mỗi thành phần chứa một từ trong tài liệu và tần xuấtxuất hiện của từ đó trong tài liệu Thuật toán được thực hiện trên tập từvựng V, vectơ biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tínhtoán p(C|Doc) và quyết định tài liệu Doc sẽ thuộc lớp nào
Xác suất p(C | DOC) được tính theo công thức sau:
Trang 21Doc F
Doc F TF j
C F P C
P
C F P C
P Doc
) , (
))
| ( (
* ) (
)
| (
* ) ( )
j j
C F TF V
C F TF C
F P
1
)
| (
|
|
) , ( 1 )
| (
Công thức F(Fi | C) được tính sử dụng ước lượng xác suất Laplace
Sở dĩ có số 1 trên tử số của công thức này để tránh trường hợp tần suất của
từ Fi trong lớp C bằng 0, khi Fi không xuất hiện trong lớp C
Để giảm sự phức tạp trong tính toán và giảm thời gian tính toán,chúng ta có nhận xét rằng, không phải tài liệu Doc đã cho đều chứa tất cảcác từ trong tập từ vựng V Do đó, TF(Fi | DOC) = 0 khi từ Fi thuộc Vnhưng không thuộc tài liệu Doc, nên ta có (P(Fj | C))TF(Fj, Doc) = 1 Như vậycông thức (2-7) sẽ được viết lại như sau:
(2-9)Với:
Trang 22Như vậy trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng
mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc
c) Mạng tin cậy Bayesian
Trong phần trên, chúng ta đã thấy rằng sự phân bổ xác suất có thểgiải quyết trả lời bất kỳ câu hỏi nào về vùng, nhưng có thể trở nên rất phứctạp khi số lượng các biến cố quá nhiều Hơn nữa, việc xác định rõ xác suấtnguyên tử là không thực tế và rất khó khăn ngoại trừ một số lượng lớn cácgiá trị dữ liệu được tập hợp bởi các ước lượng thống kê
Ngoài ra, trong nội dung luật Bayes, mối quan hệ độc lập có điều kiệngiữa các biến cố có thể làm đơn giản việc tính toán của các kết quả và giảmphần lớn số lượng các giả thuyết xác suất cần được chỉ rõ Chúng ta sửdụng một cấu trúc dữ liệu gọi là mạng tin cậy (Belief network) để diễn tả
sự phụ thuộc giữa các biến và đạt được sự đặc tả ngắn gọn sự phân bổ xácsuất Một mạng tin cậy là một đồ thị với các quy ước sau:
Một tập các biến ngẫu nhiên tạo nên các nút trên mạng
Một tập các đường liên kết trực tiếp hoặc các mũi tên nối kết giữacác cặp nút Theo nghĩa trực diện (nghĩa đen) một đường nối từ nút
X đến nút Y nghĩa là X ảnh hưởng trực tiếp đến Y
Mỗi nút có 1 bảng xác suất có điều kiện xác định số lượng nhữngkết quả mà nút cha gửi về Những nút cha của 1 nút là những nút cómũi tên chỉ đến nút đó
Đồ thị không có chu trình
Điều đó thường dễ dàng cho việc quyết định những mối quan hệ nàophụ thuộc trực tiếp trong các vùng thực tế, nó dễ dàng hơn nhiều so với bảnthân nó Khi Topo của mạng tin cậy đã được chỉ rõ, chúng ta chỉ cần đặc tảđiều kiện xác suất cho các nút trong sự phụ thuộc trực tiếp, và sử dụngchúng để tính bất kỳ giá trị xác suất khác Topo của mạng có thể được coi
là tri thức cơ bản trừu tượng chứa đựng các ý tưởng đa dạng khác nhau, vì
Trang 23nó diễn tả cấu trúc chung của các thủ tục nguyên do trong vùng đúng hơnbất kỳ chi tiết nào của phần lớn các cá thể
Tuy nhiên, không chỉ xác định topo của mạng tin cậy, chúng ta cầnphải đặc tả bảng điều kiện xác suất (ký hiệu là CPT - ConditionalProbability Table) cho mỗi nút trên mạng Mỗi một dòng trong bảng chứagiá trị điều kiện xác suất của mỗi nút với những điều kiện có thể xảy ra.Một điều kiện có thể được mô tả bằng giá trị của nút cha Ví dụ, bảng điềukiện xác suất cho biến chuông báo động ngẫu nhiên khi có trộm hoặc độngđất có thể được mô tả dưới đây:
Burglary
Earthqake
P(Alarm|Burglary,Earthqake)
Ý nghĩa hình học của mạng tin cậy
Có hai cách để hiểu ý nghĩa của mạng tin cậy Thứ nhất, xem mạngnhư là sự trình bày sự phân bố xác suất Thứ hai, xem mạng như một minhhoạ tập hợp các trạng thái tình thái độc lập Cả hai cách nhìn là tươngđương, nhưng cách thứ nhất đưa đến sự hướng dẫn dễ hiểu hơn về cấu trúc
Trang 24mạng, còn cách thứ hai thì hướng dẫn sâu hơn về cách thiết kế các thủ tụcảnh hưởng
Theo quan điểm xem mạng là sự trình bày sự phân bố xác xuất: Mộtmạng tin cậy cung cấp một mô tả hoàn chỉnh của một vùng Mỗi mục trongbảng phân bố xác suất có thể được tính toán từ các thông tin ở trong mạng.Mỗi một mục chung trong bảng phân bố chung là xác suất sự kết nối đặcbiệt tới mỗi biến, như là: P(X1=x1 …. Xn=xn) Chúng ta sử dụng ký hiệuP(x1,…,xn) để rút ngắn cho ký hiệu trên Giá trị xác suất của các mục vàođược tính bởi công thức:
)) (
| ( )
, , (
1
n i i
n P x Parents X x
Một phương pháp xây dựng mạng tin cậy
Đẳng thức (2-10) xác định ý nghĩa của mạng tin cậy Tuy nhiên, nókhông giải thích cách xây dựng mạng tin cậy, do đó sự phân bố xác suấtcuối cùng là một sự biểu diễn khái niệm vùng tốt nhất Bây giờ, chúng taxem xét đẳng thức 2-10 và chỉ ra mối quan hệ độc lập có điều kiện chắcchắn có thể được sử dụng cho các kỹ sư xây dựng trong mô hình mạng.Đầu tiên, chúng ta viết lại các xác suất điều kiện sử dụng định nghĩa xácsuất điều kiện:
P(x1,…,xn) = P(xn | xn-1 ,…,x1) P(xn-1,….,x1) (2-11)Tiếp theo chúng ta lặp lại các thủ tục, giảm dần số lượng các biến cố xácsuất, cuối cùng lấy tích của chúng:
x
P
) , ,
|
Trang 25So sánh với đẳng thức (2-10) chúng ta thấy rằng sự đặc tả trong cácnút trong mạng là tương đương, do vậy ta có công thức:
P(Xi | Xi-1 ,…, X1) = P(Xi / Parents (Xi)) (2-13)Trong đó: Parents(Xi) {xi-1,….,x1} Điều kiện cuối cùng này dễdàng được thoả mãn bởi việc gán nhãn thứ tự bất kỳ phù hợp với bộ phậnsắp đặt ẩn trong cấu trúc đồ thị
Đẳng thức trên chỉ ra rằng mạng tin cậy trình diễn đúng vùng chỉ khimỗi nút biểu diễn độc lập tiền nhiệm theo trật tự của nút đưa đến bởi cha
nó Từ đây, để xây dựng một mạng tin cậy với cấu trúc sửa lỗi cho vùng,chúng ta cần phải chọn các nút cha cho mỗi nút có đặc tính của nút này.Bằng trực giác, các nút cha của nút Xi phải chứa tất cả các nút X1 ,… , Xi-1
có ảnh hưởng trực tiếp đến Xi
Thủ tục tổng quát cho việc xây dựng mạng được tiến hành như sau:
1 Chọn tập các biến có liên quan Xi để mô tả miền
2 Chọn thứ tự cho các biến
3 Trong khi còn các biến (duyệt từ đầu đến hết) thì:
(a) Lấy một biến Xi và thêm vào 1 nút vào mạng
(b) Đặt Parents(Xi) tới tập tối thiểu của các nút đã có ở trên mạngvới điều kiện đặc tính độc lập thống kê
(c) Định nghĩa bằng điều kiện xác suất cho nút Xi
Bởi vì mỗi nút chỉ kết nối với những nút trước đó, phương pháp nàybảo đảm rằng mạng không có hiện tượng nối vòng Một đặc tính quantrọng nữa của mạng tin cậy là không bao hàm việc dư thừa các giá trị xácsuất, nghĩa rằng không thể xảy ra cho hệ tri thức tạo ra mạng tin cậy màxâm phạm các tiên đề xác suất
Trang 26Bảng mô tả điều kiện có thể
Thậm chí với số nhỏ thực sự các nút cha, một bảng điều kiện có thểcủa một nút vẫn yêu cầu rất nhiều số Điền vào trong bảng sẽ xuất hiện cácyêu cầu sắp xếp tốt thời gian và cũng nhiều các kỹ năng với tất cả cáctrường hợp điều kiện có thể Thực tế, đây là chuỗi sự kiện trường hợp xấunhất nơi quan hệ giữa các nút cha và nút con là hoàn toàn độc đoán Thôngthường, như các quan hệ dẫn tới 1 nút của vài trường hợp có sự phù hợpvới phân bố tiêu chuẩn, nó làm thoả mãn vài trường hợp mẫu Trong nhữngtrường hợp này, để hoàn thành bảng cần phải đặc tả tên của các mẫu và cólẽ cung cấp thêm một vài tham số
Ví dụ đơn giản nhất là các nút tiền định Một nút tiền định là nút cógiá trị được xác định chính xác bởi giá trị của các nút cha, những giá trịchắc chắn Quan hệ có thể là một logic - Ví dụ, quan hệ giữa các nút chaCanadian, US, Mexican và nút con NorthAmerican là đơn nơi con tách rờicác cha Quan hệ cũng có thể là số - Ví dụ, nếu các nút cha là giá của môhình cá biệt của ô tô ở các nhà bán buôn, và nút con là giá của người tiêudùng cuối cùng phải trả, thì nút con là giá trị nhỏ nhất của các giá trị nútcha; hoặc nếu các nút cha dẫn đến (các con sông) các hồ chứa từ các hồkhác và con là sự thay đổi của các loại hồ, thế thì con là sự khác nhau giữaviệc chảy đến và chảy đi của các nút cha
Quan hệ không chắc chắn thường được đặc trưng bởi cách gọi làquan hệ logic (noisy) Ví dụ chuẩn là cách gọi là quan hệ noisy-OR với đặctính chung của Logic OR Mô hình noisy-OR thêm vài tính không chắcchắn vào xấp xỉ logic chặt chẽ này Mô hình tạo ra ba chấp nhận đúng Thứnhất, nó chấp nhận rằng mỗi mệnh đề có một sự thay đổi độc lập với cácmệnh đề tác động Thứ hai, nó chấp nhận rằng tất cả các mệnh đề có thểđược liệt kê Thứ ba, nó chấp nhận rằng những hạn chế thậm chí xảy ra
Trang 27Một cách tổng quát, quan hệ logic nhiễu trong các phụ thuộc biếnvới k cha có thể được mô tả sử dụng O(k) tham số với trường hợp lớn nhấtO(2k) đối với bảng xác suất điều kiện đầy đủ Điều này tạo ra sự đánh giá
và việc học dễ dàng hơn
Các quan hệ điều kiện độc lập của mạng tin cậy
Các phân tích trước đã chỉ ra rằng mạng tin cậy diễn tả điều kiện độclập của một nút và những nút trước nó, cha của nó và sử dụng sự độc lậpnày để thiết kế một phương pháp xây dựng mạng Nếu chúng ta có đượcmột mạng, có nghĩa là có thể xác định được tập nút X là độc lập với tập nútkhác là Y, đưa đến một tập các dấu hiệu nút E được không? Câu trả lời là
có và phương pháp được xác định bởi sự ngăn cách trực tiếp phụ thuộc haycòn gọi là d-ngăn cách
Đầu tiên, chúng ta sẽ nói rằng d-ngăn cách tốt như thế nào Nếu mỗiđường dẫn không trực tiếp từ 1 nút X đến 1 nút Y là d-phân cách bởi E, thì
X và Y là điều kiện độc lập xác lập bởi E Định nghĩa của d-phân cách đãđược đưa ra Chúng ta cần phải cần nhiều đến nó khi xây dựng thuật toánsuy luận Tuy nhiên, các thủ tục của việc xây dựng và sử dụng mạng tin cậykhông bao hàm việc sử dụng d-phân cách
Một tập các nút E d-phân cách hai tập của nút X và Y nếu đường dẫnkhông trực tiếp từ một nút trong X đến một nút trong Y được ngăn chặn bởi
E Một đường dẫn được ngăn chặn bởi 1 tập các nút E nếu như có một nút
Z trên đường dẫn thoả mãn 1 trong 3 điều kiện:
1 Z thuộc E và Z có 1 đường dẫn dẫn vào và một đường dẫn ra
2 Z thuộc E và Z có cả đường dẫn vào và đường dẫn ra
3 Không có nút Z hoặc không có bất kỳ nguồn gốc từ Z thuộc E và
cả 2 đường dẫn vào Z
Trang 28Sự suy luận trong mạng tin cậy
Nhiệm vụ cơ bản của bất kỳ một hệ thống suy luận xác suất là có thểtính được phân bố xác suất phía sau của tập các biến câu hỏi, đưa đến chínhxác giá trị cho các biến dấu hiệu Hai chức năng cần thiết là BELIEF-NET-TELL (mạng tin cậy trả lời) là việc thêm dấu hiệu vào mạng, và BELIFE-NET-ASK(mạng tin cậy hỏi), là việc tính toán sự phân bố khả năng tiếptheo cho các biến truy vấn
Sự suy luận tự nhiên xác suất
Chúng ta sẽ xem xét một cơ chế đơn có thể tính toán một lượng lớnbiến suy luận tin cậy dưới điều kiện không chắc chắn Trong cả hai trườnghợp, sự suy luận là chẩn đoán Nhưng mạng tin cậy thì không giới hạn suyluận chẩn đoán và trên thực tế có thể tạo ra 4 loại của suy luận:
(a) Suy luận chẩn đoán (từ kết quả của các mệnh đề)
(b) Suy luận nguyên nhân (từ nguyên nhân suy ra kết quả)
(c) Suy luận giữa các nguyên nhân (giữa các nguyên nhân đưa ra kếtluận chung) Mô hình suy luận này cũng được biết đến là phươngcách giải thích
(d) Suy luận hỗn hợp (Bao gồm 2 hoặc nhiều hơn các vấn đề)
Bên cạnh việc tính toán độ tin cậy của các biến thể truy vấn cũng đưađến xác định các giá trị biến dấu hiệu Mạng tin cậy có thể sử dụng cáccách sau:
Tạo các quyết định cơ bản dựa trên xác suất trong mạng và các tiện íchđại diện
Quyết định mỗi lần thêm các biến dấu hiệu sẽ được có khả năng theothứ tự thu được sử dụng đầy đủ các thông tin
Phân tích biểu diễn độ nhạy để hiểu diện mạo của mô hình tác độnglớn nhất trên khả năng của biến truy vấn (và do đó phải là đúng đắn)
Giải thích kết quả của suy luận xác suất đến người dùng
Trang 29Thuật toán truy vấn trả lời BELIEF-NET-ASK
Function BELIEF-NET-ASK(X) ' trả về các giá trị phân bố xác suất của X
If EVIDENCE?(X) then return 'có khả năng là điểm phân bố xác suất của X
else
calculate P(E X\y |X)
=EVIDENCE-EXCEPT(X,V) U PARENTS[X]
i i
Y
i ij
E
P( | ) ( | , ) ( | \ )
Bảng 2.3 Thuật toán backward-chaining trên cây nhiều nhánh
Suy luận trong mạng tin cậy kết nối đa
Một sơ đa đồ kết nối là một sơ đồ mà hai nút liên kết với nhau nhiều
Trang 30chịu ảnh hưởng của nhiều hơn một biến biến nguyên nhân Có 3 lớpphương pháp cơ bản của thuật toán để đánh giá các mạng đa liên kết, vớimỗi lớp sở hữu một vùng các ứng dụng.
Phương pháp tụ họp (Clustering) chuyển mạng thành khả năngtương đương cây nhiều nhánh bằng việc nối kết hợp các nút
Phương pháp điều kiện (Conditioning) được thực hiện bằng việcthuyết minh các biến trừu tượng thành các giá trị xác định và sau đóđánh giá một cây đa liên kết với mỗi giá trị xác định có thể
Phương pháp mô phỏng Stochastic (Stochastic simulation) sử dụngmạng để sinh ra một số lượng lớn các mô hình mạng bê tông của cácmiền, đó cũng bao hàm sự phân bổ của mạng Chúng sẽ đưa đến sựxấp xỉ của các đánh giá chính xác
Trong trường hợp chung, suy luận chính xác trong mạng tin cậy đượcgọi là NP-hard Nó hoàn toàn hướng thẳng để giải quyết vấn đề, bởi vìmạng tin cậy chung có thể diễn đạt vấn đề logic gợi ý (tất cả các xác suất là
1 hoặc 0) và các vấn đề logic gợi ý được biết là NT-complete Với nhữngmạng rất lớn, sử dụng xấp xỉ mô phỏng stochastic là phương pháp thườngđược chọn dùng
d) Đánh giá ưu nhược điểm
Các phương pháp theo hướng thống kê có một điểm chung là tínhthích nghi, nghĩa là phương pháp này không phụ thuộc vào lĩnh vực hay nộidung của tập dữ liệu, không phụ thuộc vào kiểu dữ liệu biểu diễn thuộc tính
và nội dung ngữ nghĩa của các thuộc tính
Là mạng phân lớp có tính hiệu quả và được sử dụng rất nhiều trongcác bài toán phân lớp văn bản, độ chính xác cao nhất trong số các kỹ thuậtphân lớp và được sử dụng trong nhiều ứng dụng do tính đơn giản trong càiđặt và tính toán
Trang 312.2.3 Cây quyết định
Cây quyết định là một công cụ mạnh và phổ biến dùng trong việcgiải quyết bài toán phân lớp và dự đoán Hiện nay, có rất nhiều các thuậttoán được sử dụng trong việc xây dựng cây quyết định, hai thuật giải hiệnnay vẫn còn được ứng dụng nhiều trong các lĩnh vực là CART và C4.5
a) Một số khái niệm cơ sở
Cho
- D = {t1, …, tn} với ti=<ti1, …, tih>
- Một lược đồ CSDL bao gồm {A1, A2, …, Ah}
- Tập các lớp C={C1, …., Cm}
Cây quyết định, hoặc cây phân lớp là cây có quan hệ với D theo các quy tắcsau:
- Mỗi nút con được gán nhãn với một thuộc tính, Ai
- Mỗi cung được gán nhãn với dự đoán gắn với thuộc tính tại nútcha
- Mỗi nút lá được gán nhãn một lớp, Cj
Trong bài toán phân lớp, bằng cách xuất phát từ gốc của cây quyếtđịnh, di chuyển dọc cây theo chiều từ trên xuống cho đến tận lá của cây,việc xác định điểm kết thúc chính là phân lớp của mẫu thử
Phương pháp thực hiện của cây quyết định là dạng điển hình của tiếpcận theo phương pháp quy nạp trong việc khám khá tri thức Để áp dụngcây quyết định trong giải quyết bài toán phân lớp, cần có các yêu cầu sauđây:
Mô tả thuộc tính-giá trị: Đối tượng phải được biểu diễn qua một tập
cố định các thuộc tính
Trang 32 Định nghĩa trước các lớp: Cây quyết định sử dụng phương pháp học
có giám sát, vì vậy tất cả các lớp đều phải được xác định trước khiphân lớp một mẫu bất kỳ
Các lớp có sự khác biệt: Mỗi một trường hợp lớp đều phải có các
quy tắc rõ ràng trong việc xác định lớp, không mập mờ, không cótính đa trị
Dữ liệu: Để đạt được hiệu quả, cần phải sử dụng hàng trăm, thậm
chí hàng nghìn mẫu huấn luyện
Một cây quyết định thực hiện cung cấp một đối tượng hoặc một trạngthái đã miêu tả bằng một tập các thuộc tính, và các đầu ra là “việc quyếtđịnh” yes/ no Vì vậy cây quyết định là hiện thân của các hàm Boolean.Những hàm có một số lượng đầu ra lớn cũng có thể được trình bày qua câyquyết định, nhưng để đơn giản, thường sử dụng với đại số Boolean Mỗinút trong cây tương ứng với một giá trị kiểm tra của các thuộc tính, và cácnhánh từ những nút được gán nhãn với giá trị phù hợp với kết quả kiểm tra.Mỗi nút lá trong cây xác định giá trị Boolean được trả về nếu lá đó đượcduyệt đến
b) Thuật toán xây dựng cây quyết định
Phần lớn các thuật toán dùng trong việc xây dựng cây quyết định đềuxuất phát chung từ một ý tưởng cơ bản, xuất phát theo hướng top – down,
sử dụng phương pháp tìm kiếm tham lam trong không gian các trạng thái
có thể của cây quyết định, xây dựng nên cây quyết định T từ tập các mẫuhuấn luyện
Trang 33Thuật toán xây dựng cây quyết định ID3
Return a decision tree
Function DECISION-TREE-LEARNING(examples, attributes, default) Inputs: exmples, Tập các mẫu
if all examples have the same classification then
return the classification
else if attribute is empty then
return MAJORITY-VALUE(examples)
else
best–CHOOSE-ATTRIBUTE(attributes, examples)
tree – a new decision tree with root test best
For each value vi of best do
examplesi - {elements of examples with best = vi}subtree–DECISION-TREE-
LEARNING(examples i ,attributes – best
MAJOTITY-VALUE(examples)) Add abrand to tree with label vi and subtree
Trang 34- Cây được khởi tạo gồm một nút, mô tả các mẫu dữ liệu huấnluyện.
- Nếu tất cả các mẫu đều thuộc cùng một lớp, nút đó trở thành nút
lá và được gán nhãn lớp (bước 2 và bước 3)
- Ngược lại, thuật toán sẽ sử dụng một khái niệm gọi là độ đothông tin thu được – information gain để chọn thuộc tính tốt nhấtcho việc phân tách trên cây quyết định Trong phiên bản của thuậttoán ID3 này, tất cả các thuộc tính đều có kiểu giá trị liệt kê, rờirạc, nếu thuộc tính có kiểu giá trị là liên tục sẽ được rời rạc hoá
- Một phân nhánh sẽ được tạo ra theo các giá trị đã biết của thuộctính đó và các mẫu sẽ được phân hoạch theo các nhánh tương ứng
- Quá trình phân hoạch, học đệ quy trên sẽ dừng khi một trong cácđiều kiện sau thoả mãn:
o Tất cả các mẫu thuộc cùng một nút sẽ được gán nhãn cùngmột lớp
o Không còn một thuộc tính nào mà trên đó các mẫu có thểphân hoạch được Trong trường hợp này, quyết định theo
đa số (majority voting) sẽ được sử dụng, chuyển nút thành
lá và gán nhãn lớp cho nút đó nếu trong mẫu huấn luyện,lớp đó chiếm đa số
o Nếu không có mẫu nào cho nhánh test-attribute = ai , trongtrường hợp này, một lá được tạo với lớp chiếm đa số trongmẫu
Ví dụ, chúng ta sẽ thực hiện các thao tác phân lớp trên cây với vấn
đề có đợi hay không đợi để đặt chỗ tại nhà hàng Mục đích ở đây là học
một việc xác định cho việc khẳng định mục tiêu WillWait (sẽ đợi), việc
Trang 35quyết định được biểu diễn như một cây quyết định, giả sử chúng ta quyếtđịnh dựa trên danh sách các thuộc tính sau:
1 Alternate: Có hay không có một nhà hàng phù hợp gần đó.
2 Bar: Có hay không có một nhà hàng với khu đợi thoải mái trong đó.
3 Fri/Sat: Đúng vào ngày thứ sáu hay thứ bảy.
4 Hungry: Chúng ta có đói hay không.
5 Patrons: Có bao nhiêu người ở trong nhà hàng, thuộc tính này nhận các
giá trị trong miền liệt kê: không có, có một số, kín nhà hàng
6 Price: Mức độ giá cả của nhà hàng.
7 Raining: Ngoài trời có mưa hay không.
8 Reservation: Chúng ta có đặt chỗ trước hay không.
9 Type: Loại nhà hàng (Pháp, Ý, Thái Lan, hay Bungari).
10 WaitEstimate: Ước lượng thời gian đợi để nhận được chỗ và phục vụ,
tính theo phút (0-10, 10-30, 30-60, > 60)
Về mặt logic, cây có thể được biểu diễn như là một sự kết hợp của những
sự liên quan không thích hợp tương ứng với những hướng đi xuyên suốt đến cuối
cây tại những node yes Ví dụ, hướng đi đối với nhà hàng đầy khách (patrons =
full) và một ước lượng thời gian đợi của chủ nhà hàng từ 10-30 phút
(WaitEstimate = 10-30 phút) khi tác nhân không đói, thì được diến tả bởi một câu
logic
r Patrons(r, full) WaitEstimate(r, 10-30) Hungry(r, N) = WillWait(r)
Trang 36Tập dữ liệu huấn luyện gồm 12 mẫu được liệt kê trong bảng:
Exampl
e
Wait
Alt Bar Fri Hun Pat Price Rain Res Type Est
X1 Yes No No Yes Some $$$ No Yes French 0-10 Yes
X5 Yes No Yes No Full $$$ No Yes French >60 NoX6 No Yes No Yes Some $$ Yes Yes Italian 0-10 Yes
X9 No Yes Yes No Full $ Yes No Burger >60 NoX10 Yes Yes Yes Yes Full $$$ No Yes Italian 10-30 No
X12 Yes Yes Yes Yes Full $ No No Burger 30-60 Yes
Bảng 2.5 Những mẫu cho lĩnh vực nhà hàng
Quá trình xây dựng cây là quá trình chúng ta tìm kiếm thuộc tính có
giá trị phân loại nhất Hình 2.1(a) cho thấy rằng thuộc tính Patrons là một thuộc tính khá quan trọng, bởi vì nếu giá trị là none or some, thì chúng ta rời bỏ những tập mà chúng ta có thể trả lời rạch ròi (No và Yes cho riêng từng trường hợp) (Nếu giá trị là Full chúng ta sẽ cần phải kiểm tra thêm).
Ở hình 2.2(b) chúng ta thấy rằng Type là thuộc tính kém quan trọng hơn,
bởi vì nó cho chúng ta 4 kết luận có thể suy ra, mỗi kết luận có vài câu trảlời khẳng định hoặc phủ định Chúng ta xem xét tất cả những thuộc tính cóthể trong phạm vi này, và chọn một thuộc tính quan trọng nhất như việckiểm tra gốc Chúng ta bỏ qua việc việc cân nhắc so sánh chi tiết về mức
độ quan trọng giữa các thuộc tính, bởi vì nó không ảnh hưởng đến thuật
toán cơ bản Bây giờ ta giả sử thuộc tính quan trọng nhất là Patrons.
Trang 37- X7, X11
+X1, X3, X6,X8 -
+X4, X12 -X2, X5, X9, X10
? Patrons
+X4, X12 -X2, X10
Y
+ -X5, X9
N
? Hungry
Hình 2.1 Sự phân chia các mẫu bởi quá trình kiểm tra các thuộc tính.
Sau khi việc kiểm tra thuộc tính đầu tiên tách ra các mẫu, mỗi mộtkết quả là một cây quyết định mới cho vấn đề học của bản thân nó, với ítmẫu và ít thuộc tính hơn Có 4 trường hợp phải xem xét cho những vấn đề
đệ qui này:
- Nếu đồng thời có một số mẫu khẳng định và phủ định, thì chọn thuộc
tính tốt nhất để tách chúng Hình 2.1(c) cho thấy thuộc tính Hungry
đang được sử dụng để tách những mẫu còn lại
- Nếu tất cả những mẫu còn lại là khẳng định (hoặc tất cả là phủ định),
thì chúng ta đã hoàn thành: chúng ta có thể trả lời Yes hoặc No Hình 2.1(c) cho thấy những mẫu này trong các trường hợp None và some.
- Nếu không có mẫu nào bị loại bỏ thì có nghĩa là không có mẫu nàođược quan sát, và chúng ta trở lại giá trị ngầm định đã được sắp đặt
từ việc phân loại phần đông tại nút cha
- Nếu không có thuộc tính nào bị loại bỏ, trừ cả hai loại mẫu khẳngđịnh và phủ định, chúng ta có một vấn đề Nó có nghĩa rằng nhữngmẫu này nhận được sự diễn tả tương tự một cách đúng đắn nhưng
Trang 38các sự phân loại khác biệt Điều này xảy ra khi một số dữ liệu khôngchính xác; chúng ta nói rằng có dữ liệu tạp nhiễu Nó cũng xảy ra khinhững thuộc tính không đưa đủ thông tin để diễn tả đầy đủ trạng thái,hoặc khi lĩnh vực thực sự không tuân theo thuyết quyết định Mộtphương pháp đơn giản bỏ qua vấn đề là chọn theo đa số.
Chúng ta tiếp tục áp dụng thuật toán DECISION-TREE-LEARNING chođến khi chúng ta nhận được cây hiển thị ở hình 2.2
Hình 2.2 Cây quyết định nhận được từ tập đào tạo 12 mẫu
Việc đánh giá thuật học là tốt nếu nó đưa ra các giả thuyết mà thựchiện công việc dự đoán tốt sự phân loại các mẫu không thấy Chúng ta sẽxem một phương pháp luận đánh giá chất lượng dự đoán theo cơ sở lậpluận
Hiển nhiên, một dự đoán là tốt nếu nó đưa ra là đúng, do vậy chúng
ta có thể đánh giá chất lượng của các giả thuyết bằng việc kiểm tra những
Trang 39dự đoán của nó dựa vào sự phân loại chính xác một khi chúng ta biết nó.
Chúng ta thực hiện điều này trên một tập các mẫu đã biết như tập kiểm tra.
Nó thích hợp hơn theo hệ phương pháp dưới đây:
1 Sưu tập một số lượng lớn các mẫu
2 Chia nó thành 2 tập tách rời: tập đào tạo và tập kiểm tra
3 Sử dụng thuật toán học với tập đào tạo như các mẫu để sinh ra một
Kết quả của hệ phương pháp này là một tập dữ liệu có thể được xử lý
để đưa ra chất lượng dự đoán trung bình như một hàm theo kích thước củatập đào tạo
c) Đánh giá các thuật toán học cây quyết định
Ưu điểm
Các cây quyết định có thể dễ dàng trích rút các luật dễ hiểu: đây là
ưu điểm mạnh nhất của kỹ thuật này Nếu một lĩnh vực phức tạp cóthể phân tích để chuyển phân lớp về cách xác định miền có dạnghình chữ nhật thì cây quyết định có thể có kích thước rất lớn, phứctạp nhưng vẫn đảm bảo tính hiệu quả cao Ngoài ra, do rất dễ dàngtheo dõi một đường đi từ gốc đến một nút lá, mà thực chất là quátrình suy diễn thì việc giải thích cho các kết luận của cây quyết địnhthực hiện không quá khó khăn Vì vậy, cây quyết định rất thích hợp
để giải quyết các bài toán đòi hỏi tính giải thích cao, ví dụ như hệchẩn đoán bệnh…
Trang 40 Cây quyết định giải quyết bài toán phân lớp mà không yêu cầu nhiềutính toán Trong thực hành, các thuật toán sinh cây chỉ yêu cầu một
hệ số phân nhánh và một số phép kiểm tra đơn giản tại từng nút Cácthao tác thông thường tại các nút bao gồm phép so sánh các số, thiếtlập quan hệ và tạo kết nối đơn giản, khi cài đặt các thao tác này trênmáy tính, chỉ cần các phép toán so sánh và phép toán số học nguyên,nên tốc độ thực hiện rất nhanh, chi phí thấp
Cây quyết định có thể áp dụng cho các dữ liệu có kiểu liên tục hoặckiểu liệt kê Kiểu liệt kê là một vấn đề khó khăn cần giải quyết đốivới các kỹ thuật thống kê hoặc mạng neural
Cây quyết định chỉ rõ mô hình học rất rõ ràng khi xác định nhữngthuộc tính quan trọng nhất trong quá trình phán đoán và phân lớp
Hạn chế
Tính hiệu quả của mô hình cây quyết định không cao trong các bàitoán ước lượng với mục tiêu là phỏng đoán giá trị của các đại lượngkiểu liên tục, ví dụ lợi nhuận kinh doanh thu được, nhịp tim của bệnhnhân… Cây quyết định cũng gặp khó khăn khi xử lý dữ liệu chuỗithời gian (time – series data) để dự đoán xu hướng của các mẫu tiếptheo trong khai phá mẫu
Độ tin cậy không cao với phân lớp nhiều lớp: một vài thuật toán học
cây quyết định chỉ có thể thực hiện tốt nếu giải quyết bài toán códạng đầu ra nhị phân (yes/no, accept/reject) Lỗi khi phân lớp sai sẽtăng nhanh nếu cây có quá nhiều mức and/or với nhiều nhánh tạitừng nút
Chi phí tính toán và lưu trữ khi huấn luyện cao: quá trình xây dựngcây là một quá trình tương đối mất nhiều chi phí trong tính toán vàlưu trữ Tại mỗi nút, từng thuộc tính ứng cử viên để phân tách phảiđược lưu trữ trước khi thuộc tính tốt nhất để phân nhóm tìm ra