Được sự gợi ý của Thầy PGS TS Đỗ Phúc, tơi xin thực hiện đề tài "Tìm hiểu khả năng phân lớp dữ liệu với WEKA” nhằm khai thác WEKA và các chức năng của WEKA, WEKA API được sử dụng trong v
Trang 1LỜI MỞ ĐẦU 4
Chương I Các phương pháp và kỹ thuật Data Mining 5
1.1 Data Mining là gì? 5
1.2 Các phương pháp khai phá dữ liệu 6
Phương pháp quy nạp (Induction) 6
Cây quyết định và luật 6
Phát hiện các luật kết hợp 7
Gom cụm (clustering) 9
Mạng neuron 10
Chương II Phân Lớp Trong Khai Phá Dữ Liệu 12
1.1 Phân lớp trong khai phá dữ liệu 12
Phân lớp dữ liệu 12
Các vấn đề liên quan đến phân lớp dữ liệu 16
Các phương pháp đánh giá độ chính xác của các mô hình phân lớp 18
1.2 Phân lớp dữ liệu với cây quyết định 20
Giới thiệu 20
Trang 2 Rút gọn cây quyết định và tập luật suy dẫn 27
1.3 Phương pháp phân lớp bayes 27
Sự phân hoạch và cơng thức Bayes 27
Bộ phân lớp naive bayes 28
Chương III Giới Thiệu Weka Và Khả Năng Phân Lớp Của Nĩ 31
1.1 Giới thiệu Weka 31
1.2 Những đặc điểm chính của Weka 31
1.3 Những khái niệm cơ bản 32
DataSet 32
Classifier 33
Weka.filters 34
weka.classifiers 35
1.4 Thực hiện bài tốn phân lớp với Weka 39
Phân lớp với thuật tốn C4.8 40
Phân lớp với thuật tốn Nạve Bayes 46
1.5 Phân lớp với Weka API 51
Classification 51
Building a classifier 51
Trang 2
Trang 3 Cross-validation 51
Statistics 52
Chương IV Cài Đặt Và Thử Nghiệm 53
1.1 Giới thiệu dataset bank marketing 53
1.2 Cách sử dụng Weka để phân lớp 54
1.3 Demo sử dụng Weka Api để phân lớp 57
1.4 Một số source code chính Chương Trình 59
KẾT LUẬN VÀ KIẾN NGHỊ 62
Chương V TÀI LIỆU THAM KHẢO 63
Trang 4LỜI MỞ ĐẦU
Trong quá trình học mơn khai phá dữ liệu và kho dữ liệu, được sự giảng dạy và hướng dẫn của Thầy PGS TS Đỗ Phúc, tơi đã được Thầy giới thiệu về các thuật tốn được sử dụng trong Data Mining Được sự gợi ý của Thầy PGS TS Đỗ Phúc,
tơi xin thực hiện đề tài "Tìm hiểu khả năng phân lớp dữ liệu với WEKA” nhằm
khai thác WEKA và các chức năng của WEKA, WEKA API được sử dụng trong việc phân lớp dữ liệu Bài viết nghiên cứu sâu về 2 thuật thốn Tree J48 và Nạve Bayes trong WEKA và WEKA API
Xin chân thành cám ơn Thầy PGS TS Đỗ Phúc đã tận tình giảng dạy, định hướng
và hướng dẫn tơi trong suốt mơn học “Nhà kho và khai phá dữ liệu”
Học viên
Nguyễn Xuân Nghề
Trang 4
Trang 5Chương I Các phương pháp và kỹ thuật
Data Mining
1.1 Data Mining là gì?
Khai phá dữ liệu (Data mining) là một khái niệm ra đời vào những năm cuối của thập kỷ 80 Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữliệu 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 hình có tính chính quy (regularities) trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để
chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu từ dữ liệu
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 (pattern) có ý nghĩa dưới dạng biểu diễ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,…)
Trang 61.2 Các phương pháp khai phá dữ liệu
Quá trình khai phá dữ liệu là quá trình phát hiện mẫu trong đó giải thuật khai phá
dữ liệu tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, cây phân lớp, hồi quy, phân nhóm,…
Phương pháp quy nạp (Induction)
Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọng hơn cũng
có thể được suy diễn từ kho thông tin đó Có hai việc chính để thực hiện việc này
là suy diễn và quy nạp
- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông
tin trong cơ sở dữ liệu Ví dụ như toán tử liên kết áp dụng cho hai bảng quan
hệ, bảng đầu chứa thông tin về các nhân viên và các phòng ban, bảng thứ hai chứa thông tin về các phòng ban và các trưởng phòng Như vậy sẽ suy ra mối quan hệ giữa các nhân viên và trưởng phòng Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn
- Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra
từ cơ sở dữ liệu Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng trong cơ sở dữ liệu Phương pháp này liên quan đến việc tìm kiếm các mẫu trong cơ sở dữ liệu
Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật
Cây quyết định và luật
- Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản nhằm
phân các đối tượng dữ liệu thành một số lớp nhất định Các nút của cây được gán nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các
Trang 6
Trang 7thuộc tính, các lá miêu tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với giá trị của thuộc tính của đối tượng tới lá Hình 3.10 mô tả một mẫu đầu ra có thể của quá trình khai phá dữ liệu khách hàng xin vay vốn.
- Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý nghĩa về
mặt thống kê Các luật có dạng Nếu P thì Q với P là mệnh đề đúng với phần
dữ liệu trong cơ sở dữ liệu, Q là mệnh đề dự đoán Ví dụ ta có một mẫu phát hiện được bằng phương pháp tạo luật: Nếu giá 1 cân táo thấp hơn 5000 đồng thì số lượng táo bán ra sẽ tăng 5% Những luật như thế này được sử dụng rất rộng rãi trong việc miêu tả tri thức trong hệ chuyên gia Chúng có thuận lợi là
dễ hiểu đối với người sử dụng
Cây quyết định và luật có ưu điểm là hình thức miêu tả đơn giản, mô hình suy diễnkhá dễ hiểu đối với người sử dụng Tuy nhiên, giới hạn của nó là miêu tả cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn cả về độ chính xác của mô hình Cho đến nay, đã có rất nhiều giải thuật suy diễn sử dụng các luật và cây quyết định được áp dụng trong máy học và trong thống kê
Phát hiện các luật kết hợp
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở dữ liệu 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 Ta có thể lấy một số ví dụ đơn giản về luật kết hợp như sau: Sự kết hợp
Trang 8giữa hai thành phần A và B có nghĩa là sự xuất hiện của A trong bản ghi kéo theo
sự xuất hiện của B trong cùng bản ghi đó: A B
Cho một lược đồ R = {A1,…Ap} các thuộc tính với miền giá trị {0,1}, và một quan hệ r trên R Một tập luật kết hợp trên r được mô tả dưới dạng X B với X R
và BR\X Về mặt trực giác, ta có thể phát biểu ý nghĩa của luật như sau: nếu một bản ghi của bảng r có giá trị 1 tại mỗi thuộc tính thuộc X thì giá trị của thuộc tính B cũng là 1 trong cùng bản ghi đó Ví dụ như ta có tập cơ sở dữ liệu về các mặt hàng bán trong siêu thị, các dòng tương ứng với các ngày bán hàng, các cột tương ứng với các mặt hàng thì giá trị 1 tại ô (20/10, bánh mì) xác định rằng bánh mì đã được bán ngày hôm đó và cũng kéo theo sự xuất hiện giá trị 1 tại ô (20/10, bơ)
Cho WR, đặt s(W,r) là tần số xuất hiện của W trong r được tính bằng tỷ lệ của các dòng trong r có giá trị 1 tại mỗi cột thuộc W Tần số xuất hiện của luật X Btrong r được định nghĩa là s(X{B},r) còn gọi là độ hỗ trợ của luật, độ tin cậy của luật là s(X{B},r)/s(X,r), ở đây X có thể gồm nhiều thuộc tính, B là giá trị không cố định Nhờ vậy mà không xảy ra việc tạo ra các luật không mong muốn trước khi quá trình tìm kiếm bắt đầu Điều đó cũng cho thấy không gian tìm kiếm có kích thước tăng theo hàm mũ của số lượng các thuộc tính ở đầu vào Do vậy cần phải chú ý khi thiết kế dữ liệu cho việc tìm kiếm các luật kết hợp
Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật X B sao cho tần số của luật không nhỏ hơn ngưỡng cho trước và độ tin cậy của luật không nhỏ hơn ngưỡng cho trước Từ một cơ sở dữ liệu ta có thể tìm được hàng nghìn thậm chí hàng trăm nghìn các luật kết hợp
Ta gọi một tập con X R là phổ biến trong r nếu thoả mãn điều kiện s(X,r)
Nếu biết tất cả các tập phổ biến trong r thì việc tìm kiếm các luật kết hợp rất dễ dàng Vì vậy, giải thuật tìm kiếm các luật kết hợp trước tiên đi tìm tất cả các tập phổ biến này, sau đó tạo dựng dần các luật kết hợp bằng cách ghép dần các tập thuộc tính dựa trên mức độ phổ biến
Trang 8
Trang 9Giải thuật tìm kiếm các luật kết hợp tạo ra số luật ít nhất phải bằng số các tập thường xuyên và nếu như một tập thường xuyên có kích thước K thì phải có ít nhất
là 2K luật kết hợp Thông tin về các tập thường xuyên được sử dụng để ước lượng
độ tin cậy của các tập luật kết hợp
Gom cụm (clustering)
Kỹ thuật phân nhóm là kỹ thuật phân chia dữ liệu sao cho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó Mối quan hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên và từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm Một kỹ thuật phân nhóm khác là xây dựng nên các hàm đánh giá thuộc tính của các thành phần như là hàm của các tham số của các thành phần Phương pháp này được gọi là phương pháp phân hoạch tối ưu (optimal partitioning) Một ví dụ ứng dụng của phương pháp phân nhóm theo độ giống nhau là cơ sở dữ liệu khách hàng, ứng dụng của phương pháp tối ưu ví dụ như phân nhóm khách hàng theo số các tham số và các nhóm thuế tối ưu có được khi thiết lập biểu thuế bảo hiểm
Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập mẫu chứa các dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở dữ liệu.Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo các tập dữ liệu ở dạng dễ hiểu hơn, đồng thời cũng cung cấp các nhóm dữ liệu cho các hoạt động cũng như công việc phân tích Đối với cơ sở dữ liệu lớn, việc lấy ra các nhóm này
là rất quan trọng
Mạng neuron
Mạng neuron là một tiếp cận tính toán mới liên quan đến việc phát triển các cấu trúc toán học với khả năng lọc Các phương pháp là kết quả của việc nghiên cứu
mô hình học của hệ thống thần kinh con người Mạng neuron có thể đưa ra ý nghĩa
từ các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để chiết xuất
Trang 10các mẫu và phát hiện ra các xu hướng quá phức tạp mà con người cũng như các kỹthuật máy tính khác không thể phát hiện được.
Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến mạng neuron Tuy mạng neuron có một số hạn chế gây khó khăn trong việc áp dụng và triển khainhưng nó cũng có những ưu điểm đáng kể Một trong số những ưu điểm phải kể đến của mạng neuron là khả năng tạo ra các mô hình dự đoán có độ chính xác cao,
có thể áp dụng được cho rất nhiều loại bài toán khác nhau đáp ứng được các nhiệm
vụ đặt ra của khai phá dữ liệu như phân lớp, phân nhóm, mô hình hoá, dự báo các
sự kiện phụ thuộc vào thời gian,…
Đặc điểm của mạng neuron là không cần gia công dữ liệu nhiều trước khi bắt đầu quá trình học như các phương pháp khác Tuy nhiên, để có thể sử dụng mạng neuron có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
Mạng neuron được đóng gói với những thông tin trợ giúp của các chuyên gia đángtin cậy và được các chuyên gia đảm bảo các mô hình này làm việc tốt Sau khi học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa được học
Trang 10
Trang 11mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu tương lai Phân lớp dự đoán giá trị của những nhãn xác định (categorical label) hay những giá trị rời rạc (discrete value), có nghĩa là phân lớp thao tác với những đối tượng
dữ liệu mà có bộ giá trị là biết trước Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục Ví dụ mô hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ,… của ngày hôm nay và các ngày trước đó Hay nhờ các luật về
xu hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về lượng mặt hàng cũng như chủng loại bày bán… Một mô hình dự đoán có thể dự đoán được lượng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về thu nhập và nghề nghiệp của khách hàng Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning),
hệ chuyên gia (expert system), thống kê (statistics) Công nghệ này cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, nhà băng, maketing, nghiêncứu thị trường, bảo hiểm, y tế, giáo dục Phần lớn các thuật toán ra đời trước đều
sử dụng cơ chế dữ liệu cư trú trong bộ nhớ (memory resident), thường thao tác vớilượng dữ liệu nhỏ Một số thuật toán ra đời sau này đã sử dụng kỹ thuật cư trú trên
Trang 12đĩa cải thiện đáng kể khả năng mở rộng của thuật toán với những tập dữ liệu lớn lên tới hàng tỉ bản ghi
Quá trình phân lớp dữ liệu gồm hai bước:
Bước thứ nhất (learning)
Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các khái niệm định trước Đầu vào của quá trình này là một tập dữ liệu có cấu trúc được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính đó Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể làcác mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay
trường hợp (case) Đầu ra của bước này thường là các quy tắc phân lớp dưới dạngluật dạng if-then, cây quyết định, công thức logic, hay mạng nơron Quá trình này
Trang 12
Trang 13được mô tả như trong hình
Hình 1 - Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp
• Bước thứ hai (classification)
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra được ước lượng Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó
Kỹ thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp
Trang 14Các mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo Độ chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế) Nếu độ chính xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu Quá vừa dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng mô hình phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập dữ liệu đó Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là chưa biết.
Hình 2 - Quá trình phân lớp dữ liệu - (b1)Ước lượng độ chính xác của mô hình
Trang 14
Trang 15Hình 3 - Quá trình phân lớp dữ liệu - (b2) Phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định tới
sự thành công của mô hình phân lớp Do vậy chìa khóa của vấn đề phân lớp dữ liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao
và có khả năng mở rộng được Trong đó khả năng mở rộng được của thuật toán được đặc biệt trú trọng và phát triển
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng trong những năm qua:
• Phân lớp cây quyết định (Decision tree classification)
• Bộ phân lớp Bayesian (Bayesian classifier)
• Mô hình phân lớp K-hàng xóm gần nhất (K-nearest neighbor classifier)
• Mạng nơron
• Phân tích thống kê
• Các thuật toán di truyền
• Phương pháp tập thô (Rough set Approach)
Trang 16 Các vấn đề liên quan đến phân lớp dữ liệu
1 Chuẩn bị dữ liệu cho việc phân lớp
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể thiếu và
có vai trò quan trọng quyết định tới sự áp dụng được hay không của mô hình phânlớp Quá trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính hiệu quả vàkhả năng mở rộng được của mô hình phân lớp Quá trình tiền xử lý dữ liệu gồm cócông việc sau:Làm sạch dữ liệu Làm sạch dữ liệu liên quan đến việc xử lý với lỗi(noise) và giá trị thiếu (missing value) trong tập dữ liệu ban đầu Noise là các lỗingẫu nhiên hay các giá trị không hợp lệ của các biến trong tập dữ liệu Để xử lývới loại lỗi này có thể dùng kỹ thuật làm trơn Missing value là những ô không cógiá trị của các thuộc tính Giá trị thiếu có thể do lỗi chủ quan trong quá trình nhậpliệu, hoặc trong trường hợp cụ thể giá trị của thuộc tính đó không có, hay khôngquan trọng Kỹ thuật xử lý ở đây có thể bằng cách thay giá trị thiếu bằng giá trịphổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trên thống
kê Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử lý với những giá trịthiếu và lỗi trong tập dữ liệu, nhưng bước tiền xử lý này có thể làm giảm sự hỗnđộn trong quá trình học (xây dựng mô hình phân lớp)
Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần thiết hay liênquan đến một bài toán phân lớp cụ thể Ví dụ dữ liệu về ngày trong tuần hoàn toànkhông cần thiết đối với ứng dụng phân tích độ rủi ro của các khoản tiền cho vaycủa ngân hàng, nên thuộc tính này là dư thừa Phân tích sự cần thiết của dữ liệunhằm mục đích loại bỏ những thuộc tính không cần thiết, dư thừa khỏi quá trìnhhọc vì những thuộc tính đó sẽ làm chậm, phức tạp và gây ra sự hiểu sai trong quátrình học dẫn tới một mô hình phân lớp không dùng được
Trang 16
Trang 17Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần thiết trongquá trình tiền xử lý Việc này đặc biệt hữu ích với những thuộc tính liên tục(continuous attribute hay numeric attribute) Ví dụ các giá trị số của thuộc tính thunhập của khách hàng có thể được khái quát hóa thành các dãy giá trị rời rạc: thấp,trung bình, cao Tương tự với những thuộc tính rời rạc (categorical attribute) nhưđịa chỉ phố có thể được khái quát hóa lên thành thành phố Việc khái quát hóa làm
cô đọng dữ liệu học nguyên thủy, vì vậy các thao tác vào/ ra liên quan đến quátrình học sẽ giảm
2 So sánh các mô hình phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn mô hình phân lớp phù hợp Việc lựachọn đó căn cứ vào sự so sánh các mô hình phân lớp với nhau, dựa trên các tiêuchuẩn sau:
Độ chính xác dự đoán (predictive accuracy)
Độ chính xác là khả năng của mô hình để dự đoán chính xác nhãn lớp của dữ liệumới hay dữ liệu chưa biết
Trang 18 Tính hiểu được (interpretability)
Tính hiểu được là mức độ hiểu và hiểu rõ những kết quả sinh ra bởi mô hình đãhọc
Tính đơn giản (simplicity)
Tính đơn giản liên quan đến kích thước của cây quyết định hay độ cô đọng của cácluật Trong các tiêu chuẩn trên, khả năng mở rộng của mô hình phân lớp đượcnhấn mạnh và trú trọng phát triển, đặc biệt với cây quyết định
Các phương pháp đánh giá độ chính xác của các mô hình phân lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó cho phép dự đoánđược độ chính xác của các kết quả phân lớp những dữ liệu tương lai Độ chính xáccòn giúp so sánh các mô hình phân lớp khác nhau Ở đây chỉ đề cập đến 2 phươngpháp đánh giá phổ biến là holdout và k-fold cross-validation Cả 2 kỹ thuật nàyđều dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu
Trong phương pháp holdout, dữ liệu đưa ra được phân chia ngẫu nhiênthành 2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra Thông thường2/3 dữ liệu cấp cho tập dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểmtra
Trang 18
Trang 19Ước lượng độ chính xác của mô hình phân lớp với phương pháp holdout
Trong phương pháp k-fold cross validation tập dữ liệu ban đầu được chiangẫu nhiên thành k tập con (fold) có kích thước xấp xỉ nhau S1, S2, …, Sk Quá trình học và test được thực hiện k lần Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu đào tạo Có nghĩa là, đâutiên việc dạy được thực hiện trên các tập S2, S3 …, Sk, sau đó test trên tập S1; tiếp tục quá trình dạy được thực hiện trên tập S1, S3, S4,…, Sk, sau đó test trên tập S2; và cứ thế tiếp tục Độ chính xác là toàn bộ số phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu
1.4 Phân lớp dữ liệu với cây quyết định
Giới thiệu
Cây quyết định gồm các nút trong biểu diễn giá trị thuộc tính, các nhánh biểu diễnđầu ra của kiểm tra, nút lá biểu diễn nhãn lớp Cây quyết định được tạo theo haigian đoạn là tạo cây và tỉa nhánh
Trong giai đoạn đang tạo cây, lúc bắt đầu tất cả các mẫu học đều nằm ở nút gốc,sau đó các mẫu học được phân chia một cách đệ quy dựa trên thuộc tính được
Trang 20chọn Bước tỉa nhánh nhằm tìm và xóa những nhánh có phần tử không thể xếp vàolớp nào cả
Bước vận hành nhằm kiểm tra những giá trị thuộc tính của mẫu đối với các giá trịtrên nhánh của cây quyết định
Thuật toán tạo cây quyết định bao gồm các bước sau:
Bước 1: cây được xây dựng đệ quy từ trên xuống và theo cách chia để trị.
Bước 2: ban đầu tất cả mẫu học đều nằm ở gốc.
Bước 3: thuộc tính được phân loại(nếu là giá trị liên tục được rời rạc hóa)
Bước 4: các mẫu học được phân chia đệ quy dựa trên thuộc tính chọn lựa.
Bước 5: kiểm tra những thuộc tính được chọn dựa trên heristic hoặc của một tiêu
chuẩn thống kê
Điều kiện để dừng phân chia tập học:
1.tất cả những mẫu học đối với một nút cho trước đều cùng lớp:
2.không còn thuộc tính nào để phân chia tiếp
3.không còn mẫu học
Độ lợi thông tin (information gain) là đại lượng được dùng để chọn thuộc tínhnhằm phân chia tập học Thuộc tính được chọn là thuộc tính có độ lợi thông tin lớnnhất
Cho 2 lớp P và N và tập học S Lớp P có p phần tử và lớp N có n phần tử Khốilượng thông tin cần để quyết định các mẫu trong S thuộc về lớp P hay lớp N đượcxác định bởi
Trang 20
n p
n n p
n n p
p n p
p n p
, (
Trang 21Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập S, khi sử dụng thuộc tính
A Cho mỗi Si chứa pi mẫu lớp P and ni mẫu lớp N Entropy, hay thông tin mongmuốn cần thiết để phân lớp các đối tượng trong tất cả các cây con Si là
Thông tin có được bởi việc phân nhánh trên thuộc tính A là:
Thuật toán ID3 là một thuật toán học trên cây quyết định được phát triển bới RossQuinlan (1983) Ý tưởng cơ bản của thuật toán ID3 là tạo cây quyết định bằng việc
sử dụng cách tìm kiếm từ trên xuống trên tập học Độ lợi thông tin được sử dụng
để chọn thuộc tính có khả năng phân loại tốt nhất Thuật toán ID3 được trình bàysau đây:
Thuật toán ID3(S, D, A )
Vào: Tập học S; thuộc tính quyết định D, tập thuộc tính A
Ra: Nút gốc của Cây_quyết_định
Begin
Tạo ‘Nút_gốc’ cho cây quyết định
If tất cả mẫu học của S đều có trị của D là P, trả về cây có một nút duy nhất
(
i
i i i
n p
n p A
E
) ( ) , ( ) (A I p n E A
Trang 22 If A là rỗng, trả về cây có nút duy nhất là Nút_gốc với nhãn là trị phổ biếnnhất của D trong tập mẫu
Else Begin
o Gọi X là thuộc tính của A phân lớp S tốt nhất // tính độ lợi
o Gán X vào thuộc tính quyết định D của Nút_gốc
o For each trị v của X
Thêm một nhánh cây mới dưới Nút_gốc ứng với X=v
Gọi Sv là tập con của v trị của X là v
Trang 23Thuộc tính Thờitiết có miền giá trị {Nắng, U_ám, Mưa}
Thuộc tính Nhiệtđộ có miền giá trị { Nóng, Mát, Ấm_áp}
Thuộc tính Độẩm có miền giá trị (Cao, Vừa}
Thuộc tính Gió có miền giá trị ( Có, Không}
Thuộc tính Lớp có miền giá trị (P, N}
Tính entropy cho thuộc tính thời tiết
Ta có:
E(thoitiet) = 5/14.I(2,3) + 4/14.I(4,0) +5/14.I(3,2) = 0.694
Nên Gain(thoitiet) = I(9,5) – E(thoitiet) = 0.246
Gain(Nhietdo) = 0.029
Gain(DoAm) = 0.151
Gain(Gio) = 0.048
Tập dữ liệu học “Chơi tennis”
Trang 24Nắng Nóng Cao Không N
Chọn thuộc tính có độ lợi thông tin lớn nhất đó là “Thờitiết”
Áp dụng ID3 cho mỗi nút con của nút gốc này cho đến khi đạt đến nút lá hoặc nút
Trang 25Cây quyết định
Rút luật từ cây quyết định:
Mỗi một đường dẫn từ gốc đến lá trong cây tạo thanh một luật
Mỗi cặp giá trị thuộc tính trên một đường dẫn tạo nên một sự liên kết
Nút lá giữ quyết định phân lớp dự đoán
Các luật tạo được dễ hiểu hơn các cây
Rút luật từ cây quyết định
IF Thơitiết = Nóng AND ĐộẨm = Vừa THEN Chơi tennis
Thuật toán ID3 có các khuyết điểm sau đây:
a) Thiếu sót thứ nhất: Một thiếu sót quan trọng của ID3 là hết khả năng phân
Trang 26b) Thiếu sót thứ hai: ID3 đòi hỏi số mẫu học lớn Khả năng khắc phục nhiễu
của tập học là vô cùng quan trọng khi ứng dụng thuật giải ID3 Nếu cónhiễu và tập học không lớn thì ID3 có thể dẫn đến kết quả sai
Có nhiều dạng mở rộng thuật toán ID3 như:
Thuật toán ID3 được mở rộng trong trường hợp tập mẫu có thuộc tính liêntục Lúc đó, cần phân chia thuộc tính liên tục thanh một tập rời rạc cáckhoảng
Đối với các mẫu học có một số thuộc tính chưa có giá trị được thực hiệnbằng cách gán giá trị thông dụng nhất của thuộc tính hoặc gán khả năng cóthể có với từng giá trị khả dĩ
C4.5 là phiên bản của thuật toán ID3 trên một số khía cạnh sau:
Trong bước xây dựng cây quyết định, tập học có những bản ghi với những giá trịthuộc tính chưa biết Lúc đó chúng ta chỉ tạo mô hình dựa trên các bản ghi đã xácđịnh đầy đủ giá trị thuộc tính Trong bước vận hành cây quyết định, có thể phânloại những bản ghi có những giá trị thuộc tính chưa biết bằng việc ước lượng xácsuất những kết quả có khả năng xảy ra Trong ví dụ chơi tennis nếu có một bảngghi chưa biết giá trị của thuộc tính ĐộẨm, nhưng biết giá trị của thuộc tínhThờiTiết là Nắng ta xử lý như sau:
Di chuyển từ nút gốc ThờiTiết đến nút ĐộẨm theo cạnh được đánh nhãn là Nắng.Lưu ý, nếu thuộc tính ĐộẨm có giá trị 75 thì có 2 bản ghi, nếu thuộc tính ĐộẨm
có trị lớn hơn 75 thì có 3 bản ghi Do vậy có thể đưa ra câu trả lời cho xác suấtxảy ra khả năng là 0.4 cho chơi tennis và 0.6 cho không chơi tennis
Đối với việc rời rạc hóa thuộc tính liên tục Giả sử A là thuộc tính liên tục, thuậttoán có thể tạo một thuộc tính kiểu logic mới có tên là Ac, thuộc tính này có trịĐúng nếu A < c và trị Sai nếu A ≥ c Vấn đề đặt ra là chọn ngưỡng c Giá trị c
Trang 26
Trang 27được chọn nhằm tạo ra độ lợi lớn nhất Xét các giá trị của thuộc tính A trong tậphọc Giả sử chúng được sắp theo thứ tự tang dần là A1, A2, … Am Với từng giá trị
Ai, i=1,2,…m, ta chia các bản ghi thành 2 phần, trong đó có một phần chứa cácmẫu có giá trị thuộc tính A<c và phần còn lại chứa các mẫu có giá trị thuộc tính
A ≥ c Với những lần phân hoạch này, ta tính lại độ lợi thông tin của phép phânhoạch và tìm phân hoạch có độ lợi lớn nhất
Giả sử thuộc tính ĐộẨm trong ví dụ chơi tennis là thuộc tính liên tục Ta cần xácđịnh độ lợi thông tin cho mỗi lần phân hoạch tập học theo thuộc tính ĐộẨm vàtìm được sự phân hoạch tốt nhất tại ngưỡng c=75 Lúc đó thuộc tính ĐộẨm đượcbiến thanh thuộc tính ĐộẨm_logic với giá trị Sai cho các mẫu có giá trị của thuộctính ĐộẨm < 75 và giá trị Đúng cho các mẫu có giá trị của thuộc tính ĐộẨm ≥75
Rút gọn cây quyết định và tập luật suy dẫn
Việc xây dựng cây quyết định đều dựa vào tập học Trong thực tế cây quyết định
có thể phát sinh các đường đi dài và không đều Việc rút gọn cây quyết định đượcthực hiện bằng cách biến cây con thanh nút lá Công việc này được thực hiện tạinơi nếu lỗi phân lớp do cây con sinh ra lớn hơn nút lá Winston đã giới thiệu cáchdùng phép thử Fisher để xác định thuộc tính phân loại có thực sự phụ thuộc vàocác thuộc tính khác hay không Nếu đều này không xảy ra thì thuộc tính đó khôngcần phải xuất hiện trong đường đi hiện tại của cây quyết định Quinlan và Breiman
đề xuất những heuritis phức tạp để rút gọn cây quyết định Từ mỗi đường đi từ gốcđến lá trong cây quyết định, ta dễ dàng tạo ra vế trái của luật phân lớp dựa trênnhãn của các nút và nhãn của các cung
Trang 281.5 Phương pháp phân lớp bayes
Sự phân hoạch và công thức Bayes
Cho H1 , H2, … Hn là một phân hoạch không gian mẫu M và A là biến cố bất kỳtrong M ta có:
Các xác suất P(Hi) và P(A/Hi) thường được biết trước khi thực hiện phép thử vàđược gọi là xác suất tiên nghiệm (apriori probability) Xác suất P(A/Hi) cho biếtkhả năng tham gia của Hi vào việc xảy ra biến cố A Xác suất P(A/Hi) được gọi làxác suất hậu nghiệm (a posteriori probability) Có thể tính xác suất hậu nghiệm từcác xác suất tiền nghiệm theo công thức sau:
Định lý Bayes: Cho H1 , H2, … Hn là một phân hoạch không gian mẫu M và A làbiến cố bất kỳ trong M Khi đó với mọi i=1, …, n ta có
Bộ phân lớp naive bayes
Cho V1 , V2, … Vm là phân hoạch không gian mẫu V, mỗi Vi là một lớp khônggian các biến thể hiện X gồm các thể hiện được mô tả bởi tập thuộc tính A1 , A2,
Trang 28
Trang 29… An Khơng gian các thể hiện X là tập học Khi cĩ thể hiện mới với giá trị < a1 ,
a2, … an >, bộ phân lớp sẽ xuất giá trị hàm phân lớp f(x) là một trong các Vi
Tiếp cận Bayes lấy giá trị cĩ xác suất cao nhất VMAP cho thể hiện mới Chữ MAPviết tắt của cụm từ Maximum A Posterior
Sử dụng định lý Bayes ta cĩ:
Trong cơng thức trên cĩ hai số hạng cần quan tâm là P(vj) và P(a1 , a2, … an) Ta tính P(vj) bằng cách đếm số lần xuất hiện của giá trị đích vj trong tập học Để tính P(a1 , a2, … an) ta giả thuyết ban đầu các thuộc tính là độc lập nhau Nĩi cách khác, xác suất của một thể hiện quan sát được < a1 , a2, … an > trên mỗi lớp vj là tích các khả năng của từng thuộc tính riêng biệt trên vj
Do vậy, cơng thức trên được viết lại là:
Với NB là viết tắt của cụm từ Nạve Bayes
Trang 30Bộ phân lớp Bayes liên quan đến bước học trong đó P(vj) và P(a1 , a2, … an) được tính dựa trên tập học.
Để phân lớp ta dùng công thức :
Với ví dụ về việc chơi tennis, ta có thể tính các xác suất sau:
Cuối cùng ta có P(p)=9/14 và P(n)=5/14
Lưu ý: P(xi |C) được ước lượng như là tần suất tương đối của những mẫu có giá trị
xi của thuộc tính thứ i trong lớp C
Nếu thuộc tính thứ i là liên tục P(xi |C) được ước lượng thông qua hàm mật độ Gauss
Đối với ví dụ play-tennis ở trên, phân lớp X cho mẫu chưa tìm thấy như sau:
Trang 31P(X|n)·P(n) =
P(mưa|n)·P(nóng|n)·P(cao|n)·P(không|n)·P(n) = 2/5·2/5·4/5·2/5·5/14 = 0.018286
Mẫu X được phân vào lớp n (không chơi tennis)
Chương III Giới Thiệu Weka Và Khả Năng Phân Lớp Của Nó
1.6 Giới thiệu Weka
Weka là một tập hợp các giải thuật Data mining và những công cụ xử lý dữ liệu
Nó được thiết kế sao cho người dùng có thể nhanh chóng thử nghiệm nhữngphương pháp hiện hữu trên những tập dữ liệu mới một cách linh hoạt Nó cũng
hỗ trợ mạnh cho toàn bộ quá trình data mining, bao gồm chuẩn bị dữ liệu đầu vào,tính toán một cách chi tiết, và trực quan hóa dữ liệu đầu vào cũng như kết quả đầu
ra Ngoài việc đưa ra rất nhiều giải thuật machine learning, nó cũng cung cấp một
số lượng lớn các công cụ tiền xử lý Bộ công cụ đa dạng và toàn diện này đượctruy cập qua một giao diện chung sao cho người sử dụng có thể so sánh nhữngphương pháp khác nhau và nhận ra phương pháp nào là thích hợp nhất với bài toánđang xét
Weka được phát triển tại Trường Đại học Waikato ở New Zealand, và được đặt tên
là Waikato Environment for Knowledge Analysis (WEKA) Hệ thống này được
viết trên Java và phân phối theo các điều khoản của GNU General Public License
Nó chạy trên hầu hết các flatform, đã được test trên Linux, Windows, Macintosh
1.7 Những đặc điểm chính của Weka
Weka được xây dựng với: