Tải bản đầy đủ (.pdf) (54 trang)

khai phá dữ liệu dùng thuật toán K-mean và naive bayes trên wave

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.66 MB, 54 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
Lê Đắc Nhường
KHAI PHÁ DỮ LIỆU DÙNG THUẬT TOÁN
K-MEAN VÀ NAIVE BAYES TRÊN WEKA
HỌC PHẦN TIẾN SỸ: KHAI PHÁ DỮ LIỆU
Hà Nội - 2014
Mở đầu
Những năm gần đây, lượng thông tin được lưu trữ trên các thiết bị (như đĩa
cứng, CDROM, bằng từ ) không ngừng tăng lên. Sự tích lũy dữ liệu này xảy ra
với một tốc độ bùng nổ. Người ta ước đoán rằng lượng thông tin toàn cầu tăng
gấp đôi sau khoảng 2 năm và cùng với nó số lượng cũng như kích thước của các
cơ sở dữ liệu cũng tăng lên nhanh chóng [20].
Trong nhiều lĩnh vực, nhà quản lý đang ngập trong dữ liệu nhưng lại cảm
thấy đói tri thức và thông tin hữu ích. Lượng dữ liệu khổng lồ này đang thực sự
là một nguồn tài nguyên rất giá trị bởi thông tin là yếu tố then chốt trong các
hoạt động đặc biệt là thương mại vì nó giúp người điều hành và quản lý có một
cái nhìn sâu sắc, chính xác, khách quan trước khi đưa ra các quyết định. Khai
phá dữ liệu là khai thác những thông tin tiềm ẩn mang tính dự đoán từ những
cơ sở dữ liệu lớn là hướng tiếp cận có nhiều ý nghĩa và mang tính lịch sử. Các
kỹ thuật phát hiện tri thức và khai phá dữ liệu được thực hiện qua nhiều giai
đoạn và sử dụng nhiều kỹ thuật : phân lớp (classification),phân cụm (clustering),
phân tích sự tương tự (similarity analysis), tổng hợp (summarization), luật kết
hợp (association rules),. . .
Từ những vấn đề nêu trên, em lựa chọn đề tài “Khai phá dữ liệu với thuật
toán K-Mean và Naive Bayes trên Weka” để thực hiện chuyên đề Khai phá
dữ liệu.
i
Mục lục
Mở đầu i
Từ viết tắt iv


Danh sách hình vẽ v
Danh sách bảng vi
1 Tổng quan về Khai phá dữ liệu 1
1.1 Khai phá dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Khái niệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Kiến trúc hệ thống khai phá dữ liệu . . . . . . . . . . . . . . 3
1.2 Hướng tiếp cận và kỹ thuật khai phá dữ liệu . . . . . . . . . . . . . 4
1.2.1 Các hướng tiếp cận khai phá dữ liệu . . . . . . . . . . . . . 4
1.2.2 Một số kỹ thuật khai phá dữ liệu . . . . . . . . . . . . . . . 5
1.2.2.1 Phân lớp . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2.2 Phân cụm . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2.3 Luật kết hợp . . . . . . . . . . . . . . . . . . . . . 6
1.2.2.4 Hồi qui . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2.5 Tổng hợp . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2.6 Mô hình hóa phụ thuộc . . . . . . . . . . . . . . . 7
1.2.2.7 Phát hiện sự thay đổi và độ lệch . . . . . . . . . . 7
1.3 Thuật toán và dạng dữ liệu có thể khai phá . . . . . . . . . . . . . 8
1.3.1 Các thành phần của thuật toán khai phá dữ liệu . . . . . . . 8
1.3.2 Các dạng dữ liệu có thể khai phá . . . . . . . . . . . . . . . 9
1.4 Ứng dụng của khai phá dữ liệu . . . . . . . . . . . . . . . . . . . . 9
1.5 Những khó khăn trong khai phá dữ liệu . . . . . . . . . . . . . . . . 11
1.6 Các công cụ khai phá dữ liệu . . . . . . . . . . . . . . . . . . . . . 11
1.7 Công cụ và dataset thực nghiệm . . . . . . . . . . . . . . . . . . . . 12
1.7.1 Phần mềm Weka . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7.1.1 Giới thiệu về Weka . . . . . . . . . . . . . . . . . . 12
1.7.1.2 Khuôn dạng dữ liệu của Weka . . . . . . . . . . . . 14
1.7.1.3 Các chức năng của Weka Explorer . . . . . . . . . 14
ii
1.7.2 Các Dataset thực nghiệm . . . . . . . . . . . . . . . . . . . 18
1.7.2.1 Dataset Mushroom . . . . . . . . . . . . . . . . . . 18

1.7.2.2 Dataset Supermarket . . . . . . . . . . . . . . . . . 20
1.7.2.3 Dataset Labor . . . . . . . . . . . . . . . . . . . . 20
2 Thuật toán phân cụm k-Mean 21
2.1 Bài toán phân cụm và hướng tiếp cận . . . . . . . . . . . . . . . . . 21
2.1.1 Bài toán phân cụm . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.2 Yêu cầu đối với phân cụm dữ liệu . . . . . . . . . . . . . . . 22
2.1.3 Một số độ đo dùng trong phân cụm . . . . . . . . . . . . . . 23
2.1.4 Các hướng tiếp cận phân cụm . . . . . . . . . . . . . . . . . 24
2.1.5 Các phương pháp phân cụm . . . . . . . . . . . . . . . . . . 24
2.2 Thuật toán K-Mean . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 Thuật toán K-Mean gán cứng . . . . . . . . . . . . . . . . . 26
2.2.2 Thuật toán K-Mean gán mềm . . . . . . . . . . . . . . . . . 28
2.2.3 Đánh giá ưu nhược điểm của thuật toán K-Means . . . . . . 28
2.2.4 Một số biến thể của thuât toán K-Mean . . . . . . . . . . . 29
2.2.4.1 Thuât toán K-Mediod . . . . . . . . . . . . . . . . 29
2.2.4.2 Thuât toán k-Tâm . . . . . . . . . . . . . . . . . . 30
2.2.4.3 Thuật toán Fuzzy c-Mean . . . . . . . . . . . . . . 30
2.2.4.4 Thuât toán COP-kMeans, Seeded-kMeans, Constrained-
kMeans . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.4.5 Thuật toán k-Mean++ . . . . . . . . . . . . . . . . 31
2.3 Thực nghiệm khai phá trên Weka . . . . . . . . . . . . . . . . . . . 32
2.3.1 Khai phá cơ sở dữ liệu Supermarket . . . . . . . . . . . . . . 32
2.3.2 Khai phá cơ sở dữ liệu Labor . . . . . . . . . . . . . . . . . 33
2.3.3 So sánh K-Mean trên các dataset khác nhau . . . . . . . . . 34
3 Thuật toán phân lớp Naive Bayes 35
3.1 Bài toán phân lớp và hướng tiếp cận . . . . . . . . . . . . . . . . . 35
3.1.1 Bài toán phân lớp . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.2 Các loại phân lớp . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.3 Đánh giá độ chính xác của mô hình phân lớp . . . . . . . . 37
3.1.4 Các phương pháp phân lớp . . . . . . . . . . . . . . . . . . . 39

3.2 Thuật toán Na¨ıve Bayes . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.1 Giới thiệu thuật toán Na¨ıve Bayes . . . . . . . . . . . . . . . 39
3.2.2 Thuật toán Na¨ıve Bayes . . . . . . . . . . . . . . . . . . . . 39
3.2.3 Đánh giá ưu, nhược điểm của thuật toán Na¨ıve Bayes . . . . 40
3.3 Thực nghiệm khai phá trên Weka . . . . . . . . . . . . . . . . . . . 41
3.3.1 Khai phá cơ sở dữ liệu Mushroom . . . . . . . . . . . . . . . 41
3.3.2 Khai phá cơ sở dữ liệu Supermarket và Labor . . . . . . . . 44
Kết luận 45
Tài liệu tham khảo 46
iii
Từ viết tắt
Từ viết tắt Dạng đầy đủ Diễn giải
KDD Knowledge Discovery in Database Khai phá tri thức trong CSDL
DM Data Mining Khai phá dữ liệu
FCM Fuzzy c-Mean Thuật toán c-Mean mờ
NB Naıve Bayes Thuật toán Naive Bayes
FP False positives Khẳng định sai
FN False negatives Phủ định sai
TP True positives Khẳng định đúng
TN True negatives Phủ định đúng
iv
Danh sách hình vẽ
1.1 Quá trình khai phá dữ liệu . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Kiến trúc hệ thống khai phá dữ liệu . . . . . . . . . . . . . . . . . . 3
1.3 Ứng dụng của Khai phá dữ liệu . . . . . . . . . . . . . . . . . . . . 10
1.4 Giao diện phần mềm Weka . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Môi trường Explore của Weka . . . . . . . . . . . . . . . . . . . . . 13
1.6 Khuôn dạng dữ liệu của Weka . . . . . . . . . . . . . . . . . . . . . 14
1.7 Dataset mushroom có 23 thuộc tính và 8124 mẫu . . . . . . . . . . 18
1.8 Dataset Super Market có 217 thuộc tính và 4627 mẫu . . . . . . . . 20

1.9 Dataset Labor có 17 thuộc tính và 57 mẫu . . . . . . . . . . . . . . 20
2.1 Sơ đồ các bước thực hiện thuật toán K-Mean . . . . . . . . . . . . 26
2.2 Ví dụ thực hiện thuật toán K-Mean với n = 10, k = 2 . . . . . . . . 27
2.3 Ví dụ thực hiện thuật toán K-Mediod với n = 10, k = 2 . . . . . . . 29
2.4 Tham số của thuật toán k-Mean với cơ sở dữ liệu Supermarket . . . 32
2.5 Mở cơ sở dữ liệu Labor với Weka . . . . . . . . . . . . . . . . . . . 33
2.6 Kết quả khai phá cơ sở dữ liệu Labor sử dụng K-Mean trên Weka . 34
2.7 Hiện thị phân bố các cụm dưới dạng đồ họa . . . . . . . . . . . . . 34
3.1 Ví dụ về quá trình phân lớp . . . . . . . . . . . . . . . . . . . . . . 36
v
Danh sách bảng
1.1 Các Dataset thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 Các thuộc tính của dataset mushroom.arff . . . . . . . . . . . . . . 19
1.3 Mô tả ý nghĩa các giá trị dữ liệu . . . . . . . . . . . . . . . . . . . . 19
2.1 Ví dụ về phân cụm dữ liệu . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 So sánh hiệu quả thực thi k-Mean trong các mode khác nhau . . . . 32
2.3 So sánh k-Mean và các thuật toán khác trên dataset supermarket
với mô hình Percentage Split (66%) . . . . . . . . . . . . . . . . . . 33
2.4 Kết quả thực nghiệm k-Mean trên các dataset khác nhau trong chế
độ Full training data . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1 Ma trận nhầm lẫn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2 Phân lớp đa lớp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Thống kê tỷ lệ phân lớp dữ liệu Mushroom với số fold thay đổi . . . 42
3.4 Thống kê tỷ lệ phân lớp dữ liệu Mushroom với số % Split thay đổi . 42
3.5 So sánh hiệu quả các thuật toán phân lớp trên dữ liệu Supermarket
với mô hình Full training set và chế độ Cross-validation . . . . . . . 44
3.6 So sánh hiệu quả các thuật toán phân lớp trên dữ liệu Labor với
mô hình Full training set và chế độ Cross-validation, số Fold=10 . . 44
vi
Chương 1

Tổng quan về Khai phá dữ liệu
1.1 Khai phá dữ liệu
1.1.1 Khái niệm
Khái niệm khai phá dữ liệu (Data Mining) ra đời vào những năm cuối của
thập kỷ 1980. Nó là quá trình khám phá thông tin ẩn được tìm thấy trong các
cơ sở dữ liệu và có thể xem như là một bước trong quá trình khám phá tri thức.
Data Mining là giai đoạn quan trọng nhất trong tiến trình khai phá tri thức từ
cơ sở dữ liệu, các tri thức này hỗ trợ trong việc ra quyết định trong khoa học và
kinh doanh, Có rất nhiều quan điểm và định nghĩa khác nhau về khai phá dữ
liệu được đưa ra trong [5] như :
- Data Mining is the search for relationships and global patterns that exist in
large databases but are ’hidden’ among the vast amount of data, such as a
relationship between patient data and their medicaldiagnosis. These relation-
ships represent valuable knowledge about the database and the objects in the
database and, if the database is a faithful mirror, of the real world registered
by the database-M. Holshemier và A. Siebes.
- Tiến sĩ U.M. Fayyad với cách tiếp cận ứng dụng đã phát biểu : “Khai phá dữ
liệu, thường được xem là việc khám phá tri thức trong các cơ sở dữ liệu, là
một quá 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 qui luật, ràng buộc, qui tắc trong cơ sở dữ liệu”
- Giáo sư T. Mitchell định nghĩa trong [18] như sau : “Khai phá dữ liệu 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ư vậy có thể hiểu Khai phá dữ liệu là tiến trình khám phá tri thức tiềm ẩn
trong các cơ sở dữ liệu. Cụ thể hơn, đó là tiến trình trích lọc, sản sinh những tri
thức hoặc các mẫu tiềm ẩn, chưa biết nhưng hữu ích từ cơ sở dữ liệu lớn. Tóm lại,
1
Chương 1. Tổng quan về Khai phá dữ liệu 2
Khai phá dữ liệu là một quá trình học tri thức mới từ những dữ liệu đã thu thập
được [9, 12, 19].

Khai phá dữ liệu là tiến trình khái quát các sự kiện rời rạc trong dữ liệu
thành các tri thức mang tính khái quát, tính quy luật hỗ trợ tích cực cho các tiến
trình ra quyết định. Khai phá dữ liệu là việc trích rút tri thức một cách tự động
và hiệu quả từ một khối dữ liệu rất lớn. Tri thức đó thường ở dạng các mẫu tin
có tính chất không tầm thường, không tường minh (ẩn-unsuspected), chưa được
biết đến và có tiềm năng mang lại lợi ích. Để hình dung vấn đề này ta có thể
sử dụng một ví dụ đơn giản như sau : Khai phá dữ liệu được ví như tìm một
cây kim trong đống cỏ khô. Khi đó, cây kim là một mảnh nhỏ tri thức hoặc một
thông tin có giá trị và đống cỏ khô là một kho cơ sở dữ liệu rộng lớn. Như vậy,
những thông tin có giá trị tiềm ẩn trong kho cơ sở dữ liệu sẽ được chiết xuất ra
và sử dụng một cách hữu ích nhờ khai phá dữ liệu. Chức năng khai phá dữ liệu
gồm có gộp nhóm phân loại, dự báo, dự đoán và phân tích các liên kết. Sau đó,
Fayyad, Smyth và Piatestsky-Shapiro đã dùng khái niệm Phát hiện tri thức từ
cơ sở dữ liệu(Knowledge Discovery in Database-KDD) [5] : Knowledge discovery
in databases, also known Data mining, is the nontrivial process of identifying valid,
novel, potentially useful, and ultimately understandable patterns in data. Trong đó,
khai phá dữ liệu là một giai đoạn rất đặc biệt trong toàn bộ quá trình, nó sử dụng
các kỹ thuật để tìm ra các mẫu từ dữ liệu và là cốt lõi của quá trình phát hiện tri
thức. Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật
ngữ khác có ý nghĩa tương tự như : khai phá tri thức từ cơ sở dữ liệu (Knowlegde
mining from databases), trích lọc dữ liệu (Knowlegde extraction), phân tích dữ
liệu/mẫu (Data/pattern analysis), khảo cổ dữ liệu (Data archaeology), nạo vét dữ
liệu (Data dredging)
Các thuật toán khai phá dữ liệu thường được mô tả như những chương trình
hoạt động trực tiếp trên tệp dữ liệu. Với các phương pháp học máy và thống kê
trước đây, bước đầu tiên là thuật toán thường nạp toàn bộ file dữ liệu vào trong
bộ nhớ. Khi chuyển sang các ứng dụng công nghiệp liên quan đến việc khai phá
các kho dữ liệu lớn, mô hình này không thể đáp ứng được. Không chỉ bởi nó không
thể nạp hết dữ liệu vào trong bộ nhớ mà còn khó có thể chiết xuất dữ liệu ra các
tệp đơn giản để phân tích. Quá trình khai phá dữ liệu sẽ tiến hành qua các giai

đoạn như Hình 1.1.
Bắt đầu bằng việc xác định chính xác vấn đề cần giải quyết. Sau đó sẽ xác
định dữ liệu liên quan dùng để xây dựng giải pháp. Tiếp theo là thu thập dữ liệu
có liên quan và xử lý chúng thành dạng sao cho thuật toán khai phá dữ liệu có
thể hiểu được.
- Bước 1 : Lọc dữ liệu được thực hiện trong quá trình tiền xử lý. Công việc
đầu tiên là tích hợp và chỉnh sửa dữ liệu. Khi dữ liệu được thu thập từ nhiều
nguồn khác nhau nên có thể có những sự sai sót, dư thừa và trùng lặp. Lọc
Chương 1. Tổng quan về Khai phá dữ liệu 3
Hình 1.1 – Quá trình khai phá dữ liệu
dữ liệu là cắt bỏ những dư thừa để dữ liệu được định dạng thống nhất. Dữ
liệu sau khi lọc và chỉnh sửa sẽ nhỏ hơn, xử lý nhanh chóng hơn.
- Bước 2 : Khai phá dữ liệu, là công việc chính, sử dụng các thuật toán khác
nhau để khai phá các kiến thức tiềm ẩn trong dữ liệu.
- Bước 3 : Sau xử lý, là quá trình ước lượng kết quả khai phá theo yêu cầu
của người dùng. Nhiều kỹ thuật khai phá dữ liệu được ứng dụng cho một
nguồn dữ liệu, các kỹ thuật cho các kết quả có thể khác nhau. Các kết quả
được ước lượng bởi những quy tắc nào đó, nếu cuối cùng kết quả không thỏa
mãn yêu cầu, chúng ta phải làm lại với kỹ thuật khác cho đến khi có kết quả
mong muốn.
1.1.2 Kiến trúc hệ thống khai phá dữ liệu
Kiến trúc của một hệ thống khai phá dữ liệu được thể hiện trong Hình 1.2.
trong đó :
Hình 1.2 – Kiến trúc hệ thống khai phá dữ liệu
- Máy chủ cơ sở dữ liệu hay máy chủ kho dữ liệu (Database or warehouse
server) : Máy chủ này có trách nhiệm lấy dữ liệu thích hợp dựa trên những
yêu cầu khai phá của người dùng.
Chương 1. Tổng quan về Khai phá dữ liệu 4
- Cơ sở tri thức (Knowledge base) : Đây là miền tri thức được dùng để tìm
kiếm hay đánh giá độ quan trọng của các hình mẫu kết quả.

- Máy khai phá dữ liệu (Data mining engine) : Một hệ thống khai phá dữ liệu
cần phải có một tập các modun chức năng để thực hiện công việc, chẳng hạn
như : đặc trưng hóa, kết hợp, phân lớp, phân cụm, phân tích sự tiến hoá
- Modun đánh giá mẫu (Pattern evaluation) : Bộ phận này tương tác với các
mođun khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được
quan tâm. Cũng có thể modun đánh giá mẫu được tích hợp vào modun khai
phá tuỳ theo sự cài đặt của phương pháp khai phá được dùng.
- Giao diện đồ họa cho người dùng (Graphical user interface) : Thông qua
giao diện này, người dùng tương tác với hệt hống bằng cách đặc tả một yêu
cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm
kiếm và thực hiện khai phá thăm dò trên các kết quả khai phá trung gian.
1.2 Hướng tiếp cận và kỹ thuật khai phá dữ liệu
1.2.1 Các hướng tiếp cận khai phá dữ liệu
Các hướng tiếp cận của Khai phá dữ liệu có thể được phân chia theo chức
năng hay lớp các bài toán khác nhau [8]. Sau đây là một số hướng tiếp cận chính :
- Phân lớp và dự đoán (Classification and Prediction) : xếp một đối tượng
vào trong những lớp đã biết. Hướng tiếp cận này thường sử dụng một số
kỹ thuật của học máy (Machine learning) như cây quyết định (Decision
tree), mạng neuron nhân tạo, Phân lớp còn được gọi là học có giám sát
(Supervised learning).
- Luật kết hợp (Association rules) là dạng luật biểu diễn tri thức ở dạng
khá đơn giản được sử dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh
học, tài chính và thị trường chứng khoán
- Khái phá chuỗi theo thời gian (sequential/temporal patterns) tương tự
như khai phá theo luật kết hợp nhưng có thêm tính thứ tự và tính thời gian.
Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị
trường chứng khoán vì có tính dự báo cao.
- Phân cụm (Clustering/segmentation) : Sắp xếp các đối tượng theo từng
cụm (số lượng cũng như tên của cụm chưa biết trước). Phân cụm còn được
gọi là học không giám sát (Unsupervised learning).

- Mô tả khái niệm (Concept description & summarization) : thiên vê mô
tả, tổng hợp và tóm tắt khai niệm như tóm tắt văn bản
Chương 1. Tổng quan về Khai phá dữ liệu 5
1.2.2 Một số kỹ thuật khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính [8] :
- Kỹ thuật khai phá dữ liệu mô tả : có nhiệm vụ mô tả về các tính chất hoặc
các đặc tính chung của dữ liệu trong cơ sở dữ liệu hiện có bao gồm : phân
cụm (clustering), tóm tắt (summarization), trực quan hóa (visualization),
phân tích sự phát triển và độ lệch (Evolution and deviation analysis), phát
hiện luật kết hợp (association rules),
- Kỹ thuật khai phá dữ liệu dự đoán : có nhiệm vụ đưa ra các dự đoán dựa
vào các suy diễn trên dữ liệu hiện thời bao gồm : phân lớp (classification),
hồi quy (regression),
1.2.2.1 Phân lớp
Phân lớp dữ liệu (Classification) [8] là chia các đối tượng dữ liệu thành các
lớp dựa trên các đặc trưng của tập dữ liệu. Với một tập các dữ liệu huấn luyện
cho trước và sự huấn luyện của con người, các giải thuật phân loại sẽ học ra bộ
phân loại (classifier) dùng để phân các dữ liệu mới vào một trong những lớp (còn
gọi là loại) đã được xác định trước. Phương pháp này rất có ích trong giai đoạn
đầu của quá trình nghiên cứu khi ta biết rất ít về đối tượng cần nghiên cứu, nó là
tiền đề để tiến hành các phương pháp phát hiện tri thức. Có nhiều phương pháp
phân lớp : phân lớp dựa trên cây quyết định, phân lớp Bayesian, Quá trình
phân lớp dữ liệu thường gồm hai bước :
- Bước 1 : Xây dựng mô hình dựa trên việc phân tích các mẫu dữ liệu có sẵn.
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 phân 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 (training dataset). Nhãn lớp của tập dữ liệu huấn luyện phải được xác
định trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là
học có giám sát (supervised learning).
- Bước 2 : Sử dụng mô hình để phân lớp dữ liệu. Chúng ta phải tính độ chính

xác của mô hình, nếu độ chính xác là chấp nhận được thì mô hình sẽ được
sử dụng để dự đoán lớp cho các mẫu dữ liệu khác trong tương lai.
1.2.2.2 Phân cụm
Phân cụm (Clustering) [16] là việc nhóm các đối tượng dữ liệu thành các lớp
đối tượng có sự tương tự nhau dựa trên các thuộc tính của chúng. Mỗi lớp đối
tượng được gọi là một cụm (cluster). Một cụm bao gồm các đối tượng mà giữa
bản thân chúng có sựràng buộc lẫn nhau và khác biệt so với các lớp đối tượng
khác. Phân cụm dữ liệu là một ví dụcủa phương pháp học không có giám sát
Chương 1. Tổng quan về Khai phá dữ liệu 6
(unsupervised learning). 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 luyệ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 khi phân lớp dữ liệu là học qua ví
dụ (learning by example). Trong phương pháp này ta không thể biết kết quả các
cụm thu được sẽ như thế nào khi bắt đầu quá trình. Các cụm có thể tách riêng hay
phân cấp hoặc gối lên nhau, có nghĩa là một mục dữ liệu có thể vừa thuộc cụm
này vừa thuộc cụm kia. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực
đó để đánh giá các cụm thu được. Phân cụm dữ liệu được sử dụng nhiều trong các
ứng dụng về phân loại thị trường, phân loại khách hàng, nhận dạng mẫu, phân
loại trang Web, Ngoài ra, phân cụm còn được sử dụng như một bước tiền xử
lý cho các thuật toán khai phá dữ liệu khác.
1.2.2.3 Luật kết hợp
Phương pháp phát hiện các luật kết hợp (Association Rules) 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 [1]. Các giải
thuật Tìm luật liên kết tìm kiếm các mối liên kết giữa các phần tử dữ liệu, ví
dụ như nhóm các món hàng thường được mua kèm với nhau trong siêu thị. Đầu
ra của thuật toán là tập luật kết hợp tìm được. Cho trước một tập các giao tác,
trong đó mỗi giao tác là một tập các mục, tìm sự tương quan giữa các mục như là
một luật và kết quả của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được.
Luật kết hợp thường có dạng X ⇒ Y . Trong đó : X là tiền đề, Y là hệ quả (X , Y
là hai tập của mục). Ý nghĩa trực quan của luật là các giao tác của cơ sở dữ liệu

mà trong đó nội dung X có khuynh hướng đến nội dung Y . Có hai thông số quan
trọng của luật kết hợp là độ hỗ trợ (support) và độ tin cậy (confidence). Độ hỗ
trợ và độ tin cậy là hai độ đo của sự đáng quan tâm của luật. Chúng tương ứng
phản ánh sựhữu ích và sựchắc chắn của luật đã khám phá. Khai phá các luật kết
hợp từ cơ sở dữ liệu là việc tìm các luật có độ hỗ trợ và độ tin cậy lớn hơn ngưỡng
mà người dùng xác định trước.
Luật kết hợp mang lại những thông tin vô cùng quan trọng, nó hỗ trợ không
nhỏ trong quá trình ra quyết định. Phương pháp này được sử dụng rất nhiều
trong các lĩnh vực như : marketing có chủ đích, phân tích quyết định, phân tích
thịtrường, quản lý kinh doanh, Khai phá luật kết hợp được thực hiện qua hai
bước :
- Bước 1 : Tìm tất cảcác tập mục phổ biến, một tập mục phổ biến được xác
định thông qua việc tính độ hỗ trợ và thỏa mãn độ hỗ trợ cực tiểu.
- Bước 2 : Sinh ra các luật kết hợp mạnh từtập mục phổ biến, các luật này
phải thỏa mãn độ hỗ trợ cực tiểu và độ tin cậy cực tiểu.
Chương 1. Tổng quan về Khai phá dữ liệu 7
1.2.2.4 Hồi qui
Hồi qui (Regression) là việc học một hàm ánh xạ từ một tập dữ liệu thành
một biến dự đoán có giá trị thực. Nhiệm vụ hồi qui tương tự như phân lớp, điểm
khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc [14].
Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điểm
chẳng hạn như hồi qui tuyến tính. Ứng dụng của hồi quy là rất nhiều, ví dụ : dự
đoán số lượng sinh vật phát quang hiện thời trong khi rừng bằng cách dò tìm vi
sóng bằng thiết bị cảm biến từ xa; dự đoán khả năng tử vong của bệnh nhân khi
biết các kết quả xét nghiệm chuẩn đoán ; dự đoán nhu cầu tiêu thụ một sản phẩm
mới bằng một hàm chi tiêu quảng cáo
1.2.2.5 Tổng hợp
Tổng hợp (summarization) : Là công việc liên quan đến các phương pháp tìm
kiếm một mô tả cô đọng cho tập con dữ liệu. Các kỹ thuật tổng hợp thường được
áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động [6].

1.2.2.6 Mô hình hóa phụ thuộc
Mô hình hóa phụ thuộc (dependency modeling) : Là việc tìm kiếm mô hình
mô tả các phụ thuộc quan trọng giữa các biến tồn tại ở hai mức :
1. Mức cấu trúc của mô hình (thường dưới dạng đồ thị) xác định các biến phụ
thuộc cục bộ vào các biến khác ;
2. Mức định lượng của mô hình xác định mức độ phụ thuộc của các biến [14].
Những phụ thuộc này thường được biểu thị dưới dạng luật. Quan hệ phụ thuộc
cũng có thể biểu diễn dưới dạng mạng tin cậy [6]. Đó là đồ thị có hướng không
có dạng chu trình, các nút biểu diễn thuộc tính và trọng số chỉ liên kết phụ thuộc
giữa các nút đó.
1.2.2.7 Phát hiện sự thay đổi và độ lệch
Phát hiện sự thay đổi và độ lệch (change and deviation dectection) : Nhiệm
vụ này tập trung vào khám phá những thay đổi có ý nghĩa trong dữ liệu dựa vào
các giá trị chuẩn hay độ đo đã biết trước, phát hiện độ lệch đáng kể giữa nội dung
của tập con dữ liệu và nội dung mong đợi. Hai mô hình độ lệch thường dùng là
lệch theo thời gian và lệch theo nhóm. Độ lệch theo thời gian là sự thay đổi có
nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự khác nhau giữa dữ liệu
trong hai tập con dữ liệu, tính cả trường hợp tập con của đối tượng này thuộc
Chương 1. Tổng quan về Khai phá dữ liệu 8
tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác
nhau đáng kể so với toàn bộ đối tượng [6, 14]
1.3 Thuật toán và dạng dữ liệu có thể khai phá
1.3.1 Các thành phần của thuật toán khai phá dữ liệu
Ba thành phần chủ yếu trong một thuật toán khai phá dữ liệu là biểu diễn
mô hình, đánh giá mô hình và phương pháp tìm kiếm [8].
- Biểu diễn mô hình : là việc xây dựng ngôn ngữ L để miêu tả các mẫu có thể
phát hiện được. Nếu sự mô tả này bị giới hạn quá thì sẽ không xây dựng
được mô hình chính xác cho dữ liệu, vì thế người phân tích dữ liệu phải hiểu
đầy đủ các khả năng tiêu biểu của phương pháp được dùng. Ngoài ra người
thiết kế thuật toán cũng cần chỉ rõ giả thiết mô tả nào được tạo bởi thuật

toán nào. Mô hình có khả năng miêu tả quá mạnh sẽ làm tăng nguy cơ dữ
liệu huấn luyện quá phù hợp, dẫn đến việc giảm độ chính xác dự đoán các
dữ liệu chưa biết, thêm vào đó nó còn làm cho việc tìm kiếm trở nên phức
tạp và việc giải thích mô hình khó hơn.
- Đánh giá mô hình : là xem xét một mẫu có đáp ứng được các tiêu chuẩn
của quá trình phát hiện tri thức hay không. Việc đánh giá độ chính xác dự
đoán dựa trên đánh giá chéo, đánh giá chất lượng mô tả liên quan đến độ
chính xác dự đoán, tính mới mẻ, tính hữu ích và dễ hiểu của mô hình. Cả
hai tiêu chuẩn thống kê và logic có thể được dùng để đánh giá mô hình.
- Phương pháp tìm kiếm : bao gồm hai thành phần là tìm kiếm tham số và
tìm kiếm mô hình. Thuật toán phải tìm ra các tham số để tối ưu hoá các
tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và một cách miêu
tả mô hình đã định. Trong tìm kiếm mô hình, miêu tả mô hình được thay
đổi để xét một họ các mô hình mới. Với mỗi cách biểu diễn mô hình, phương
pháp tìm kiếm tham số được áp dụng để để đánh giá chất lượng mô hình.
Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm kiếm
phỏng đoán do kích thước lớn của không gian các mô hình thường cản trở
việc tìm kiếm toàn diện.
Hiện nay,người ta chưa đưa ra được một tiêu chuẩn nào trong việc quyết định
sử dụng phương pháp nào vào trong trường hợp nào thì có hiệu quả, có nhiều kỹ
thuật và mỗi kỹ thuật được sửdụng cho nhiều bài toán khác nhau. Các thuật toán
khai phá dữ liệu tự động chỉ đang ở giai đoạn phát triển ban đầu, các kỹ thuật
khai phá dữ liệu còn mới với lĩnh vực kinh doanh. Rõ ràng là để trả lời câu hỏi
“khai phá dữ liệu dùng kỹ thuật nào là tốt ?” thật không đơn giản vì mỗi phương
pháp thì có điểm mạnh và điểm yếu riêng, thậm chí chúng ta còn phải kết hợp
các phương pháp trong quá trình khai phá.
Chương 1. Tổng quan về Khai phá dữ liệu 9
1.3.2 Các dạng dữ liệu có thể khai phá
Do khai phá dữ liệu được ứng dụng rộng rãi nên có rất nhiều kiểu dữ liệu
khác nhau được chấp nhận trong khai phá dữ liệu [8]. Điển hình là :

- Cơ sở dữ liệu quan hệ (Relational databases) : là các cơ sở dữ liệu tác nghiệp
được tổ chức theo mô hình quan hệ. Hầu hết các hệ quản trị cơ sở dữ liệu
đều hỗ trợ loại cơ sở dữ liệu này như : Oracle, IBM DB2, MS SQL Serve,
MS Access
- Cơ sở dữ liệu đa chiều (Multidimensional structures, data warehouses, data
mart) : là các kho dữ liệu được tập hợp, chọn lọc từ nhiều nguồn dữ liệu
khác nhau. Dạng dữ liệu này có tính lịch sử do có thuộc tính thời gian và
chủ yếu là phục vụ cho quá trình phân tích cũng như khai thác tri thức hỗ
trợ quá trình ra quyết định.
- Cơ sở dữ liệu dạng giao dịch (Transactional databases) là một dạng cơ sở dữ
liệu tác nghiệp với các bản ghi thường là các giao dịch phổ biến trong lĩnh
vực thương mai và ngân hàng.
- Cơ sở dữ liệu quan hệ-hướng đối tượng (Object-relational databases) : là dạng
cơ sở dữ liệu lai giữa 2 mô hình quan hệ và hướng đối tượng.
- Dữ liệu không gian và thời gian (Spatial, temporal, and time-series data) : là
dạng dữ liệu có tích hợp thuộc tính về không gian như dữ liệu bản đồ hoặc
thời gian như dữ liệu về thị trường chứng khoán.
- Cơ sở dữ liệu đa phương tiện (Multimedia databases) : là các dữ liệu âm
thanh, hình ảnh, phim ảnh, Text và WWW, Đây là dạng dữ liệu rất phổ
biến trên mạng Internet.
1.4 Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu được vận dụng trong nhiều lĩnh vực khác nhau nhằm khai
thác nguồn dữ liệu phong phú được lưu trữ trong các hệ thống thông tin. Các lĩnh
vực ứng dụng tiêu biểu là :
- Phân tích dữ liệu và hỗ trợ ra quyết định (Analysis & decition support).
- Điều trị trong y học (Medical) : mối liên hệ giữa triệu chứng, chuẩn đoán và
phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẫu thuật).
- Phân lớp văn bản, tóm tắt văn bản và phân lớp các trang Web (Text mining
& Web mining).
- Tin sinh học (Bio-informatics) : Tìm kiếm, đối sánh các hệ gen và thông tin

di truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền.
- Nhận dạng.
Chương 1. Tổng quan về Khai phá dữ liệu 10
- Tài chính và thị trường chứng khoán (Finance & stock market) : Phân tích
tình hình tài chính và dự đoán giá cổ phiếu.
- Bảo hiểm (Insurance), Giáo dục (Education).
Tùy theo bản chất của từng lĩnh vực, việc vận dụng khai phá dữ liệu có những
cách tiếp cận khác nhau như Hình 1.3.
Hình 1.3 – Ứng dụng của Khai phá dữ liệu
Cụ thể :
- Ngân hàng : Xây dựng mô hình dự báo rủi ro tín dụng. Tìm kiếm tri thức,
quy luật của thị trường chứng khoán và đầu tư bất động sản.
- Thương mại điện tử : Tìm hiểu, định hướng thúc đẩy, giao tiếp với khách
hàng. Phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp
thịphù hợp với nhiều loại khách hàng.
- Marketing : Phân tích nhu cầu khách hàng dựa trên mẫu dữ liệu mua bán
hàng từ đó xác định chiến lược kinh doanh, quảng cáo, kế hoạch sản xuất,. . .
Khai phá dữ liệu cũng được vận dụng hiệu quả để giải quyết các bài toán
phức tạp trong các ngành đòi hỏi kỹ thuật cao như : tìm kiếm mỏ dầu từ ảnh viễn
thám, cảnh báo hỏng hóc trong các hệ thống sản xuất, . . . Các kỹ thuật Khai phá
dữ liệu đã được áp dụng thành công trong việc dự đoán tải sử dụng điện năng cho
các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện thoại, mức
độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trịcủa sản phẩm trên thịtrường
cho các công ty tài chính, Ngoài ra, Khai phá dữ liệu còn được áp dụng cho
các vấn đề xã hội như phân tích các kết quả phòng chống và điều trị một số loại
bệnh, phân tích tác hại của ma tuý, phát hiện tội phạm hay tăng cường an ninh
xã hội, Việc vận dụng thành công đã mang lại những hiệu quả thiết thực cho các
hoạt động diễn ra hàng ngày trong đời sống.
Chương 1. Tổng quan về Khai phá dữ liệu 11
1.5 Những khó khăn trong khai phá dữ liệu

Việc nghiên cứu và ứng dụng các kỹ thuật khai phá dữ liệu vào thực tế còn
gặp nhiều khó khăn như :
- Cơ sở dữ liệu lớn : Các tập dữ liệu cần xử lý trong khai phá dữ liệu thường
có kích thước cực kỳ lớn về cả số lượng các bản ghi và số lượng các thuộc
tính. Trong thực tế, kích thước của các tập dữ liệu trong khai phá dữ liệu
thường ở mức Tera-byte. Với kích thước như thế, thời gian xử lý thường cực
kỳ dài. Mặc dù kích thước bộ nhớ trong của máy tính đã gia tăng đáng kể
trong thời gian gần đây, việc gia tăng này cũng không thể đáp ứng kịp với
việc tăng kích thước dữ liệu. Vì vậy, việc vận dụng các kỹ thuật xác suất,
lấy mẫu, đệm, song song, vào các giải thuật để tạo ra các phiên bản phù
hợp với yêu cầu của khai phá dữ liệu trở nên ngày càng quan trọng.
- Dữ liệu thiếu và nhiễu : Mức độ nhiễu cao trong dữ liệu điều này dẫn đến
việc dựđoán thiếu chính xác.
- Vấn đề“quá phù hợp” (Overfitting) : Khi thuật toán khai phá tìm kiếm với
các tham số tốt nhất cho một mô hình đặc biệt và một giới hạn của tập dữ
liệu. Mô hình đó có thể “Quá phù hợp” trên tập dữ liệu đó nhưng lại thi
hành không chính xác trên tập dữ liệu kiểm tra.
- Sự thay đổi của dữ liệu và tri thức : Dữ liệu là không tĩnh, dữ liệu thay đổi
nhanh chóng có thể dẫn đến những tri thức đã khai phá trước đây trởnên
không còn phù hợp thậm chí là vô giá trị.
- Đánh giá các mẫu dữ liệu tìm được : Nhiều mẫu phát hiện không thực sự
hữu ích với người sửd ụng và thách thức với các hệ khai phá dữ liệu.
- Làm việc với các dữ liệu quan hệ phức tạp : Do các hệ cơ sở dữ liệu quan hệ
được sử dụng rộng rãi nên vấn đề làm tốt với các hệ cơ sở dữ liệu này là vấn
đề cần quan tâm đối với các hệ khai phá dữ liệu.
- Khai phá thông tin trong các hệ cơ sở dữ liệu hỗn hợp và hệ thống thông tin
toàn cầu : Với sự ra đời của mạng máy tính, dữ liệu có thể được thu thập từ
nhiều nguồn khác nhau với định dạng khác nhau với số lượng rất lớn. Việc
phát hiện tri thức từ các dạng dữ liệu hỗn hợp này là một thách thức đối
với khai phá dữ liệu.

- Khả năng biểu đạt của mẫu và sự tương tác với người sử dụng và các tri
thức sẵn có
1.6 Các công cụ khai phá dữ liệu
Các phần mềm hỗ trợ khai phá dữ liệu được phát triển nhiều. Trong mục này
tôi sẽ giới thiệu một số phần mềm mã nguồn mở thông dụng và đang được sử
dụng được đánh giá là hiệu quả đối với từng nhóm ứng dụng cụ thể :
Chương 1. Tổng quan về Khai phá dữ liệu 12
- Phần mềm IDE R : gồm ngôn ngữ R, các môi trường đồ họa cho ngôn ngữ
R : Tinn-R, Rattle.
- Phần mềm khai phá dữ liệu : Weka, RapidMiner khai phá dữ liệu và
Text. KNIME hỗ trợ đồng thời tích hợp, xử lý, phân tích dữ liệu. Orange,
TANAGRA.
- Phần mềm Clustering : Cluto hỗ trợ phân lớp các dữ liệu nhiều chiều.
Fastcluster phân lớp nhanh trên ngôn ngữ R và Python
- Phần mềm khai phá Luật kết hợp : Arules, ARMiner.
- Phần mềm trích chọn thông tin
+ Mallet,Sarawagi’s CRF Linear-chain CRFs (Java) - 2003
+ FlexCRFs sử dụng mô hình Markov (C++) - 2004
+ CRF++ Linear-chain CRFs (C++) - 2005
+ CRFSuite (C)
- Phân mềm khai phá chuỗi thời gian : Traminer
- Phân tích mạng xã hội (Social Network Analysis) : Pajek, GibbsLDA++
- Phân tích số liệu không gian (Spatial Data Analysis) : GeoDa, Clavin
1.7 Công cụ và dataset thực nghiệm
1.7.1 Phần mềm Weka
1.7.1.1 Giới thiệu về Weka
Hình 1.4 – Giao diện phần mềm Weka
Weka là tập hợp các mã nguồn mở về các thuật toán khai phá dữ liệu và máy
học, được viết tại trường đại học Waikato, New Zealand, được phát triển trên
nền tản ngôn ngữ java (http ://www.cs.waikato.ac.nz/ml/weka/ ) [25]. Phần mềm

Weka 3.7.10 bao gồm : 49 công cụ tiền xử lý dữ liệu, 76 thuật toán phân lớp và
Chương 1. Tổng quan về Khai phá dữ liệu 13
hồi quy, 8 thuật toán gom cụm, 3 thuật toán luật kết hợp, 15 thuật toán xác định
thuộc tính, tập con và 10 thuật toán tìm kiếm để lựa chọn đặc tính. Môi trường
làm việc của Weka được thể hiện trong Hình 1.4 bao gồm :
- Simple CLI : Giao diện đơn giản kiểu dòng lệnh (như MS-DOS).
- Explorer : Môi trường cho phép sử dụng tất cảcác khả năng của WEKA để
khai phá dữ liệu.
- Experimenter : cho phép tiến hành các thí nghiệm và thực hiện các kiểm tra
thống kê (statistical tests) giữa các mô hình học máy.
- KnowledgeFlow : Môi trường cho phép bạn tương tác đồ họa kiểu kéo/thả
để thiết kế các bước (các thành phần) của một thí nghiệm.
Môi trường Explore của Weka bao gồm các thao tác :
Hình 1.5 – Môi trường Explore của Weka
Trong đó :
- Preprocess : Để chọn và thay đổi (xử lý) dữ liệu làm việc
- Classify : Để huấn luyện và kiểm tra các mô hình học máy (phân loại, hoặc
hồi quy/dự đoán)
- Cluster : Để học các nhóm từ dữ liệu (phân cụm)
- Associate : Để khai phá các luật kết hợp từ dữ liệu
- Select attributes : Để xác định và lựa chọn các thuộc tính liên quan (quan
trọng) nhất của dữ liệu
- Visualize : Để hiển thị biểu đồ tương tác 2 chiều đối với dữ liệu.
Chương 1. Tổng quan về Khai phá dữ liệu 14
1.7.1.2 Khuôn dạng dữ liệu của Weka
DataSet là một tập hợp bao gồm các mục dữ liệu, là một khái niệm rất cơ bản
của máy học. Một dataset tương đương với một bảng tính hai chiều hay một bảng
cơ sở dữ liệu. Trong Weka, nó được hiện thực bởi lớp weka.core.Instances. Một
dataset là một tập hợp các ví dụ mà mỗi phần tử là một lớp weka.core.Instances.
Mội thể hiện bao gồm một số thuộc tính, bất kỳ những gì có nghĩa (một danh

sách các giá trị được định nghĩa trước), số (số nguyên hay số thực) hay chuỗi (một
dãy các ký tự được đặt trong cặp dấu ngoặc kép). Có các kiểu dữ liệu thêm vào
như là ngày tháng năm, mối quan hệ.
Hình 1.6 – Khuôn dạng dữ liệu của Weka
Thể hiện của một lớp Instances là một tập tin ARFF, mỗi tập tin bao gồm
một header, mô tả kiểu thuộc tính và dữ liệu được phân cách nhau bởi dấu phẩy.
một sự mô tả đầy đủ của tập tin ARFF như Hình 1.6.
1.7.1.3 Các chức năng của Weka Explorer
Các bộ tiền xử lý(Preprocess) : Dữ liệu có thể được nhập vào (imported)
từ một tập tin có khuôn dạng : ARFF,CSV, một địa chỉ URL, hoặc từ một cơ sở
dữ liệu thông qua JDBC. Các công cụ tiền xử lý dữ liệu của WEKA được gọi là
filters gồm : Rời rạc hóa (Discretization), Chuẩn hóa (Normalization), Lấy mẫu
(Re-sampling), Lựa chọn thuộc tính (Attribute selection) Bản chất gói weka.filters
được đề cập tới như những lớp dùng để thay đổi các tập dữ liệu bằng cách gỡ bỏ
hay thêm vào những thuộc tính, lấy mẫu dữ liệu lại, xóa bỏ những mẫu dữ liệu và
hơn thế nữa Những gói này rất hữu ích trong việc xử lý dữ liệu, là một bước
quan trọng trong máy học. Tất cả các filter đều có những lựa chọn : −i để chọn dữ
liệu đầu vào, và −o để xuất dữ liệu. Nếu không có những tham số này, chế độ nhập
và xuất chuẩn được vận dụng. Những tham số khác đại diện cho một filter và có
thể được tìm thấy thông qua −h, như bất cứ lớp nào. Gói weka.filters.supervised
là các bộ lọc đóng vai trò giám sát, tạo ra những thông tin có lợi cho class. Một
lớp phải được sử dụng thông qua tham số −c, WEKA mặc định là tham số −c
Chương 1. Tổng quan về Khai phá dữ liệu 15
ở cuối. Gói weka.filters.supervised.attribute : Một số thuộc tính được sử dụng dựa
trên những thông tin của class, thông qua phương thức MD (Fayyad & Iranis),
hoặc phương thức MDL (Kononeko). Tối thiểu sẽ có một vài mẫu máy học hoặc
phân lớp chỉ có thể xử lý một ít dữ liệu, ví dụ weka.classifiers.rules.Prism ; Ngoài
ra, còn các gói khác như :weka.flters.supervised.instance, weka.flters.unsupervised,
weka.flters.unsupervised.attribute, weka.flters.unsupervised.instance.
Các bộ phân lớp (Classifiers) của WEKA tương ứng với các mô hình dự

đoán các đại lượng kiểu định danh (phân lớp) hoặc các đại lượng kiểu số (hồi
quy, dự đoán). Các kỹ thuật phân lớp được hỗ trợ bởi WEKA gồm : Na¨ıve Bayes
classifier và Bayesian networks, Decision trees, Instance-based classifiers, Support
vector machines, Neural networks. Lựa chọn một bộ phân lớp cho phép tùy chọn
việc kiểm tra (test options) :
- Use training set. Bộ phân loại học được sẽ được đánh giá trên tập học trên
tập học.
- Supplied test set. Sử dụng một tập dữ liệu khác (với tập học) để cho việc
đánh giá.
- Cross-validation. Tập dữ liệu sẽ được chia đều thành k tập (folds) có kích
thước xấp xỉ nhau, và bộ phân loại học được sẽ được đánh giá bởi phương
pháp cross-validation.
- Percentage split. Chỉ định tỷ lệ phân chia tập dữ liệu đối với việc đánh giá.
- More options. . .
+ Output model : Hiển thị bộ phân lớp học được.
+ Output per-class stats. Hiển thị các thông tin thống kê về precision/re-
call đối với mỗi lớp.
+ Output entropy evaluation measures. Hiển thị đánh giá độ hỗn tạp (en-
tropy) của tập dữ liệu
+ Output confusion matrix. Hiển thị thông tin về ma trận lỗi phân lớp
(confusion matrix) đối với phân lớp học được.
+ Store predictions for visualization. Các dự đoán của bộ phân lớp được
lưu lại trong bộ nhớ, để có thể được hiển thị sau đó
+ Output predictions. Hiển thị chi tiết các dự đoán đối với tập kiểm tra
+ Cost-sensitive evaluation. Các lỗi (của bộ phân lớp) được xác định dựa
trên ma trận chi phí (cost matrix) chỉ định
+ Random seed for XVal % Split. Chỉ định giá trị random seed được sử
dụng cho quá trình chọn lựa ngẫu nhiên các ví dụ cho tập kiểm tra.
- Classifier output : hiển thị các thông tin quan trọng
+ Run information. Các tùy chọn đối với mô hình học, tên của tập dữ

liệu, số lượng các ví dụ, các thuộc tính.
Chương 1. Tổng quan về Khai phá dữ liệu 16
+ Classifier model (full training set). Biểu diễn (dạng text) của bộ phân
lớp học được bộ phân lớp học được
+ Predictions on test data. Thông tin chi tiết về các dự đoán của bộ phân
lớp đối với tập kiểm tra
+ Summary. Các thống kê về mức độ chính xác của bộ phân lớp, đối với
f.f. thí nghiệm đã chọn
+ Detailed Accuracy By Class. Thông tin chi tiết về mức độ chính của bộ
phân lớp đối với mỗi lớp
+ Confusion Matrix. Các thành phần của ma trận này thể hiện số lượng
các ví dụ kiểm tra được phân lớp đúng và bị phân lớp sai
- Result list : Cung cấp một số chức năng hữu ích
+ Save model : Lưu lại mô hình tương ứng với bộ phân lớp học được vào
trong một tập tin nhị phân (binary file)
+ Load model. Đọc lại một mô hình đã được học trước đó từ một tập tin
nhị phân
+ Re-evaluate model on current test set : Đánh giá một mô hình (bộ phân
lớp) học được trước đó đối với tập kiểm tra hiện tại.
+ Visualize classifier errors. Hiển thị cửa sổ biểu đồ thể hiện các kết quả
của việc phân lớp. Các ví dụ được phân lớp chính xác sẽ được biểu diễn
bằng ký hiệu bởi dấu chéo (x), còn các ví dụ bị phân lớp sai sẽ được
biểu diễn bằng ký hiệu ô vuông.
Bất cứ thuật toán máy học nào được sử dụng trong Weka đều được xuất phát
từ lớp trừu tượng weka.classifiers.Classifier. Một mẫu Classifier là một sự ánh xạ
phức tạp ngẫu nhiên từ tất cả hoặc 1 thuộc tính của một tập dữ liệu dataset. Việc
tạo ra và hình thức đặc biệt của việc ánh xạ này, hay mô hình mẫu, khác với việc
phân loại từ phân loại. Classifier là phần trọng tâm của WEKA. Có rất nhiều sự
chọn lựa thông thường cho phân lớp, hầu hết có liên quan đến những mục đích
đánh giá. Tất cả những chức năng khác bao gồm những thông số có thể tìm thấy

thông qua −h, thông thường như :
• −t : chỉ sự chuẩn hóa dữ liệu thành file định dạng ARFF
• −T : chỉ việc kiểm tra file dữ liệu có đúng dịnh dạng ARFF. Nếu thông số
này bỏ qua, một bảng điều kiện chéo sẽ được cho phép ( mặc định là : gấp
mười lần cv)
• −x : tham số này quyết định số lượng folds cho bảng điều kiện chéo. Một
CV sẽ chỉ được vận hành nếu tham số -T được bỏ qua.
• −c : Khi đã sẵn sàng cho weka.filters, tham số này sẽ thiết lập lại giá trị
của biến class với một chỉ mục.
• −d : Một mô hình mẫu sau khi được huấn luyện sẽ được lưu lại thông qua
tham số này. Mỗi classifier sẽ ó những định dạng nhị phân khác nhau cho
Chương 1. Tổng quan về Khai phá dữ liệu 17
mô hình, vì thế, nó có thể chỉ được đọc trở lại bởi chính một classifier trên
một dataset tương thích. Chỉ có mô hình trong quá trình huấn luyện được
lưu lại, không phải nhiều mô hình được sinh ra thông qua cross- validation.
• −l : Nạp những mô hình đã được lưu trước đó, thông thường cho việc kiểm
tra một mẫu mới, những dữ liệu đã không được nhìn thấy trước đó. Trong
trường hợp này, một tập tin kiểm tra tương thích sẽ được chỉ định, ví dụ :
một số thuộc tính trong cùng một trật tự.
• −p# : nếu một tập tin kiểm định được chỉ định, tham số này sẽ chỉ ra cho
chúng ta thấy những dự đoán và một thuộc tính, có thể là 0 hoặc nhiều hơn
cho tất cả các thể hiện của kiểm định.
Một ví dụ đơn giản : tại cửa sổ command line, gõ dòng lệnh sau :
java weka.classifiers.bayes.NaiveBayes -t data/supermarket.arff –i
Các bộ phân cụm-Cluster của WEKA tương ứng với các mô hình tìm các nhóm
của các ví dụ tương tự đối với một tập dữ liệu. Các kỹ thuật phân cụm được hỗ
trợ bởi WEKA gồm : Expectation maximization (EM), k-Means, CobWeb Các
bộ phân cụm có thể được hiển thị kết quả và so sánh với các cụm trong thực thế.
Các chế độ phân cụm (cluster mode) của Weka gồm :
- Use training set. Các cụm học được sẽ được kiểm tra đối với tập học

- Supplied test set. Sử dụng tập dữ liệu khác để kiểm tra các cụm học được
- Percentage split. Chỉ định tỷ lệ phân chia tập dữ liệu ban đầu cho việc xây
dựng tập kiểm tra
- Classes to clusters evaluation. So sánh độ chính xác của các cụm học được
đối với các lớp được chỉ định.
Bộ luật kết hợp : Ta chỉ cần lựa chọn một mô hình (giải thuật) phát hiện luật
kết hợp. Mục Associator output hiển thị các thông tin quan trọng gồm :
- Run information. Các tùy chọn đối với mô hình phát hiện luật kết hợp, tên
của tập dữ liệu, số lượng các ví dụ, các thuộc tính.
- Associator model (full training set). Biểu diễn (dạng text) của tập các luật
kết hợp phát hiện được.
+ Độ hỗ trợ tối thiểu (minimum support)
+ Độtin cậy tối thiểu (minimum confidence)
+ Kích thước của các tập mục thường xuyên (large/frequent itemsets)
+ Liệt kê các luật kết hợp tìm được.
Bộ lựa chọn thuộc tính-Attribute selection bao gồm 2 phần :
- Attribute Evaluator. Để xác định một phương pháp đánh giá mức độ phù
hợp của các thuộc tính. Ví dụ :correlation-based, wrapper, information gain,
chisquared,. . .
- Search Method. Để xác định một thứ tự xét các thuộc tính. Ví dụ : best-first,
random, exhaustive, ranking,
Chương 1. Tổng quan về Khai phá dữ liệu 18
1.7.2 Các Dataset thực nghiệm
Các dataset dùng trong thực nghiệm được lấy từ uci và weka được liệt kê
trong Bảng 1.1.
Bảng 1.1 – Các Dataset thực nghiệm
Tên dataset Kiểu file Số Số Loại Loại Giá trị
thuộc tính mẫu thuộc tính dữ liệu bị thiếu
Mushroom ARFF 23 8124 Categorical Multivariate Không
Supermarket ARFF 217 4627 Categorical, Integer Multivariate Có

Labor ARFF 17 57 Categorical, Integer Multivariate Có
Zoo CSV 17 101 Categorical, Integer Multivariate Có
1.7.2.1 Dataset Mushroom
Dữ liệu mushroom.arff
1
thu thập được qua việc khảo sát nhiều loại nấm khác
nhau trên vùng Bắc Mỹ dựa vào hình dạng, màu sắc, tập quán sinh sống để rút
ra kết luận đây là nấm độc hay nấm ăn được có 8124 mẫu cùng với 23 thuộc tính
(luôn thuộc tính phân lớp) có trong tập dữ liệu.
Hình 1.7 – Dataset mushroom có 23 thuộc tính và 8124 mẫu
Bảng 1.2 mô tả tên, kiểu dữ liệu, các giá trị của từng thuộc tính.
Ý nghĩa của từng thuộc tính trong bối cảnh của tập dữ liệu như sau :
1. http ://archive.ics.uci.edu/

×