ĐẠ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
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
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
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
- 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).
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
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
- 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
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.
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
đ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ữ
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
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/