Professional Documents
Culture Documents
Nhóm 9
Nhóm 9
BÁO CÁO
Đề tài :
Nghiên cứu Weka và phương pháp phân lớp dựa
trên Weka sử dụng cây quyết định
Giảng viên hướng dẫn: TS. Vũ Thanh Hiền
Nhóm sinh viên thực hiện: Nguyễn Hữu Thành 2180606601
Nhóm 9
Lớp: 21DTHB4
Khóa: 2021-2025
1
MỤC LỤC
MỤC LỤC............................................................................................................................................................2
LỜI NÓI ĐẦU......................................................................................................................................................4
Chương 1: Giới thiệu................................................................................................................................5
1.1.1 Giới thiệu Weka...........................................................................................................................5
1.1.2 Giao diện Weka Explorer.............................................................................................................5
1.1.2.1 Xây dựng dữ liệu cho Weka.........................................................................................................5
1.1.2.2 Tiền xử lý dữ liệu.........................................................................................................................6
1.1.2.3 Các bộ phân lớp............................................................................................................................6
1.1.2.4 Các bộ phân cụm (Clustering)......................................................................................................7
1.1.2.5 Luật kết hợp (Association Rules).................................................................................................8
1.1.2.6 Lựa chọn thuộc tính (Attribute selection)....................................................................................8
1.1.2.7 Hiển thị dữ liệu.............................................................................................................................8
1.1.3 Cách sử dụng Weka......................................................................................................................9
Chương 2: Giới thiệu về cây quyết định......................................................................................11
2.1 Mô hình cây quyết định....................................................................................................................11
2.2 Chiến lược cơ bản để xây dựng cây quyết định.................................................................................12
2.3 Một số thuật toán................................................................................................................................14
2.3.1 Thuật Toán CLS................................................................................................................................14
2.3.2 Thuật Toán ID3.................................................................................................................................17
Chương 3: Chức năng phân lớp sử dụng trong Weka.........................................................25
3.1 Phân lớp dữ liệu trong Weka..............................................................................................................25
3.2 Xây dựng tập dữ liệu cho Weka.........................................................................................................28
3.3 Ứng dụng phân lớp trong Weka.........................................................................................................28
3.3.1 Dữ liệu đầu vào..............................................................................................................................29
3.3.2 Phân lớp dữ liệu bằng Weka...........................................................................................................30
3.3.3 Nhận xét.........................................................................................................................................35
2
Chương 4: Kết luận.................................................................................................................................36
Trí tuệ nhân tạo (Artificial Intelligence - AI) đã trở thành một lĩnh vực quan trọng và hứa hẹn
trong thế kỷ 21, đem lại những tiến bộ đáng kể trong nhiều lĩnh vực, từ dự đoán dữ liệu đến
tự động hóa các nhiệm vụ phức tạp. Một phần quan trọng của trí tuệ nhân tạo là khả năng xử
lý và phân tích dữ liệu, và trong bối cảnh này, nghiên cứu về Weka và phương pháp phân lớp
dựa trên Weka, đặc biệt là sử dụng cây quyết định, đang trở nên ngày càng quan trọng.
Weka, một môi trường mã nguồn mở phát triển bởi Đại học Waikato ở New Zealand, đã trở
thành một công cụ mạnh mẽ trong việc phân tích và khai phá dữ liệu. Nó cung cấp một loạt
các thuật toán học máy và công cụ cho việc tiền xử lý dữ liệu, huấn luyện mô hình, và đánh
giá hiệu suất mô hình. Trong báo cáo này, chúng tôi sẽ tập trung vào nghiên cứu Weka và tập
trung vào việc sử dụng cây quyết định để phân lớp dữ liệu.
Cây quyết định là một phương pháp phân lớp dựa trên quy tắc quyết định, mô phỏng quá
trình ra quyết định dựa trên dữ liệu đào tạo. Chúng cung cấp sự hiểu rõ và giải thích dễ hiểu
cho quyết định của mô hình, điều này có ý nghĩa quan trọng trong việc áp dụng trí tuệ nhân
tạo vào thực tế.
Chúng em sẽ bắt đầu báo cáo bằng việc giới thiệu về Weka, sau đó trình bày về cây quyết
định và phương pháp phân lớp dựa trên chúng. Bài báo cáo này sẽ giúp bạn hiểu rõ hơn về
sức mạnh của Weka trong việc xử lý dữ liệu và cách sử dụng cây quyết định để phân lớp dữ
liệu một cách hiệu quả.
3
Chương 1: Giới thiệu
1.1 Giới thiệu về phần mềm mã nguồn mở Weka
1.1.1 Giới thiệu Weka
Khai thác dữ liệu không phải là chỉ đơn thuần là lĩnh vực của các công ty lớn và phần
mềm đắt tiền. Trong thực tế, có một phần của phần mềm mà hầu như tất cả những điều
tương tự như những tính năng đắt tiền của phần mềm - phần mềm được gọi là WEKA .
WEKA là sản phẩm của Đại học Waikato (New Zealand) và lần đầu tiên được thực hiện
vào năm 1997. Nó sử dụng bản quyền GNU General Public License (GPL). Phần mềm
này được viết bằng ngôn ngữ Java và có một giao diện để tương tác với các tập tin dữ
liệu và xuất ra các kết quả trực quan (như là bảng và các biểu đồ). Nó cũng có một API
thông dụng, vì vậy bạn có thể nhúng WEKA, giống như bất kỳ thư viện khác, trong các
ứng dụng của riêng bạn để những thứ như nhiệm vụ khai thác dữ liệu phía máy chủ tự
động.
Weka là một tập hợp các thuật toán máy học tập cho các nhiệm vụ khai thác dữ liệu.
Các thuật toán có thể được áp dụng trực tiếp vào dữ liệu hoặc gọi từ mã Java của riêng
bạn. Weka chứa các công cụ cho:
Nó cũng rất phù hợp cho việc phát triển các chương trình máy học máy mới.
mỗi dòng dữ liệu trong một định dạng phân cách bằng dấu phẩy.
- Rời rạc hóa (Discretization): Một số kỹ thuật như khai thác luật kết hợp có thể
được thực hiện trên dữ liệu phân lớp. Điều này đòi hỏi phải thực hiện rời rạc
trên các thuộc tính số hoặc liên tục.
- Chuẩn hóa (Normalization):
- Lấy mẫu (Re-sampling)
- Lựa chọn thuộc tính (Attribute selection)
- Chuyển đổi (Transforming) và kết hợp (Combining) các thuộc tính
- …
- Phân lớp Naive Bayes và mạng Bayesian (Naïve Bayesclassifier and Bayesian
5
networks)
- Cây quyết định (Decision trees)
- Phân lớp dựa trên cá thể cần được phân lớp (Instance-based Classifiers)
- Máy phân lớp sử dụng vectơ hỗ trợ (Support Vector Machines)
- Mạng Nơ-ron (Neural networks)
- Lựa chọn các tùy chọn cho việc kiểm tra:
- Use trainning set: Bộ phân lớp học được sẽ được đánh giá 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 lớp 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á.
- 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ề percision/recall đối với
mỗi lớp
- 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ỉ dịnh giá trị random seed được sử dụng cho
quá trình lựa chọn ngẫu nhiên các ví dụ cho tập kiểm tra.
- 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
- Load model: đọc lại một mô hình đã được học trước đó từ một tập 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 ta (test set) 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
6
- Use tranning 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 một tập dữ liệu khác để kiểm tra các cụm học được
7
- Percentage split: chỉ định tỷ lệ phân chia tập dữ liệu ban ddầ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
Store clusters for visualization: Lưu lại các bộ phân lớp trong bộ nhớ, để có thể hiển
thị sau đó
Ignore attributes: Lựa chọn các thuộc tính sẽ không tham gia vào quá trình học các cụ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 trainning set): biểu diễn (dạng text) của tập các luật kết
hợp được phát hiện
o Độ hỗ trợ tối thiểu (mininum support)
o Độ tin cậy tối thiểu (minimum confidence)
o Kích thước của các tập mục thường xuyên (large/frequent itemsets)
o Liệt kê các luật kết hợp tìm được
Trong Weka, một phương pháp lựa chọn thuộc tính bao gồm 2 phần:
- Attribute Evaluator: để xác định một phương pháp đsanh giá mức độ phù hợp
của các thuộc tính
- Search Method: để xác định một phương pháp (thứ tự) xét các thuộc
tính Ví dụ: best-first, random, exhaustive, ranking, …
8
- Thanh trượt Jitter hỗ trợ việc hiển thị rõ ràng hơn, khi có quá nhiều ví dụ (điểm)
tập xung quanh một vị trí trên biểu đồ
- Tính năng phóng to/thu nhỏ ( bằng cách tăng/giảm giá trị của Plotsize và
Pointsize)
Cách dễ nhất để sử dụng Weka là thông qua một giao diện người dùng đồ họa
được gọi là Explorer. Điều này cho phép truy cập đến tất cả các chức năng bằng cách sử
dụng menu và form. Ví dụ, bạn có thể nhanh chóng đọc trong một tập dữ liệu từ một tập
tin ARFF (hoặc spreadsheet) và xây dựng một cây quyết định từ nó. Nhưng học cây
quyết định chỉ là khởi đầu: nhiều thuật toán khác để khám phá. Giao diện Explorer sẽ
giúp bạn làm việc đó.Nó hướng dẫn bạn bằng cách đưa ra sự lựa chọn menu, bằng cách
buộc bạn phải làm việc trong một trật tự thích hợp các lựa chọn cho đến khi chúng được
áp dụng và bằng cách điền vào các form. Công cụ tool-tips hiển thị cửa sổ mô tả khi con
trỏ chuột đi qua các mục trên màn hình để giải thích những gì họ làm. Giá trị mặc định
hợp lý đảm bảo rằng bạncó thể nhận được kết quả mà chỉ cần công sức bỏ ra nhỏ nhất,
nhưng bạn sẽ phải suy nghĩ về những gì bạn đang làm để hiểu kết quả có ý nghĩa gì.
Giao diện Knowledge Flow cho phép bạn thiết kế cấu hình cho trực tiếp xử lý dữ
liệu. Một bất lợi cơ bản của giao diện Explorer là nó nắm giữ tất cả mọi thứ trong bộ nhớ
chính khi bạn mở một tập dữ liệu, nó ngay lập tức tải tất cả lên bộ nhớ. Điều này có nghĩa
rằng Explorer chỉ có thể được áp dụng cho các vấn đề kích thước nhỏ đến trung bình.
Tuy nhiên, Weka chứa một số thuật toán gia tăng có thể được sử dụng để xử lý các bộ dữ
liệu rất lớn. Giao diện Knowledge Flow cho phép bạn kéo hộp thoại về các thuật toán học
và nguồn dữ liệu quanh màn hình và kết chúng lại với nhau thành cấu hình bạn mong
9
muốn. Nó cho phép bạn chỉ định một dòng dữ liệu bằng cách kết nối các thành phần đại
diện cho nguồn dữ liệu, công cụ tiền xử lý, các thuật toán học, phương pháp đánh giá, và
mô-đun trực quan. Nếu các bộ lọc và các thuật toán học có khả năng học tập gia tăng, dữ
liệu sẽ được nạp và xử lý từng bước.
Giao diện thứ ba của Weka là Experimenter, giao diện này được thiết kế để giúp
bạn trả lời cơ bản câu hỏi thực tế khi áp dụng các kỹ thuật phân lớp và hồi quy: phương
pháp và các giá trị tham số nào làm việc tốt nhất cho các vấn đề nhất định? Thường không
có cách nào để trả lời câu hỏi này một độ ưu tiên, và một lý do chúng tôi phát triển phần
mềm là để cung cấp một môi trường cho phép Weka người sử dụng để so sánh một loạt
các kỹ thuật học. Điều này có thể được thực hiện tương tác bằng cách sử dụng giao diện
Explorer. Tuy nhiên, giao diện Experimenter cho phép bạn tự động hóa quá trình bằng
cách làm cho nó dễ dàng để chạy phân lớp và các bộ lọc với các cài đặt tham số khác nhau
trên một bộ dữ liệu, thu thập số liệu thống kê hiệu suất, và để thực hiện các kiểm tra quan
trọng. Người dùng cao cấp có thể sử dụng Experimenter để phân phối tải các phép tính
toán trên nhiều máy tính bằng cách sử dụng Java để gọi phương thức từ xa (Remote
Method Invocation - RMI). Bằng cách này, bạn có thể thiết lập Experimenter thống kê quy
mô lớn và để chúng chạy.
Đằng sau những giao diện tương tác nằm các chức năng cơ bản của Weka, Weka có
thể được truy cập ở dạng thô bằng cách nhập vào các lệnh văn bản, cho phép truy cập cho
tất cả mọi ngườicác tính năng của hệ thống. Khi bạn mở ứng dụng Weka, bạn phải lựa
chọn trong số bốn giao diện người dùng khác nhau: Explorer, Knowledge Flow,
Experimenter, và giao diện dòng lệnh (Command Line Interface - CLI). Hầu hết mọi người
ban đầu chọn Explorer để đơn giản.
10
Chương 2: Giới thiệu về cây quyết định
2.1 Mô hình cây quyết định
Cây quyết định (decision tree) là một trong những hình thức mô tả dữ liệu trực quan nhất,
dễ hiểu nhất đối với người dùng. Cấu trúc của một cây quyết định bao gồm các nút và các
nhánh. Nút dưới cùng được gọi là nút lá, trong mô hình phân lớp dữ liệu chính là các giá
trị của các nhãn lớp (gọi tắt là nhãn). Các nút khác nút lá được gọi là các nút con, đây
còn là các thuộc tính của tập dữ liệu, hiển nhiên các thuộc tính này phải khác thuộc tính
phân lớp. Mỗi một nhánh của cây xuất phát từ một nút p nào đó ứng với một phép so
sánh dựa trên miền giá trị của nút đó. Nút đầu tiên được gọi là nút gốc của cây. Xem
xét một ví dụ về một cây quyết định như sau[1]:
Từ bảng dữ liệu trên, ta xây dựng được cây quyết định như sau:
11
Cây quyết định của ví dụ trên có thể được giải thích như sau: các nút lá chứa các giá trị
của thuộc tính phân lớp (thuộc tính “Play”). Các nút con tương ứng với các thuộc tính
khác thuộc tính phân lớp; nút gốc cũng được xem như một nút con đặc biệt, ở đây chính
là thuộc tính “Outlook”. Các nhánh của cây từ một nút bất kỳ tương đương một phép
so sánh có thể là so sánh bằng, so sánh khác, lớn hơn nhỏ hơn… nhưng kết quả các phép
so sánh này bắt buộc phải thể hiện một giá trị logic (Đúng hoặc Sai) dựa trên một giá trị
nào đó của thuộc tính của nút. Lưu ý cây quyết định trên không có sự tham gia của thuộc
tính “thu nhập” trong thành phần cây, các thuộc tính như vậy được gọi chung là các
thuộc tính dư thừa bởi vì các thuộc tính này không ảnh hưởng đến quá trình xây dựng
mô hình của cây.
Các thuộc tính tham gia vào quá trình phân lớp thông thường có các giá trị liên tục hay
còn gọi là kiểu số (ordered or numeric values) hoặc kiểu rời rạc hay còn gọi là kiểu dữ
liệu phân loại (unordered or category values). Ví dụ kiểu dữ liệu lương biểu diễn bằng số
thực là kiểu dữ liệu liên tục, kiểu dữ liệu giới tính là kiểu dữ liệu rời rạc (có thể rời rạc
hóa thuộc tính giới tính một cách dễ dàng).
Tuy nhiên, nếu không chọn được thuộc tính phân lớp hợp lý tại mỗi nút, ta sẽ tạo
ca cây rất phức tạp, ví dụ như cây dưới đây:
Như vậy, vấn đề đặt ra là phải chọn được thuộc tính phân lớp tốt nhất. Phần tiếp theo
sẽ giới thiệu các tiêu chuẩn, dựa vào các tiêu chuẩn này, ta sẽ chọn ra thuộc tính phân
lớp tốt nhất tại mỗi nút.
13
2.3 Một số thuật toán
Với tiêu chí xây dựng cây quyết định ngày càng đơn giản, cho độ chính xác phân lớp cao,
chi phí thấp, có khả năng mở rộng,… thì có rất nhiều tác giả đã cho ra đời các thuật toán
ngày càng tối ưu hơn. Một số thuật toán tiêu biểu sau:
Algorithms References
CLS(Concept learning System) C. I. Hovland và E. B. Hunt
CART(Classification And Regression Tree) Breiman et al.(1984)
ID3(Interactive Dichotomizer 3) Quinlan(1986)
C4.5 Quinlan(1993)
CHAID (CHi-squared Automatic Interaction Detecor) Kass(1980)
QUEST LohandShih(1997)
CAL5 Muller and Wysotzki(1994)
FACT Loh and Vanichsetakul(1988)
LMDT Brodley and Utgoff(1995)
T1 Holte(1993)
PUBLIC Rastogi and Shim(2000)
MARS Friedman(1991)
SLIQ (Supervised Learning in Quest) Mehta(1996)
SPRINT(A Scalable Parallel Classifier for Shafer, Agrawal, Mehta
DataMining)
…. ….
Trong phạm vi đồ án môn học này chúng tôi xin trình bày cụ thể 4 thuật toán gồm thuật
toán CLS, ID3, C4.5, SPRINT.
14
1. Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện.
2. Nếu tất cả các mẫu trong T thuộc cùng một lớp và có thuộc tính quyết định
mang giá trị :
“yes” thì gán nhãn cho nút T là "yes" và dừng lại. T lúc này là nút lá.
"no” thì gán nhãn cho nút T là "no" và dừng lại. T lúc này là nút lá.
3. Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp "yes" và
"no" thì:
Chọn một thuộc tính X trong tập thuộc tính của tập mẫu dữ liệu, X có các
giá trị v1, v2, …vn.
Chia tập mẫu trong T thành các tập con T1, T2,….,Tn. chia theo giá trị của
X.
Tạo n nút con Ti (i=1,2…n) với nút cha là nút T.
Tạo các nhánh nối từ nút T đến các nút Ti (i=1,2…n) là các thuộc tính của X.
4. Thực hiện lặp cho các nút con Ti(i =1,2..n) và quay lại bước 2.
Ví dụ 3.1: Cho tập huấn luyện gồm 14 mẫu, dựa vào thời tiết để xác định người đó có đi
chơi Tennis hay không?
Theo các bước của thuật toán ta có cây quyết định như sau:
15
Quang
Nắn Âm Mư
Má Ấm Nón Nh
[D [D8, [D1,
Độ C
C khô
T Ca
C khô
Ta nhận thấy trong bước 3 của thuật toán, thuộc tính được chọn để triển khai cây là tuỳ ý.
Nếu ta chọn thuộc tính “Độ ẩm” làm thuộc tính để triển khai T1 thì ta có 1 cây khác:
Quang
Nan Am MU
T1[D1, D2, D8, D9, T2[D3, D7, D12, T3[D4, D5, D6,
D13]
Oo G
T Ca Nh M
C kha
C
16
Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự
chọn thuộc tính triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau. Việc
lựa chọn thuộc tính sẽ ảnh hưởng tới độ rộng, độ sâu, độ phức tạp của cây. Vì vậy một
câu hỏi đặt ra là thứ tự thuộc tính nào được chọn để triển khai cây sẽ là tốt nhất. Vấn đề
này sẽ được giải quyết trong thuật toán ID3 dưới đây.
- Gain(S,DA)= 0.151
- Gain(S,G)= 0.048
-+Chọn Quang cảnh làm thuộc tính phân lớp vì có Gain lớn nhất
- Vẽ cây quyết định:
Quang Cảnh
Nang Am Mưa
u
Do Quang cảnh=Nắng và Quang cảnh=Mưa chưa xác định được thuộc tính phân lớp
nên ta chia tập huấn liệu thành 2 bảng như hình trên và tiếp tục tìm thuộc tính phân lớp
cho 2 bảng mẫu huấn luyện. Kết quả cuối cùng ta có cây quyết định sau:
19
Quang Cảnh
Nang Am Mưa
u
[D1, D2, D8, D9, [D3, D7, D12, [D4, D5, D6,
D11] D13] D10
S
S Nang[2+,3-] S Am u[4+,0-] [3+
Mưa
Độ am Có Gió
T Cao Nh!
B ;
S S cao [0+,3-
[2+,0-] ] S Nh!;
TB [3+,0-]
kh6n
Có Có
Từ cây quyết định trên tạo ra các luật:
– R1: IF QC=Âm u THEN Chơi Tennis=Có.
– R2: IF QC=Nắng AND Độ ẩm=TB THEN Chơi Tennis=Có.
– R3: IF QC=Nắng AND Độ ẩm=Cao THEN Chơi Tennis=Không.
– R4: IF QC=Mưa AND Gió=Nhẹ THEN Chơi Tennis=Có
– R5: IF QC=Mưa AND Gió=Mạnh THEN Chơi Tennis=Không
Nhận xét: Với việc tính toán giá trị Gain để lựa chọn thuộc tính tối ưu cho việc triển
khai cây, thuật toán ID3 được xem là một cải tiến của thuật toán CLS. Tuy nhiên thuật
toán ID3 còn các vấn đề chưa được giải quyết như sau:
o Vấn đề overfitting (sẽ trình bày kỹ ở mục 4)
o Độ đo Information Gain chưa thật sự tốt vì còn thiên về các thuộc tính có nhiều
giá trị.
o Xử lý các thuộc tính có kiểu giá trị liên tục (ví dụ như kiểu số thực)
o Xử lý các bộ học thiếu giá thuộc tính (missing-value attributes)
20
o Xử lý các thuộc tính có chi phí (cost) khác nhau
21
Chương 3: Chức năng phân lớp sử dụng trong Weka
3.1 Phân lớp dữ liệu trong Weka
Phân lớp (còn được gọi là cây phân lớp hoặc cây quyết định) là một thuật toán
khai thác dữ liệu tạo ra một hướng dẫn từng bước làm thế nào để xác định sản lượng của
một trường hợp dữ liệu mới. Cây nó tạo ra là chính xác rằng: một cây mà mỗi nút trong
cây đại diện cho một vị trí mà một quyết định phải được tạo ra dựa trên dữ liệu đầu vào
và sau đó di chuyển đến nút tiếp theo và tiếp theo cho đến khi tới nút lá cho biết dự đoán
đầu ra.
Ví dụ: Từ dữ liệu thô đầu vào là bảng dữ liệu quyết định đi chơi tennis dựa vào
thời tiết
22
Cây phân lớp đơn giản này tìm cách trả lời câu hỏi "Bạn sẽ hiểu cây phân loại
không?" Tại mỗi nút, bạn trả lời các câu hỏi và di chuyển vào chi nhánh đó cho đến khi
tới nút lá, tại đó mà câu trả lời là có hoặc không. Mô hình này có thể được sử dụng cho
bất kỳ trường hợp dữ liệu không rõ, và bạn có thể dự đoán liệu trường hợp dữ liệu không
biết này sẽ học các cây phân loại bằng cách yêu cầu họ chỉ có hai câu hỏi đơn giản. Đó là
dường như lợi thế lớn của một cây phân loại nó không đòi hỏi phải có rất nhiều thông tin
về các dữ liệu để tạo ra một cây mà có thể là rất chính xác và rất nhiều thông tin.
Một trong những khái niệm quan trọng của cây phân loại là khái niệm của việc sử
dụng một "tập huấn luyện" để tạo ra các mô hình. Điều này giúp làm một tập dữ liệu với
giá trị đầu ra được biết và sử dụng dữ liệu này để xây dựng mô hình. Sau đó, bất cứ khi
nào chúng ta có một tập dữ liệu mới, với giá trị đầu ra không rõ, chúng tôi đặt nó thông
qua các mô hình và đưa ra các dữ liệu dự đoán.Tất cả điều này giống như trong mô hình
hồi quy. Tập huấn luyện được chia thành hai phần: khoảng 60-80% của các dữ liệu và đặt
nó vào tập huấn luyện, được sử dụng để tạo ra các mô hình; sau đó, nhận các dữ liệu còn
lại và đặt nó vào một tập kiểm tra, tập này sẽ được sử dụng ngay lập tức sau khi tạo mô
hình để kiểm tra tính chính xác của mô hình vừa được tạo ra.
Tại sao là đây là bước mở rộng quan trọng trong mô hình này? Vấn đề này được
gọi là overfitting: Nếu chúng ta cung cấp các dữ liệu quá nhiều vào mô hình tạo ra, mô
hình sẽ thực sự được tạo ra hoàn hảo, nhưng chỉ dành cho dữ liệu đó thôi. Hãy nhớ rằng:
Chúng ta muốn sử dụng mô hình để dự đoán những điều chưa biết trong tương lai, chúng
ta không muốn mô hình dự đoán những điều chúng ta đã biết. Đây là lý do tại sao chúng
ta tạo ra một tập kiểm tra. Sau khi tạo ra các mô hình, chúng ta kiểm tra để đảm bảo rằng
sự chính xác của mô hình chúng tôi xây dựng không giảm với các thiết lập thử nghiệm.
Điều này đảm bảo rằng mô hình của chúng tôi sẽ dự đoán chính xác giá trị tương lai vô
định. Chúng ta sẽ thấy điều này trong các thao tác sử dụng WEKA.
Điều này sẽ mang đến một một trong những khái niệm quan trọng của cây phân
lớp: khái niệm cắt tỉa (prunning). Prunning liên quan đến việc loại bỏ các nhánh của cây
phân lớp. Tại sao lại muốn loại bỏ thông tin từ cây? Điều này là do các khái niệm về
overfitting. Khi bộ dữ liệu phát triển lớn hơn và số thuộc tính phát triển lớn hơn, chúng ta
có thể tạo ra các cây trở nên ngày càng phức tạp. Về mặt lý thuyết, có thể có một cây với
leaves = (rows * attributes) . Điều đó sẽ không giúp chúng ta ở tất cả các dự đoán chưa
biết trong tương lai, vì nó hoàn toàn phù hợp cho dữ liệu huấn luyện hiện tại. Chúng ta
muốn tạo ra một sự cân bằng. Chúng ta muốn cây của chúng ta đơn giản càng tốt, với
các nút càng ít càng tốt. Nhưng chúng ta cũng muốn nó được là chính xác nhất có thể.
Cuối cùng, việc nâng cao về phân loại trước khi sử dụng WEKA là khẳng định sai
và phủ định sai (false positive và false negative). Về cơ bản, một khẳng định sai là một ví
dụ dữ liệu nơi mà các mô hình chúng ta đã tạo ra dự đoán nó phải là tích cực, nhưng thay
vào đó, giá trị thực tế là tiêu cực. Ngược lại, phủ định sai là một ví dụ dữ liệu mô hình dự
23
đoán nó phải được tiêu cực, nhưng giá trị thực tế là tích cực.
Những lỗi này cho thấy có vấn đề trong mô hình của chúng ta, như là mô hình
phân lớp không chính xác một số dữ liệu. Trong khi một số phân lớp không chính xác có
thể được mong đợi, thì việc tạo ra mô hình để xác định tỷ lệ phần trăm chấp nhận được
lỗi là những gì. Ví dụ, nếu các kiểm tra theo dõi nhịp tim ở bệnh viện, rõ ràng, bạn sẽ yêu
cầu một tỷ lệ lỗi rất thấp. Mặt khác, nếu bạn chỉ sử dụng khai thác dữ liệu đơn giản trong
một bài viết về khai thác dữ liệu nào đó, việc chấp nhận được tỷ lệ phần trăm lỗi của bạn
có thể cao hơn nhiều. Để thực hiện việc này thậm chí còn thêm một bước nữa, bạn cần
phải quyết định % phủ định sai, so với khẳng định sai có thể chấp nhận được. Ví dụ một
mô hình thư rác: khẳng định sai (một thực tế e-mail mà được gọi là spam) có lẽ là nguy
hiểm hơn rất nhiều hơn so với một phủ định sai (thư rác nhận được dán nhãn không phải
spam). Trong một ví dụ như thế này, bạn có thể đánh giá một tối thiểu là tỷ lệ 100/1 phủ
định sai trên khẳng định để có thể chấp nhận được.
Mô tả dữ liệu:
3.3.1.1 Đây là một cơ sở dữ liệu đơn giản có chứa 17 thuộc tính giá trị Boolean. Thuộc
tính “type” là thuộc tính lớp.
3.3.1.2 Số các trường hợp :101
3.3.1.3 Số các thuộc tính: 18 (animal name, 15 Boolean attributes, 2 numerics)
3.3.1.4 Thông tin thuộc tính: (tên và kiểu dữ liệu)
1. animal name: Unique for each instance
2. hair Boolean
3. feathers Boolean
4. eggs Boolean
5. milk Boolean
6. airborne Boolean
7. aquatic Boolean
8. predator Boolean
9. toothed Boolean
10. backbone Boolean
11. breathes Boolean
12. venomous Boolean
13. fins Boolean
14. legs Numeric (set of values: {0,2,4,5,6,8})
15. tail Boolean
16. domestic Boolean
17. catsize Boolean
18. type Numeric (integer values in range [1,7])
3.3.1.5 Dữ liệu được chia ra làm 7 lớp nhưa sau:
25
1 -- (41) aardvark, antelope, bear, boar, buffalo, calf, cavy, cheetah, deer,
dolphin, elephant, fruitbat, giraffe, girl, goat, gorilla, hamster, hare,
leopard, lion, lynx, mink, mole, mongoose, opossum, oryx, platypus, polecat,
pony, porpoise, puma, pussycat, raccoon, reindeer, seal, sealion, squirrel,
vampire, vole, wallaby,wolf
2 -- (20) chicken, crow, dove, duck, flamingo, gull, hawk, kiwi, lark,
ostrich,
26
3.3.2.1.3 Nhấn Visualize All để xem biểu đồ bộ dữ liệu Zoo
27
3.3.2.2.2 Chọn thuật toán Naive Bayes trong mục Classifier
3.3.2.2.3 Trong mục Test option, ta dùng Cross-validation Folds 10. Đây là kỹ
thuật chủ yếu được sử dụng trong xây dựng predictive Model. Trong đó
dữ liệu gốc sẽ được chia thành n phần bằng nhau (n-fold), và quá trình
Train/Test Model thực hiện lặp lại n lần. Tại mỗi lần Train/Test Model, 1
phần dữ liệu dùng để Test và (n-1) phần còn lại dùng để Train.
3.3.2.2.4 Chọn thuộc tính phân lớp là (Nom) type
3.3.2.2.5 Nhấn vào Start để tiến hành phân lớp. Kết quả:
3.3.2.2.5.1 Phân được 7 lớp : mammal, bird, reptile, fish, amphibian, insect,
invertebrate
3.3.2.2.5.2 Phân loại chính xác: 95,0495 % các trường hợp
3.3.2.2.5.3 Phân loại không chính xác: 4,9505 % các trường hợp
28
=== Summary ===
a b c d e f g <-- classified as
39 0 0 2 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 2 1 2 0 0 | c = reptile
0 0 0 13 0 0 0 | d = fish
0 0 0 0 4 0 0 | e = amphibian
0 0 0 0 0 8 0 | f = insect
1 0 0 0 0 0 10 | g = invertebrate
29
3.3.2.3.2 Chọn Cross validation Folds trong mục Test options là 10
3.3.2.3.3 Chọn thuộc tính để phân lớp là type
3.3.2.3.4 Nhấn Start để thực thi phân lớp. Kết quả
3.3.2.3.4.1 Phân được 7 lớp : mammal, bird, reptile, fish, amphibian, insect,
invertebrate
3.3.2.3.4.2 Phân loại chính xác: 92.0792 % các trường hợp
3.3.2.3.4.3 Phân loại không chính xác: 7.9208 % các trường hợp
=== Summary ===
a b c d e f g <-- classified as
30
41 0 0 0 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 3 1 0 1 0 | c = reptile
0 0 0 13 0 0 0 | d = fish
0 0 1 0 3 0 0 | e = amphibian
0 0 0 0 0 5 3 | f = insect
1 0 0 0 0 2 8 | g = invertebrate
31
Chương 4: Kết luận
Cây phân loại là tạo ra một cây với các nhánh, các nút, và lá cho phép chúng ta lấy
điểm dữ liệu không rõ và cho xuống cây, áp dụng các thuộc tính của các điểm dữ liệu cho
cây cho đến khi đạt được một lá và đầu ra của dữ liệu có thể được xác định. Chúng ta đã
học được rằng để tạo ra một mô hình phân loại cây tốt, chúng ta cần phải có một dữ liệu
hiện có với dữ liệu đầu ra rõ, từ đó chúng ta có thể xây dựng mô hình của chúng ta.
Chúng ta cũng thấy rằng chúng ta cần phải phân chia dữ liệu thành hai phần: một tập
huấn luyện, được sử dụng để tạo ra các mô hình và thiết lập một thử nghiệm, được sử
dụng để xác minh rằng mô hình là chính xác và không overfitted.
32