You are on page 1of 29

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

----

BÀI TẬP LỚN MÔN HỌC KHAI PHÁ DỮ LIỆU


TÊN ĐỀ TÀI: KHAI PHÁ DỮ LIỆU VỚI CÂY QUYẾT ĐỊNH
VÀ THUẬT TOÁN ID3

Giáo viên hướng dẫn: Ts. Trần Hùng Cường


Lớp: KHMT1-K9

HÀ NỘI 04-05
KHOA CÔNG NGHỆ THÔNG TIN
----

BÀI TẬP LỚN MÔN HỌC


KHAI PHÁ DỮ LIỆU

Tên đề tài: Khai phá dữ liệu với cây quyết định và thuật toán ID3

Giáo viên hướng dẫn: Ts. Trần Hùng Cường

Lớp:KHMT1-K9
Nhóm thực hiện
Trần Thái Thanh – MSV:0941060051
Phạm Văn Minh –MSV:0941060064
Nguyễn Văn Hải -MSV: 0941060079
LỜI CẢM ƠN

Để hoàn thành bài báo cáo thực tập này, trước hết, em xin cảm ơn các thầy giáo, cô

giáo Khoa Công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội, những người đã

dạy dỗ, trang bị cho em những kiến thức chuyên môn trong bốn năm học,và giúp chúng

em hiểu rõ hơn các lĩnh vực đã nghiên cứu để hoàn thành đề tài được giao.

Em xin bày tỏ lòng biết ơn xâu sắc nhất tới thầy giáo Tiến sĩ Đỗ Văn Tuấn, người

đã hướng dẫn, chỉ bảo tận tình để em hoàn thành quá trình thực tập.

Xin cảm ơn bạn bè và gia đình đã động viên cổ vũ, đóng góp ý kiến, trao đổi, động

viên trong suốt quá trình học cũng như làm tốt nghiệp, giúp em hoàn thành đề tài đúng

thời hạn.

Em xin chân thành cảm ơn !

Hà Nội, 04 tháng 05 năm 2018

Nhóm sinh viên


Phạm Văn Minh
Trần Thái Thanh
Nguyễn Văn Hải
NỘ I DUNG

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ DỮ LIỆU ................................. 1


1.1 Phát triển tri thức và khai phá dữ liệu. ......................................................... 1
1.2 Quá trình phát triển tri thức từ cơ sở dữ liệu............................................... 2
1.3 Khai phá dữ liệu. ............................................................................................. 4
CHƯƠNG 2: CÂY QUYÊT ĐỊNH VÀ THUẬT TOÁN ID3 .................................. 10
2.1 Giới thiệu về cây quyết định............................................................................ 10
2.2 Thuật toán ID3 ............................................................................................... 13
2.2.1 Entropy đo tính thuần nhất của tập dữ liệu ........................................... 14
2.2.2 Độ lợi thông tin .......................................................................................... 14
CHƯƠNG 3 : GIỚI THIỆU VỀ CÔNG CỤ WEKA................................................... 21
3.1 Giới thiệu Weka ................................................................................................ 21
3.2 Weka – Môi trường Explorer.......................................................................... 22
3.3 Kết quả minh họa ............................................................................................. 23
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ DỮ
LIỆU

1.1 Phát triển tri thức và khai phá dữ liệu.

Phát hiện tri thức (Knowledge Discovery) trong các cơ sở dữ liệu là một qui trình
nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả
ích, và có thể hiểu được.

Còn khai thác dữ liệu (data mining) là một ngữ tương đối mới, nó ra đời vào khoảng
những năm cuối của của thập kỷ 1980. Có rất nhiều định nghĩa khác nhau về khai phá dữ
liệu. Giáo sư Tom Mitchell đã đưa ra định nghĩa của khai phá dữ liệu 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.”. Với một cách tiếp cận ứng dụng hơn, tiến sĩ Fayyad đã 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 quy luật, ràng buộc, qui tắc trong cơ sở dữ liệu.”. Còn các nhà
thống kê thì xem " khai phá dữ liệu như là một quá trình phân tích được thiết kế thăm dò
một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp và hoặc các mối quan
hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp thức hoá các kết quả tìm được bằng
cách áp dụng các mẫu đã phát hiện được cho tập con mới của dữ liệu".

Nói tóm lại: khai phá dữ liệu là một bước trong quy trình phát hiện tri thức gồm có
các thụât toán khai thác dữ liệu chuyên dùng dưới một số quy định về hiệu quả tính toán
chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu.

Page | 1
1.2 Quá trình phát triển tri thức từ cơ sở dữ liệu.

Quá trình phát hiện tri thức có thể chia thành các bước như sau:

Hình thành và định


nghĩa bài toán

Thu thâp và tiền xử


lý dữ liệu

Khai Phá Dữ Liệu


(Triết xuất tri thức)

Phân tích và đánh


giá tri thức

Sử dụng tri thức


phát hiện được

Hình 1. 1 Quá trình khai phá dữ liệu từ cơ sở dữ liệu

Page | 2
1.2.1 Hình thành và định nghĩa bài toán.
Đây là bước tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này sẽ quyết
định cho việc rút ra những tri thức hữu ích, đồng thời lựa chọn các phương pháp khai phá
dữ liệu thích hợp với mục đích của ứng dụng và bản chất của dữ liệu.

1.2.2 Thu thập và xử lý dữ liệu.


Trong bước này dữ liệu được thu thập ở dạng thô (nguồn dữ liệu thu thập có thể là từ
các kho dữ liệu hay nguồn thông tin internet). Trong giai đoạn này dữ liệu cũng được tiền
xử lý để biến đổi và cải thiện chất lượng dữ liệu cho phù hợp với phương pháp khai phá
dữ liệu được chọn lựa trong bước trên.

Bước này thường chiếm nhiều thời gian nhất trong quá trình khám phá tri thức.

Các giải thuật tiền xử lý dữ liệu bao gồm :


1. Xử lý dữ liệu bị mất/ thiếu: Các dạng dữ liệu bị thiếu sẽ được thay thế bởi các
giá trị thích hợp

2. Khử sự trùng lắp: các đối tượng dữ liệu trùng lắp sẽ bị loại bỏ đi. Kỹ thuật này
không được sử dụng cho các tác vụ có quan tâm đến phân bố dữ liệu.
3. Giảm nhiễu: nhiễu và các đối tượng tách rời khỏi phân bố chung sẽ bị loại đi
khỏi dữ liệu.
4. Chuẩn hoá: miền giá trị của dữ liệu sẽ được chuẩn hoá.
5. Rời rạc hoá: các dạng dữ liệu số sẽ được biến đổi ra các giá trị rời rạc.
6. Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có.
Giảm chiều: các thuộc tính chứa ít thông tin sẽ được loại bỏ bớt.

1.2.3 Khai thác dữ liệu và rút ra tri thức


Đây là bước quan trọng nhất trong tiến trình khám phá tri thức. Kết quả của bước này
là trích ra được các mẫu và/hoặc các mô hình ẩn dưới các dữ liệu. Một mô hình có thể là
một biểu diễn cấu trúc tổng thể một thành phần của hệ thống hay cả hệ thống trong cơ sở
dữ liệu, hay miêu tả cách dữ liệu được nảy sinh. Còn một mẫu là một cấu trúc cục bộ có
liên quan đến vài biến và vài trường hợp trong cơ sở dữ liệu.

1.2.4 Phân tích và đánh giá tri thức

Page | 3
Bước thứ nhất là hiểu các tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và
dự đoán.Trong bước này, kết quả tìm được sẽ được biến đổi sang dạng phù hợp với lĩnh
vực ứng dụng và dễ hiểu hơn cho người dùng.

1.2.5 Sử dụng tri thức phát hiện được


Trong bước này, các tri thức khám phá được sẽ được củng cố, kết hợp lại thành một
hệ thống, đồng thời giải quyết các xung đột tiềm năng trong các tri thức đó. Các mô hình
rút ra được đưa vào những hệ thống thông tin thực tế dưới dạng các môdun hỗ trợ việc
đưa ra quyết định. Các giai đoạn của quá trình khám phá tri thức có mối quan hệ chặt chẽ
với nhau trong bối cảnh chung của hệ thống. Các kỹ thuật được sử dụng trong giai đoạn
trước có thể ảnh hưởng đến hiệu quả của các giải thuật được sử dụng trong các giai đoạn
tiếp theo. Các bước của quá trình khám phá tri thức có thể được lặp đi lặp lại một số lần,
kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện.

1.3 Khai phá dữ liệu.

1.3.1 Các quan niệm về khai phá dữ liệu.


Khai phá dữ liệu là tập hợp các thuật toán nhằm chiết xuất những thông tin có ích từ
kho dữ liệu khổng lồ.

Khai phá dữ liệu được định nghĩa như một quá trình phát hiện mẫu trong dữ liệu, quá
trình này có thể là tự động hay bán tự động, song phần nhiều là bán tự động. Các mẫu
được phát hiện thường hữu ích theo định nghĩa:các mẫu mang lại cho người sử dụng một
lợi thế nào đó, thường là lợi ích về kinh tế.

Khai phá dữ liệu giống n//hư quá trình tìm ra và mô tả mẫu dữ liệu. Dữ liệu như là
một tập hợp các vật hay sự kiện, còn đầu ra của quá trình khai phá dữ liệu thường là
những dự báo của các vật hay các sự kiện mới.

Khai phá dữ liệu được áp dụng trong các cơ sở dữ liệu quan hệ, giao dịch, cơ sở dữ
liệu không gian, cũng như các kho dữ liệu phi cấu trúc, mà điển hình là World Wide
Web.

Khám phá tri thức là quá trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với
các tính chất: Đúng đắn, mới, khả ích và có thể hiểu được. Khai phá dữ liệu là một bước
trong quá trình khám phá tri thức bao gồm các thuật toán khai phá dữ liệu chuyên dùng

Page | 4
dưới một số quy định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu và các mô
hình trong dữ liệu.

Như vậy, mục đích của khám phá tri thức và khai phá dữ liệu là tìm ra các mẫu hoặc
mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị khuất bởi số lượng dữ liệu
khổng lồ. Nhiệm vụ của khai phá dữ liệu.

1.3.2 Quá trình khai phá dữ liệu.

Hình 1. 2 Quá trình khai phá dữ liệu

1.3.2.1.Gom dữ liệu( gatherin).


Tập hợp dữ liệu là bước đầu tiên trong khai phá dữ liệu. Bước này lấy dữ liệu từ trong
một cơ sở dữ liệu, một kho dữ liệu, thậm chí dữ liệu từ những nguồn cung ứng web.

1.3.2.2.Trích lọc dữ liệu( selection).


Ở giai đoạn này dữ liệu được lựa chọn và phân chia theo một tiêu chuẩn nào đó.

1.3.2.3.Làm sạch và tiền xử lý dữ liệu (cleansing prepocessing)

Page | 5
Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất
quan trọng trong quá trình khai phá dữ liệu. Một số lỗi thường mắc phải trong khi gom dữ
liệu là dữ liệu không đầy đủ hoặc không thống nhất, thiếu chặt chẽ. Vì vậy dữ liệu thường
chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu. Ví dụ Sinh viên có
tuổi=200. Giai đoạn thứ ba này nhằm xử lý các dữ liệu như trên(dữ liệu vô nghĩa, dữ liệu
không có khả năng kết nối). Những dữ liệu dạng này thường được xem là thông tin dư
thừa, không có giá trị. Bởi vậy đây làmột quá trình rất quan trọng. Nếu dữ liệu không
được làm sạch- tiền xử lý - chuẩn bị trước thì sẽ gây nên những kết quả sai lệch nghiêm
trọng về sau.

1.3.2.4.Chuyển đổi dữ liệu (tranformation)


Trong giai đoạn này, dữ liệu có thể được tổ chức và sử dụng lại. Mục đích của việc
chuyển đổi dữ liệu là làm cho dữ liệu phù hợp hơn với mục đích khai phá dữ liệu.

1.3.2.5.Phát hiện và trích mẫu dữ liệu (pattern extraction and discovery)


Đây là bước tiếp trong khai phá dữ liệu. Ở trong giai đoạn này nhiều thuật toán khác
nhau đã được sử dụng để trích ra các mẫu từ dữ liệu. Thuật toán thường dùng để trích
mẫu dữ liệu là thuật toán phân loại dữ liệu, kết hợp dữ liệu, thuật toán mô hình hoá dữ
liệu tuần tự.

1.3.2.6.Đánh giá kết quả mẫu (evaluation of result)


Đây là giai đoạn cuối cùng trong quá trình khai phá dữ liệu, ở giai đoạn này các mẫu
dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu. Không phải mẫu dữ liệu nào
cũng hữu ích, đôi khi nó còn bị sai lệch. Vì vậy cần phải đưa ra những tiêu chuẩn đánh
giá độ ưu tiên cho các mẫu dữ liệu để rút ra được những tri thức cần thiêt.

1.3.3.Kiến trúc của hệ thống khai phá dữ liệu.


Database, data warehouse, World Wide Web, và information repositories
- Thành phần này là các nguồn dữ liệu/thông tin sẽ được khai phá.
- Trong những tình huống cụ thể, thành phần này là nguồn nhập
(input) của các kỹ thuật tích hợp và làm sạch dữ liệu.
Database hay data warehouse server
- Thành phần chịu trách nhiệm chuẩn bị dữ liệu thích hợp cho các yêu
cầu khai phá dữ liệu.

Knowledge base

Page | 6
- Thành phần chứa tri thức miền, được dùng để hướng dẫn quá trình
tìm kiếm, đánh giá các mẫu kết quả được tìm thấy.

- Tri thức miền có thể là các phân cấp khái niệm, niềm tin của người
sử dụng, các ràng buộc hay các ngưỡng giá trị, siêu dữ liệu, …
Data mining engine
- Thành phần chứa các khối chức năng thực hiện các tác vụ khai phá
dữ liệu.

User interface

- Thành phần hỗ trợ sự tương tác giữa người sử dụng và hệ thống khai
phá dữ liệu.
+ Người sử dụng có thể chỉ định câu truy vấn hay tác vụ khai phá dữ liệu.
+ Người sử dụng có thể được cung cấp thông tin hỗ trợ việc tìm kiếm, thực hiện
khai phá dữ liệu sâu hơn thông qua các kết quả khai phá trung gian.
+ Người sử dụng cũng có thể xem các lược đồ cơ sở dữ liệu/kho dữ liệu, các cấu
trúc dữ liệu; đánh giá các mẫu khai phá được; trực quan hóa các mẫu này ở các dạng
khác nhau.

1.4 Các kỹ thuật khai phá dữ liêu.


Trong thực tế có nhiều kỹ thuật khai phá dữ liệu khác nhau nhằm thực hiện hai chức
năng mô tả và dự đoán.

- Kỹ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả các tính chất hoặc các
đặc tính chung của dữ liệu trong CSDL hiện có. Một số kỹ thuật khai phá
trong nhóm này là: phân cụm dữ liệu (Clustering), tổng hợp
(Summarisation), trực quan hoá (Visualization), phân tích sự phát triển và
độ lệch (Evolution and deviation analyst),….

- 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 cơ sở dữ liệu hiện thời. Một số kỹ thuật khai phá
trong nhóm này là: phân lớp (Classification), hồi quy (Regression), cây
quyết định (Decision tree), thống kê (statictics), mạng nơron (neural
network), luật kết hợp,….

Page | 7
1.4.1.Phân lớp dữ liệu (tranformation)
Mục tiêu của phân lớp dữ liệu đó là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá
trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu( mỗi mẫu
1 lớp). Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình
chấp nhận được.

1.4.2.Phân cụm dữ liệu


Mục tiêu của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ
liệu vào các cum, sao cho các đối tượng thuộc cùng một lớp là tương đồng.

1.4.3.Cây quyết định


Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp và
dự báo. Các đối tượng dữ liệu được phân thành các lớp. Các giá trị của đối tượng dữ
liệu chưa biết sẽ được dự đoán, dự báo. Tri thức được rút ra trong kỹ thuật này thường
được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng.

1.4.4.Luật kết hợp


Chẳng hạn như có luật: âm nhac, thể thao => thiếu nhi, nghĩa là những người mua
sách âm nhạc và thể thao thì cũng mua sách thiếu nhi. Lúc đó ta sẽ quan tâm đến số
lượng trường hợp khách hàng thỏa mãn luật này trong cơ sở dữ liệu hay độ hỗ trợ
(Support) cho luật này. Độ hỗ trợ cho luật chính là phần trăm số bản ghi có cả sách âm
nhạc, thể thao và thiếu nhi hay tất cả những người thích cả ba loại sách nói trên. Tuy
nhiên, giá trị độ hỗ trợ là không đủ, có thể có trường hợp ta có một nhóm tương đối
những người đọc cả ba loại trên nhưng lại có một nhóm với lực lượng lớn hơn những
người thích sách thể thao, âm nhạc mà không thích sách thiếu nhi. Trong trường hợp
này tính kết hợp rất yếu mặc dù độ hỗ trợ tương đối cao, như vậy chúng ta cần thêm
một độ đo thứ hai đó là độ tin cậy (confidence). Độ tin cậy chính là phần trăm các bản
ghi có sách thiếu nhi trong số các bản ghi có sách âm nhạc và thể thao.

1.4.5Hồi quy
Phương pháp hồi quy tương tự như là phân lớp dữ liệu. Nhưng khác ở chỗ nó dùng
để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá trị rời rạc.

Page | 8
1.4.6Mạng Nơron
Đây là một trong những kỹ thuật khai phá dữ liệu được ứng dụng phổ biến hiện
nay. Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn
luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người.

Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo, dự đoán
với độ chính xác và độ tin cậy cao. Nó có khả năng phát hiện ra được các xu hướng
phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được. Tuy nhiên
phương pháp mạng nơ ron rất phức tạp và quá trình tiến hành nó gặp rất nhiều khó
khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm tra thử nghiệm.

1.4.7Giải thuật di truyền


Là quá trình mô phỏng theo tiến hoá của tự nhiên. Ý tưởng chính của giải thuật là
dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá trong sinh học.

Việc xây dựng các thuật toán di truyền mô phỏng sinh học nhằm tìm ra các giải
pháp tốt nhất bao gồm các bước sau:

1. Tạo ra cơ chế mã di truyền dưới dạng các xâu của một bảng mã
ký tự hạn chế.
2. Thiết lập môi trường nhân tạo trên máy tính có các giải pháp có
thể tham gia “đấu tranh sinh tồn” với nhau để xác định độ đo thành
công hay thất bại, hay còn gọi là “hàm thích nghi”.
3. Phát triển các “phép lai ghép” để các giải pháp kết hợp với nhau.
Khiđó các xâu mã di truyền của giải pháp cha và mẹ bị cắt đi và
xếp lại, trong quá trình sinh sản như vậy các kiểu đột biến có thể
được áp dụng.
Cung cấp một quần thể các giải pháp ban đầu tương đối đa dạng và để máy tính thực
hiện “cuộc chơi tiến hóa” bằng cách loại bỏ các giải pháp từ mỗi cá thể và thay thế
chúng bằng các con cháu hoặc các đột biến của các giải pháp tốt. Thuật toán sẽ kết thúc
khi một họ các giải pháp thành công được sinh ra.

Page | 9
CHƯƠNG 2: CÂY QUYÊT ĐỊNH VÀ THUẬT TOÁN
ID3

2.1 Giới thiệu về cây quyết định

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để
phân lớp các đối tượng dựa vào dãy các luật (series of rules). Các thuộc tính của đối
tượng (ngoại trừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữ liệu
khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc tính phân
lớp phải có kiểu dữ liệu là Binary hoặc Ordinal.

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes)
của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết
(unseen data)

Bài viết này chỉ trình bày ứng dụng cây quyết định vào giải quyết bài toán phân
lớp. Nếu bạn quan tâm đến lý thuyết về xây dựng cây quyết định như thế nào (các thuật
toán xây dựng cây quyết định), các bạn có thể tìm đọc thêm các tài liệu khác hoặc đón
đọc bài viết tiếp theo

Để giúp các bạn ứng dụng được cây quyết định trong bài toán phân lớp chúng
ta cùng bắt đầu với ví dụ dưới đây:

Ta có dữ liệu (training data) về 10 đối tượng (người). Mỗi đối tượng được mô tả
bởi 4 thuộc tính là Gender, Car Ownership, Travel Cost/Km, Income Level và 1
thuộc tính phân loại (category attribute) là Transportation mode. Trong đó thuộc tính
Gender có kiểu binary, thuộc tính Car Ownership có kiểu Quantitative integer (0,1),
Travel Cost/Km và Income Level có kiểu dữ liệu Ordinal.

Tranining data cho biết sự lựa chọn về loại phương tiện vận chuyển (car, bus,
train) của khách dựa vào 4 thuộc tính đã cho (xem bảng).

Page | 10
Attributes Classes
Travel
Car Income Transportation
Gender Cost
ownership Level mode
($)/km
Male 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Female 1 Cheap Medium Train
Female 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Male 0 Standard Medium Train
Female 1 Standard Medium Train
Female 1 Expensive High Car
Male 2 Expensive Medium Car
Female 2 Expensive High Car

Dựa vào Training Data ở trên, chúng ta có thể tạo ra cây quyết định như sau

Chú ý rằng trong cây quyết định trên, thuộc tính “Income Level” không xuất
hiện trong cây bởi vì dựa vào training data đã cho, thuộc tính “Travel Cost/Km” sẽ
sinh ra cây quyết định tốt dùng để phân loại tốt hơn “Income Level”

Làm sao để sử dụng cây quyết định trong dự đoán lớp của các dữ liệu chưa
biết

Mục đích chính của cây quyết định là dùng để dự đoán lớp (xác định lớp) của
các đối tượng chưa biết (unseen data). Giả sử rằng ta có dữ liệu về 3 người với các giá

Page | 11
trị dữ liệu đã biết về các thuộc tính Gender, Car Ownership, Travel Cost/Km, Income
Level. Tuy nhiên ta chưa biết họ sẽ chọn phương tiện vận chuyển nào (Car, Bus,
Train). Nhiệm vụ của chúng ta là sử dụng cây quyết định đã tạo ra để dự đoán (predict)
Alex, Buddy và Cherry sẽ chọn phương tiện vận chuyển nào dựa vào 4 thuộc tính của
họ. Dữ liệu dưới đây còn được gọi là Testing Data.

Travel
Person Car Income Transportation
Gender Cost
name ownership Level Mode
($)/km
Alex Male 1 Standard High ?
Buddy Male 0 Cheap Medium ?
Cherry Female 1 Cheap High ?

Chúng ta bắt đầu từ node gốc của cây (root node) từ thuộc tính Travel Cost/Km,
ta thấy rằng nếu Travel Cost/Km là Expensive thì người đó sẽ chọn phương tiện
là Car. Nếu Travel Cost/Km là standard thì họ sẽ chọn phương tiện vận chuyển
là Train. Nếu Travel Cost/Km là Cheap thì cây quyết định cần tới giá trị của
trường Gender của người đó, nếu Gender là Male thì chọn Bus, nếu giới tính
là Female thì cây quyết định cần kiểm tra xem người đó có sử hữu bao nhiêu xe hơi
(Car Ownership). Nếu số xe hơi sở hữu là 0 thì người đó sẽ chọn xe Bus, nếu số xe hơi
sở hữu là 1 thì người đó sẽ chọn Train.

Theo cây quyết định trên, các luật (Series of Rules) được sinh ra từ cây quyết định
dùng để dự đoán như sau:

Rule 1 : If Travel cost/km is expensive then mode = car

Rule 2 : If Travel cost/km is standard then mode = train

Rule 3 : If Travel cost/km is cheap and gender is male then mode = bus

Rule 4 : If Travel cost/km is cheap and gender is female and she owns no car then
mode = bus

Rule 5 : If Travel cost/km is cheap and gender is female and she owns 1 car then mode
= train

Dựa vào các luật này, việc dự đoán lớp cho các dữ liệu chưa biết (unseen data
hay Testing data) rất đơn giản. Trong ví dụ này, Alex có giá trị của thuộc tính Travel
Cost/Km là Standard nên sẽ chọn phương tiện là Train (Rule 2) mà không cần quan
tâm đến các thuộc tính khác của Alex. Buddy có giá trị của thuộc tính Travel
Cost/Km là Cheap và Gender của anh ta là Male nên anh ta sẽ chọn Bus (Rule
Page | 12
3). Cheery cũng có giá trị thuộc tính Travel Cost/Km là Cheap
nhưng Gender là Female và sở hữu 1 xe hơi cho nên theo cây quyết định trên (Rule
5) cô ta sẽ chọn phương tiện là Train.

Kết quả phân lớp bằng cây quyết định như sau:

Person Travel Cost Car Transportation


Gender
name ($)/km ownership Mode
Alex Standard Male 1 Train
Buddy Cheap Male 0 Bus
Cherry Cheap Female 1 Train

Cây quyết định là một phương pháp phân lớp rất hiệu quả và dễ hiểu. Tuy nhiên
có một số chú ý khi sử dụng cây quyết định trong xây dựng các mô hình phân lớp như
sau:

Hiệu của phân lớp của cây quyết định (Series of Rules) phụ thuộc rất lớn vào
training data. Chẳn hạn cây quyết định được tạo ra bởi chỉ giới hạn 10 samples training
data trong ví dụ trên thì hiệu quả ứng dụng cây quyết định để dự đoán các trường hợp
khác là không cao (thường training data phải đủ lớn và tin cậy) và vì vậy ta không thể
nói rằng tập các luật (Series of Rules) được sinh ra bở cây quyết định trên là tập luật tốt
nhất.

Có rất nhiều thuật toán phân lớp như ID3, J48, C4.5, CART (Classification and
Regression Tree),… Việc chọn thuật toán nào để có hiệu quả phân lớp cao tuy thuộc
vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các
thuật toán. Chẳn hạn như thuật toán ID3 và CART cho hiệu quả phân lớp rất cao đối
với các trường dữ liệu số (quantitative value) trong khi đó các thuật toán như J48, C4.5
có hiệu quả hơn đối với các dữ liệu Qualititive value (ordinal, Binary, nominal).

2.2 Thuật toán ID3

- Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney,
Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20. Sau đó,
thuật toán ID3 được giới thiệu và trình bày trong mục Induction on decision
trees, machine learning năm 1986. ID3 được xem như là một cải tiến của
CLS với khả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tại
mỗi bước. ID3 xây dựng cây quyết định từ trên- xuống (top -down) [5].

Page | 13
2.2.1 Entropy đo tính thuần nhất của tập dữ liệu

- Được dùng để đo tính thuần nhất của một tập dữ liệu. Entropy của một tập S
được tính theo công thức:

Entropy ( S )   P  log 2 ( P  )  P  log 2 ( P  )

Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp
“yes” (+) và no (-). Kí hiệu P+ là để chỉ tỷ lẹ các mẫu có giá trị
của thuộc tính quyết định là “yes”, và P- là tỷ lệ các mẫu có giá
trị của thuộc tính quyết định là “no” trong tập S.

Trường hợp tổng quát, dối với tập con S có n phân lớp thì ta
có công thức sau:

n
Entropy ( S )   ( Pi log 2 ( Pi ))
i 1

Trong đó Pi là tỷ lệ các mẫu thuộc lớp I trên tập S các mẫu


kiểm tra.

Các trường hợp đặc biệt:

TH1: Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng
một lớp thì Entropy(S)=0.

TH2: Nếu trong tập S có số mẫu phân bố đều nhau vào các lớp
thì Entropy(S)=1.

Các trường hợp còn lại thì: 0<Entropy(S)<1.

2.2.2 Độ lợi thông tin

- Độ lợi thông tin (tên Tiếng Anh: Information Gain – viết tắt: Gain) là đại
lượng dùng để đo tính hiệu quả cảu một thuộc tính được lựa chọn cho việc

Page | 14
phân lớp. Đại lượng này được thông qua hai giá trị là Information và
Entropy.
- Cho tập dữ liệu S gồm có n thuộc tính Ai (i=1, 2 … n)
Giá trị Information của thuốc tính Ai kí hiệu là Information(Ai) được xác
định bởi công thức:
n
Information( Ai )   log 2 ( Pi )  Entropy ( S )
i 1

Giá trị Gain của thuộc tính A trong tập S kí hiệu là Gain(S, A) và được tính
theo công thức sau:
Sv
Gain( S , A)  Information( A)  Entropy ( A)  Entropy ( S )  
vvalue ( A ) S
Entropy( Sv )

Trong đó:
 S là tập hợp ban đầu với thuộc tính A. Các giá trị của v tương ứng là
các giá trị của thuộc tính A.
 Sv bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.
 |Sv| là số phần tử của tập Sv.
 |S| là số phần từ của tập S.

Trong quá trính xây dựng cây quyết định theo thuật toán ID3 tại mỗi bước
triển khai cây, thuộc tính được chọn để triển khai là thuốc tính có giá trị Gain
lớn nhất

Page | 15
2.2.3 Ví dụ minh họa

Page | 16
Page | 17
Page | 18
Sau khi xây dựng cây, ta có thể rút ra các luật tương ứng bằng cách duyệt các đường đi
trên cây từ nút gốc đến nút lá, mỗi đường đi ứng với một luật:

Vậy ta có tập luật:

IF Quốc tịch = Pháp THEN Nhóm = A;

IF Quốc tịch = Ý THEN Nhóm = B;

IF Quốc tịch = Đức AND Gia cảnh = Độc thân THEN Nhóm = A;

Page | 19
IF Quốc tịch = Đức AND Gia cảnh = Có gia đình THEN Nhóm = B;

Từ tập luật ta có thể suy ra:

Người có vóc dáng nhỏ,mang quốc tịch Pháp, có gia đình thì thuộc nhóm A

Page | 20
CHƯƠNG 3 : GIỚI THIỆU VỀ CÔNG CỤ WEKA

3.1 Giới thiệu Weka

Weka là công cụ phần mềm viết bằng Java, phục vụ lĩnh vực học máy và khai phá dữ
liệu.

Các chức năng chính:


Một tập các công cụ tiền xử lý dữ liệu, các giải thuật học máy, khai phá dữ liệu và các
phương pháp thí nghiệm đánh giá.
Giao diện đồ họa ( Bao gồm cả tính năng hiển thị hóa dữ liệu).
Môi trường cho phép các giải thuật học máy và khai phá dữ liệu.
Có thể tải vể từ địa chỉ:
https://www.cs.waikato.ac.nz/ml/weka/

Page | 21
.Weka – Các môi trường chính
+ Explorer (Chúng ta sử dụng chủ yếu cái này): Môi trường cho phép sử dụng tất cả
các khả năng của weka để khám phá dữ liệu.
+ Experiment: Môi trường cho phép tiến hành các thí nghiệm và thực hiện các kiểm tra
hệ thống (statistical tests) giữa các mô hình học máy.
+ KnowledgeFlow: Môi trường cho phép các tương tác kéo/thả để thiết kế các bước
(các thành phần) của một thí nghiệm.
+ Simple CLI: Giao diện đơn giản kiểu dòng lệnh (như MS-DOS)
+ Workbench: Môi trường kết hợp tất cả giao diện GUI thành một giao diện duy nhất.

3.2 Weka – Môi trường Explorer

+ 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: Để khám phá các luật dữ liệu (Phần nhóm em hướng tới).
Page | 22
+ Select Attributes: Để xác định và lựa chọn các thuộc tính liên quan (quan trọng) của
dữ liệu.
+ Visualize: Để xem (hiển thị) biểu đồ tương tác 2 chiều đối với dữ liệu
Weka – Khuôn dạng dữ liệu
- Weka làm việc với các khuôn dạng dữ liệu có đuôi .arff, csv,…

3.3 Kết quả minh họa


Trong bài toán này, nhóm em đã sử dụng dữ liệu bao gồm các đánh giá về hiệu suất
giảng dạy trên ba
học kỳ thường xuyên và hai học kỳ mùa hè của 151 trợ lý giảng dạy
(TA) bài tập tại Cục Thống kê của Đại học
Wisconsin-Madison. Điểm số được chia thành 3 khoảng bằng nhau
loại ("thấp", "trung bình" và "cao") để tạo thành biến lớp.
Dữ liệu:
https://archive.ics.uci.edu/ml/machine-learning-databases/tae

Mô tả dữ liệu:
+ Bao gồm: 6 attribute
+ Số bản ghi: 151 bản ghi

Page | 23
Page | 24
Page | 25

You might also like