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

Tìm hiểu về kỹ thuật phân lớp SVM và ứng dụng vào việc chọn bài đăng trong Tạp chí Khoa học

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 (1.38 MB, 67 trang )

B GIO DC V O TO
I HC HU
TRNG I HC KHOA HC

TH BCH VI

Tìm hiểu về kỹ thuật phân lớp SVM
và ứng dụng vào việc chọn bài
đăng trong tạp chí khoa học

CHUYấN NGNH: KHOA HC MY TNH
M S: 60.48.01.01

LUN VN THC S KHOA HC MY TNH

Hu, 2015


MỤC LỤC
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các ký hiệu, chữ viết tắt
Danh mục các bảng
Danh mục các hình vẽ
MỞ ĐẦU ................................................................................................................... 1
CHƯƠNG 1. TỔNG QUAN KHAI PHÁ DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP
PHÂN LỚP DỮ LIỆU ..................................................................................... 3
1.1. Tổng quan về khai phá dữ liệu ............................................................................ 3
1.2. Quá trình khai phá dữ liệu ................................................................................... 4
1.3. Ứng dụng của khai phá dữ liệu ............................................................................ 5


1.4. Phương pháp phân lớp dữ liệu ............................................................................. 6
1.4.1. Phân lớp dữ liệu với cây quyết định ................................................................. 7
1.4.1.1. Định nghĩa cây quyết định ............................................................................. 7
1.4.1.2. Phương pháp tổng quát xây dựng cây quyết định ......................................... 8
1.4.2. Thuật toán k - means ...................................................................................... 16
1.4.3. Thuật toán k – láng giếng gần nhất ................................................................ 20
1.5. Tiểu kết chương 1 .............................................................................................. 23
CHƯƠNG 2. KỸ THUẬT PHÂN LỚP DỮ LIỆU SVM .................................... 24
2.1. Giới thiệu ........................................................................................................... 24
2.2. Cơ sở lý thuyết ................................................................................................... 25
2.2.1. Dạng thức tổng quát của bài toán tối ưu ......................................................... 25
2.2.2. Dạng chuẩn của bài toán tối ưu ...................................................................... 26
2.2.3. Hàm Lagrange ................................................................................................ 26
2.2.4. Bài toán đối ngẫu ............................................................................................ 27
2.2.5. Bài toán qui hoạch trơn lồi ............................................................................. 28


2.3. SVM tuyến tính ................................................................................................. 29
2.3.1. Trường hợp tập mẫu phân hoạch tuyến tính được.......................................... 29
2.3.2. Trường hợp tập mẫu không phân hoạch tuyến tính được .............................. 32
2.4. SVM phi tuyến .................................................................................................. 35
2.4.1. Không gian đặc trưng ..................................................................................... 36
2.4.2. Hàm nhân ........................................................................................................ 38
2.5. Lý thuyết chiều VC ........................................................................................... 39
2.5.1. Đường bao tổng quát của một mẫu nhận dạng ............................................... 39
2.5.2. Chiều VC ........................................................................................................ 40
2.5.3. Cực tiểu hóa đường bao lỗi trên cơ sở cực tiểu hóa chiều VC ....................... 41
2.5.4. Cực tiểu hóa lỗi theo cấu trúc ......................................................................... 41
2.6. Thuật toán SMO[10].......................................................................................... 42
2.6.1. Tối ưu hóa hai nhân tử Lagrange.................................................................... 42

2.6.2. Chọn nhân tử Lagrange theo phương pháp Heuristic..................................... 44
2.7. SVM đa lớp........................................................................................................ 44
2.7.1. Phương pháp một chọi một ............................................................................ 45
2.7.2. Phương pháp một chọi phần còn lại ............................................................... 45
2.8. Tiểu kết chương 2 .............................................................................................. 46
CHƯƠNG 3. CHƯƠNG TRÌNH MÔ PHỎNG ................................................... 47
3.1. Giới thiệu tổng quan về quy trình chọn đăng bài viết trên tạp chí .................... 47
3.1.1. Quy định về trình bày một bài báo khoa học ................................................. 47
3.1.2. Quy trình thẩm định và xét đăng bài báo khoa học ........................................ 47
3.2. Giới thiệu công cụ Weka ................................................................................... 48
3.2.1. Các phiên bản Weka ....................................................................................... 49
3.2.2. Cử sổ chính Weka........................................................................................... 49
3.2.3. Màn hình Explorer Preprocess ....................................................................... 50
3.2.4. Màn hình Explorer Classify............................................................................ 51
3.2.5. Cấu trúc tập dữ liệu mẫu ................................................................................ 51
3.2.5.1. Cấu trúc tập CSV ......................................................................................... 52
3.2.5.2. Cấu trúc tập Arff .......................................................................................... 52


3.3. Ứng dụng SVM vào bài toán chọn bài đăng trong Tạp chí Khoa học .............. 53
3.3.1. Quy trình giải bài toán bằng SVM ................................................................. 53
3.3.2. Thực nghiệm và đánh giá ............................................................................... 56
3.4. Tiểu kết chương 3 .............................................................................................. 57
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................ 58
TÀI LIỆU THAM KHẢO...................................................................................... 59


DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Va


Tập các giá trị của thuộc tính a

DT=(U, CD)

Bảng quyết định

w

vectơ trọng số các thuộc tính



Biến nới lỏng

, 

Nhân tử Lagrange

{f(x,)}

Họ hàm (mỗi  tương ứng với một hàm cụ thể)

h

Chiều VC

SVM

Support Vector Machine


VC

Vapnik Chervonenkis

SMO

Squential Minimal Optimization

KKT

Karush – Kuhn – Tucker


DANH MỤC CÁC BẢNG
Số hiệu bảng

Tên bảng

Trang

1.1

Bảng quyết định khách hàng chơi Gold

8

1.2

Bảng quyết định về khách hàng AllElectronics


13

3.1

Cấu trúc lưu trữ tập dữ liệu mẫu dạng CSV

52

3.2

Cấu trúc lưu trữ tập dữ liệu mẫu dạng Arff

52

3.3

Danh sách các thuộc tính đặc trưng

55

3.4

Kết quả thực nghiệm với các hàm nhân khác nhau

56

3.5

Kết quả huấn luyện với hàm nhân tuyến tính


56

3.6

So sánh kết quả dự đoán của SVM với mô hình cây
quyết định

57


DANH MỤC CÁC HÌNH VẼ
Số hiệu hình vẽ

Tên hình vẽ

Trang

1.1

Xây dựng mô hình phân lớp

6

1.2

Kiểm tra và đánh giá mô hình

7

1.3


Ví dụ cây quyết định ứng với Bảng 1.1

9

1.4

Cấu trúc cây quyết định

10

1.5

Sơ đồ thuật toán k – means

17

A – Tập mẫu; B – Nhân tố dự đoán (bao vòng
2.1

tròn); C- Siêu phẳng phân lớp mẫu dự đoán; D –

24

Siêu phẳng phân lớp tốt nhất
Siêu phẳng phân chia dữ liệu thành 2 lớp – và
2.2

lớp + với m là khoảng cách giữa hai lề trong


30

không gian R2
2.3

Phân tách tuyến tính bằng biến nới lỏng 

33

2.4

Trường hợp không thể phân tách tuyến tính

35

2.5

Ánh xạ  từ không gian dữ liệu X vào không
gian đặc trưng F

36

2.6

Ba điểm không tách được bởi đường thẳng

40

2.7


Độ tin cậy VC tăng theo h

41

2.8

Họ hàm được chia thành các tập con theo chiều
VC tăng dần

41

2.9

Phương pháp một chọi một

45

2.10

Phương pháp một chọi phần còn lại

46

3.1

Màn hình chính phần mềm Weka

49

3.2


Màn hình Preprocess của chức năng Explorer

50

3.3

Màn hình Classify của chức năng Explorer

51

3.4

Mô hình dự đoán bài đăng tạp chí

54


1

MỞ ĐẦU
Lý do chọn đề tài
Trong hoạt động nghiên cứu khoa học, các bài báo khoa học đóng một vai trò
rất quan trọng. Nó không chỉ là một bản báo cáo về một công trình nghiên cứu, mà
còn là một đóng góp cho kho tàng tri thức của thế giới. Khoa học tiến bộ cũng nhờ
một phần lớn vào thông tin từ những bài báo khoa học, bởi vì qua chúng mà các nhà
khoa học có dịp trao đổi, chia sẻ và học hỏi kinh nghiệm lẫn nhau. Vì vậy, các bài báo
đăng trên tạp chí phải đảm bảo tính mới và hàm lượng khoa học của việc nghiên cứu
nên việc đưa ra quyết định cuối cùng để chọn bài nào được đăng trên tạp chí dựa vào
kết quả phản biện của các chuyên gia.

Với các hệ hỗ trợ quyết định đã được nghiên cứu và phát triển rất nhiều trong những
thập niên vừa qua, nó đóng một vai trò cơ bản cho khả năng cung cấp thông tin giúp
ích rất nhiều cho nhà quản lý, cho con người ra quyết định. Hệ thống máy tính hỗ trợ
quyết định các nhiệm vụ như thu thập thông tin, xây dựng mô hình, phân tích, kết hợp
và thực hiện quyết định.
Vấn đề phân lớp và dự đoán là khâu rất quan trọng trong khai phá dữ liệu và
học máy, phát hiện tri thức. Có nhiều phương pháp phân lớp được đề xuất, mỗi
phương pháp đều có lợi thế và bất lợi riêng khi sử dụng nhưng kỹ thuật Support
Vector Machines (SVM) được đánh giá là công cụ mạnh và tốt nhất hiện nay cho
những bài toán phân lớp. Nhiều ứng dụng đã và đang được xây dựng dựa trên kỹ thuật
SVM rất hiệu quả. Vì vậy, với mong muốn nghiên cứu và tìm hiểu về việc ứng dụng
kỹ thuật phân lớp SVM để hỗ trợ đưa ra quyết định chọn bài đăng trong tạp chí khoa
học, tôi chọn đề tài “Tìm hiểu về kỹ thuật phân lớp SVM và ứng dụng vào việc chọn
bài đăng trong Tạp chí Khoa học” làm đề tài nghiên cứu.
Mục đích nghiên cứu
Tìm hiểu kỹ thuật phân lớp SVM. Đồng thời xây dựng một hệ thống ứng dụng
phương pháp phân lớp vào việc đưa ra quyết định chọn bài đăng trong tạp chí khoa
học.


2

Đối tượng và phạm vi nghiên cứu
Khai phá dữ liệu, kỹ thuật phân lớp SVM
Phương pháp nghiên cứu
Tìm hiểu, phân tích và tổng hợp tài liệu có liên quan từ các nguồn như: Các bài
báo, sách, giáo trình trong và ngoài nước.
Tiếp đó, tìm hiểu cơ sở lý thuyết để nắm được những yêu cầu, nội dung cụ thể
cần giải quyết cho đề tài.
Ý nghĩa khoa học và thực tiễn của đề tài

Khai phá dữ liệu, là sự khám phá hiệu quả những tri thức từ cơ sở dữ liệu lớn,
và nó trở thành một vấn đề cấp thiết cho việc đưa ra những quyết định. Một vấn đề
quan trọng và phổ biến trong kỹ thuật khai phá dữ liệu là phân lớp và đã được ứng
dụng rộng rãi trong thương mại, y tế, công nghiệp, ... Kỹ thuật phân lớp SVM xuất
phát từ nề tảng toán học nên sẽ giúp việc lựa chọn đăng bài báo tạp chí khoa học mang
tính khách quan, chính xác cao.
Cấu trúc của luận văn
Cấu trúc luận văn gồm: Mở đầu, 3 chương nội dung và phần kết luận cùng với
tài liệu tham khảo
Chương 1: Giới thiệu khai phá dữ liệu và các phương pháp phân lớp dữ liệu.
Chương này giới thiệu các khái niệm cơ bản về khai phá dữ liệu và một số phương
pháp phân lớp dữ liệu.
Chương 2: Kỹ thuật phân lớp dữ liệu SVM. Chương này giới thiệu tổng quan về
SVM, kỹ thuật phân lớp SVM tuyến tính, SVM phi tuyến và SVM đa lớp.
Chương 3: Chương trình mô phỏng. Chương này giới thiệu tổng quan quy trình
chọn bài đăng trên tạp chí, giải quyết bài toán trong việc chọn bài đăng, thu thập dữ
liệu, mô phỏng bằng phần mềm Weka.


3

Chương 1
TỔNG QUAN KHAI PHÁ DỮ LIỆU VÀ
CÁC PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU
1.1. Tổng quan về khai phá dữ liệu
Trong những năm gần đây, sự phát triển của công nghệ thông tin và việc ứng
dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội cũng đồng
nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày càng tăng lên.
Họ lưu trữ các dữ liệu này vì cho rằng trong nó ẩn chứa những giá trị nhất định nào đó.
Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ

5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có
thể làm gì với chúng nhưng họ vẫn tiếp tục thu thập và lưu trữ rất tốn kém với ý nghĩ
lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua hoặc không được tận dụng hết nguồn
dữ liệu lớn. Mặt khác, trong môi trường cạnh tranh, người ta ngày càng cần có nhiều
thông tin với tốc độ nhanh để trợ giúp việc ra quyết định và trả lời những câu hỏi mang
tính chất định tính dựa trên một khối lượng dữ liệu khổng lồ đã có. Một vấn đề đặt ra
là làm thế nào để tổ chức, khai thác những khối lượng dữ liệu khổng lồ và đa dạng đó
được? Do vậy, khai phá dữ liệu (Data mining) ra đời để giúp ta rút trích được những
thông tin có giá trị từ những khối dữ liệu thô khổng lồ ta nhận được.
Khai phá dữ liệu là quá trình phát hiện các mô hình, các tổng kết khác nhau và
các giá trị được lấy từ tập dữ liệu cho trước. Khai phá dữ liệu là sự thăm dò (khảo sát)
và phân tích lượng dữ liệu lớn để khám phá từ dữ liệu ra các mẫu hợp lệ, có ích và có
thể hiểu được. Hợp lệ là các mẫu đảm bảo tính tổng quát và chưa được biết trước đó,
có ích là có thể dựa vào mẫu đó đưa ra các hành động phù hợp, hiểu được là có thể
biên dịch và hiểu thấu đáo các mẫu.
Khai phá dữ liệu bắt nguồn từ nhu cầu thực tế khi mà các kỹ năng phân tích của
con người là không đầy đủ do kích thước và chiều của dữ liệu, tốc độ tăng trưởng của
dữ liệu là rất lớn. Thêm vào đó là những đáp ứng mạnh mẽ của kỹ thuật về khả năng
thu thập dữ liệu, lưu trữ, năng lực tính toán, phần mềm, sự thành thạo về chuyên môn.


4

Để xác định các yếu tố ảnh hưởng đến việc chọn bài đăng trên tạp chí khoa
học, kỹ thuật khai phá dữ liệu phải phát hiện được những bài có hàm lượng khoa học,
có tính thời sự và kết quả phản biện bài báo đó tốt là những bài đó sẽ có khả năng
được chọn đăng cao. Trong quá trình tiếp nhận và lưu trữ các bài viết, tài liệu,… lên
đến hàng triệu file hay bản ghi. Việc quản lý và khai thác lượng lớn dữ liệu này là một
điều rất quan trọng trong khâu quản lý và tổ chức tuyển chọn.
1.2. Quá trình khai phá dữ liệu

Khai phá tri thức đồng nghĩa với khai phá dữ liệu. Quá trình khai phá tri thức
tiến hành theo các bước sau:
- Bước 1: Hình thành, xác định và định nghĩa bài toán. Là tìm hiểu lĩnh vực
ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành. Bước
này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các
phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ
liệu.
- Bước 2: Thu thập và tiền xử lý dữ liệu. Là thu thập và xử lý thô (xử lý dữ liệu
không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán,…), biến đổi dữ liệu và rút gọn
dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui
trình phát hiện tri thức. Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng
nhất, … có thể gây ra các nhầm lẫn. Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được
rút gọn và rời rạc hóa.
- Bước 3: Khai phá dữ liệu, rút ra các tri thức. Là khai phá dữ liệu, hay nói
cách khác là trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ liệu. Giai đoạn này
rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của
khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài toán khai
phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất chung nhất của
dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn dựa trên dữ liệu
hiện có. Tùy theo bài toán xác định được mà ta lựa chọn các phương pháp khai phá dữ
liệu cho phù hợp.
- Bước 4: Sử dụng các tri thức phát hiện được. Là hiểu tri thức đã tìm được, đặc
biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần,


5

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. Các kết quả
của quá trình phát hiện tri thức có thể được đưa và ứng dụng trong các lĩnh vực khác
nhau. Do các kết quả có thể là các dự đoán hoặc các mô tả nên chúng có thể được đưa

vào các hệ thống hỗ trợ ra quyết định nhằm tự động hóa quá trình này.
1.3. Ứng dụng của khai phá dữ liệu
Ngày nay, khai phá dữ liệu là một lĩnh vực được quan tâm và có nhiều ứng
dụng trong thực tế. Một số ứng dụng điển hình của khai phá dữ liệu có thể liệt kê như
sau:
- Marketing: Các ứng dụng bao gồm việc phân tích hành vi của khách hàng
dựa vào các hóa đơn mua hàng, xác định kế hoạch Marketing bao gồm việc quảng cáo,
vị trí kho hàng, và thư ngõ, phân đoạn khách hàng, cửa hàng, hay sản phẩm và thiết kế
danh mục, bố trí cửa hàng, chiến dịch quảng cáo.
- Tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự
báo giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá, lãi
suất, dữ liệu thẻ tín dụng, phát hiện gian lận, ...
- Bảo hiểm: Áp dụng vào việc phân tích mức độ rủi ro xảy ra đối với từng loại
hàng hóa, dịch vụ hay chiến lược tìm kiếm khách hàng mua bảo hiểm, ...
- Quá trình sản xuất: Các ứng dụng giải quyết sự tối ưu của các nguồn tài
nguyên như các máy móc, nhân sự, và nguyên vật liệu; thiết kế tối ưu trong quá trình
sản xuất, bố trí phân xưởng và thiết kế sản phẩm, chẳng hạn như quá trình tự động dựa
vào yêu cầu khách hàng.
- Y học và chăm sóc sức khỏe: Một số thông tin về chuẩn đoán bệnh lưu trong
các hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa các triệu chứng bệnh,
chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, ...).
- Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học,
tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh
di truyền, ...
- Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi,
sự cố, chất lượng dịch vụ, ...


6


1.4. Phương pháp phân lớp dữ liệu
Phân lớp dữ liệu[1] là kỹ thuật dựa trên tập dữ liệu mẫu và những giá trị hay là
nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu
mới. Quá trình phân lớp dữ liệu thường gồm 2 bước:
- Bước 1: Xây dựng mô hình. Một mô hình sẽ được xây dựng dựa trên việc phân
tích các bộ dữ liệu của một cơ sở dữ liệu. Mỗi bộ dữ liệ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 lớp. Các mẫu dữ liệu này được gọi là
tập dữ liệu huấn luyện. Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác
định trước khi xây dựng mô hình. Mô hình được biểu diễn dưới dạng các luật phân
loại, cây quyết định, công thức logic hay mạng nơron.
Ví dụ 1.1: Cho trước một cơ sở dữ liệu thông tin về độ tín nhiệm của khách
hàng, các luật phân lớp được học để nhận biết các khách hàng có độ tín nhiệm là bình
thường hay tin cậy (Hình 1.1).
Thuật toán phân lớp
Dữ liệu huấn luyện

Tên

Tuổi

Thu nhập

Độ tín nhiệm

Hằng
Nam
Minh
Vân
Lan
Sơn

…..

<30
<30
30-40
>40
>40
30-40
…..

Thấp
Thấp
Cao
Trung bình
Trung bình
Cao
……

Bình thường
Tin cậy
Tin cậy
Bình thường
Bình thường
Tin cậy
……..

Mô hình phân lớp

If Tuổi = 30-40 and Thu nhập = Cao
Then Độ tín nhiệm = Tin cậy

………

Hình 1.1. Xây dựng mô hình phân lớp
- Bước 2: Sử dụng mô hình để phân lớp dữ liệu. Trước hết chúng ta phải tính độ chính
xác của mô hình. Nếu độ chính xác của mô hình là chấp nhận được thì mô hình sẽ
được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai.


7

Mô hình phân lớp

Dữ liệu kiểm định

Dữ liệu mới

Tên

Tuổi

Thu nhập

Độ tín nhiệm

Mai
Lâm
Hưng
…..

>40

<30
30-40
…..

Cao
Thấp
Cao
……

Bình thường
Bình thường
Tin cậy
……..

(Hòa, 30, cao)
Độ tín nhiệm

Tin cậy

Hình 1.2. Kiểm tra và đánh giá mô hình
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định
tới sự thành công của mô hình phân lớp. Do đó, vấn đề của phân lớp dữ liệu là tìm ra
được thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả năng mở
rộng được.
Các thuật toán phân lớp tiêu biểu bao gồm: cây quyết định, ID3, C4.5, mạng
Neural, suy luận quy nạp, Naïve Bayes, SVM (Support Vector Machine), … Tất cả các
cách tiếp cận này xây dựng những mô hình đều có khả năng phân lớp cho một mẫu
mới chưa biết dựa vào những mẫu tương tự đã được học.
1.4.1. Phân lớp dữ liệu với cây quyết định
1.4.1.1. Định nghĩa cây quyết định

Cây quyết định là cấu trúc biểu diễn dưới dạng cây, mỗi nút trong biểu diễn giá
trị quyết định của thuộc tính, nhánh biểu diễn đầu ra của quyết định và lá biểu diễn
các lớp quyết định.
Cây quyết định có thể được dùng để phân lớp bằng cách xuất phát từ gốc của
cây và di chuyển theo các nhánh cho đến khi gặp nút lá. Trên cơ sở phân lớp này
chúng ta có thể chuyển đổi về các luật quyết định.


8

1.4.1.2. Phương pháp tổng quát xây dựng cây quyết định
Bước 1 : Nếu tại nút hiện thời, tất cả các đối tượng huấn luyện đều thuộc vào một
lớp nào đó thì cho nút này thành nút lá có tên là nhãn lớp chung của các đối
tượng.
Bước 2 : Trường hợp ngược lại, sử dụng một độ đo, chọn thuộc tính điều kiện phân
chia tốt nhất tập mẫu huấn luyện có tại nút.
Bước 3 : Tạo một lượng nút con của nút hiện thời bằng số các giá trị khác nhau của
thuộc tính được chọn. Gán cho mỗi nhánh từ nút cha đến nút con một giá trị
của thuộc tính rồi phân chia các các đối tượng huấn luyện vào các nút con
tương ứng.
Bước 4 : Nút con t được gọi là thuần nhất, trở thành nút lá, nếu tất cả các đối tượng
mẫu tại đó đều thuộc vào cùng một lớp. Lặp lại các Bước 1-3 đối với mỗi
nút chưa thuần nhất.
Xét một ví dụ xây dựng một cây quyết định như sau:
Cho Bảng 1.1 biểu diễn thông tin về 14 đối tượng u1,…,u14. Bảng 1.1 là một
bảng quyết định với tập thuộc tính điều kiện C = {Ngoài trời, Nhiệt độ, Độ ẩm, Gió}
và thuộc tính quyết định là d = {Chơi Gold}.
U
u1
u2

u3
u4
u5
u6
u7
u8
u9
u10
u11
u12
u13
u14

Bảng 1.1. Bảng quyết định khách hàng chơi Gold
Ngoài Trời
Nhiệt Độ
Độ ẩm
Gió
Chơi Gold
Nắng
Nóng
Cao
Nhẹ
Không
Nắng
Nóng
Cao
Mạnh Không
Nhiều Mây
Nóng

Cao
Nhẹ

Mưa
Ấm áp
Cao
Nhẹ

Mưa
Mát
TB
Nhẹ
Không
Mưa
Mát
TB
Mạnh Có
Nhiều Mây
Mát
TB
Nhẹ
Không
Nắng
Ấm áp
Cao
Nhẹ

Nắng
Mát
TB

Nhẹ

Mưa
Ấm áp
TB
Mạnh Có
Nắng
Ấm áp
TB
Mạnh Có
Nhiều Mây
Ấm áp
Cao
Mạnh Có
Nhiều Mây
Nóng
TB
Nhẹ

Mưa
Ấm áp
Cao
Mạnh Không


9

Hình 1.3 minh hoạ một cây quyết định ứng với tập dữ liệu Bảng 1.1 (với lớp
“Có” nghĩa là chơi Golf, lớp “Không” nghĩa là không chơi Gold). Cây quyết định này
đưa ra quyết định có hay không có khách chơi Golf tuỳ thuộc vào các thông số đầu vào

(Ngoài trời, Nhiệt độ, Độ ẩm, Gió). Ví dụ một mẫu NgoàiTrời=Nắng, Nhiệtđộ=Nóng,
Độẩm=Cao và Gió=Mạnh được phân vào lớp Không (tức là ngoài trời nằng nóng, độ
ẩm cao và gió mạnh thì sẽ không có người chơi Golf).
Ngoài Trời
Nắng
Độ ẩm
Cao
Không

Nhiều mây

Mưa
Gió


TB


Mạnh
Không

Nhẹ


Hình 1.3. Ví dụ cây quyết định ứng với Bảng 1.1
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 quyết định hay thuộc tính phân lớp (thuộc tính “Chơi Gold”).
Các nút con tương ứng với các thuộc tính khác thuộc tính điều kiện hay 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 “Ngoài trời”. Các nhánh của cây từ một nút bất kỳ tương ứng với một giá trị của

thuộc tính điều kiện được chọn. Lưu ý cây quyết định trên không có sự tham gia của
thuộc tính “Nhiệt độ” 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.
Trong các thuật toán cơ sở xây dựng cây quyết định chỉ chấp nhận các thuộc
tính tham gia vào quá trình phân lớp có giá trị rời rạc, bao gồm cả thuộc tính được
dùng để dự đoán trong quá trình học cũng như các thuộc tính được sử dụng để kiểm tra
tại mỗi nút của cây.
Việc xây dựng cây quyết định được tiến hành một cách đệ qui, lần lượt từ nút


10

gốc xuống tới tận các nút lá. Tại mỗi nút hiện hành đang xét, nếu kiểm tra thấy thỏa
điều kiện dừng thì thuật toán sẽ tạo nút lá. Nút này được gán một giá trị của nhãn lớp
tùy điều kiện dừng được thỏa. Ngược lại, thuật toán tiến hành chọn điểm chia tốt nhất
theo một tiêu chí cho trước, phân chia dữ liệu hiện hành theo điều kiện chia này.
Sau bước phân chia trên, thuật toán sẽ lặp qua tất cả các tập con (đã được chia)
và tiến hành gọi đệ qui như bước đầu tiên với dữ liệu chính là các tập con này.
Trong Bước 3, tiêu chuẩn sử dụng lựa chọn thuộc tính được hiểu là một số đo
độ phù hợp, một số đo đánh giá độ thuần nhất, hay một quy tắc phân chia tập mẫu
huấn luyện.
 Cấu trúc cây quyết định

Hình 1.4. Cấu trúc cây quyết định
Cây quyết định là một cấu trúc được sử dụng để chia liên tiếp một tập các bản
ghi lớn thành các tập con nhỏ hơn bằng cách áp dụng một chuỗi các luật đơn giản. Với
mỗi phép chia liên tiếp, các tập con thu được trong tập kết quả sẽ ngày càng giống
nhau. Nó có cấu trúc như sau :
- Mỗi nút mang một thuộc tính (biến độc lập)

- Mỗi nhánh tương ứng với một giá trị của thuộc tính
- Mỗi nút lá là một lớp (biến phụ thuộc)
 Xây dựng luật từ cây quyết định
Mỗi một đường dẫn từ gốc đến nút lá trong cây tạo thành một luật, luật này có vế
trái là một bộ giá trị của các thuộc tính được chọn để phân lớp, vế phải là một trong các
giá trị của thuộc tính kết quả. Xét cây quyết định Hình 1.3 ta có một số luật sau đây :


11

 (Ngoài trời=Nắng  Độ ẩm=TB)  (Chơi Gold, Có)
 (Ngoài trời=Nhiều mây)  (Chơi Gold, Có)
 (Ngoài trời=Mưa  Gió=Nhẹ)  (Chơi Gold, Có)
 (Ngoài trời=Nắng  Độ ẩm=Cao)  (Chơi Gold, Không)
 (Ngoài trời=Mưa  Gió=Mạnh)  (Chơi Gold, Không)
Việc lựa chọn thuộc tính để phân hoạch chủ yếu trong các thuật toán phân lớp
dựa vào cây quyết định là chọn thuật toán nào để kiểm tra tại mỗi nốt cây. Chúng ta
mong muốn chọn được thuộc tính sao cho việc phân lớp tập mẫu là tốt nhất. Như vậy
chúng ta cần phải có một tiêu chuẩn để đánh giá được vấn đề này. Có rất nhiều tiêu
chuẩn thường được sử dụng để xây dựng cây quyết định như dựa vào Entropy,
Information Gain và Ratio Gain.
 Entropy
Entropy[1] là một đại lượng toán học dùng để đo lượng tin không chắc (hay
lượng ngẫu nhiên) của một sự kiện hay của phân phối ngẫu nhiên cho trước và được
định nghĩa như sau :
Cho bảng quyết định T = (U, C  D). Không mất tính tổng quát, ta có thể xem
D = {d}, |Vd| = k. Phân hoạch của U đối với thuộc tính d gồm các lớp: U1, U2, …, Uk,
đặt pi 

Ui

, i  1,..., k.
U

k

Entropy U    pi log2 pi (trong đó pi là tỉ lệ các đối tượng
i 1

trong T mang nhãn lớp i).
Từ định nghĩa Entropy ở trên, chúng ta thấy rằng :
 Entropy = 0

Nếu tất cả các mẫu đều thuộc cùng một lớp.

 Entropy = 1

Nếu k=2 và |U1|=|U2|.

 0 < Entropy < 1 nếu thuộc các trường hợp khác.
Ví dụ 1.2: Cho tập U trong Bảng 1.1 có 14 mẫu, trong đó có 9 mẫu thuộc
lớp ‘Có’ và 5 mẫu thuộc lớp ‘Không’. khi đó ta có :
Entropy(U)= Entropy([9Có, 5Không])= -(9/14)log2(9/14) – (5/14)log2(5/14)= 0.940
 Gia lượng thông tin (Information Gain)
Gia lượng thông tin [1] là tiêu chuẩn đánh giá khả năng của một thuộc tính khi
được dùng để phân lớp các mẫu dựa vào giá trị Entropy. Chúng ta dựa vào tiêu chuẩn


12

này để chọn được thuộc tính có giá trị Entropy nhỏ nhất và dùng thuộc tính này để

phân mảnh tập mẫu. Gia lượng thông tin được tính theo công thức sau:
Gain U , a   Entropy U   
vVa

Uv
Entropy U v 
U

trong đó Va là tập các giá trị của thuộc tính a, Uv là một lớp trong phân hoạch của U
đối với thuộc tính a, tương ứng với giá trị v. Thuộc tính được chọn phân nhánh là
thuộc tính có gia lượng thông tin lớn nhất.
Ví dụ 1.3: Tính gia lượng thông tin của thuộc tính “độ ẩm” trong Bảng 1.1
 Tập_giá_trị (Độ ẩm)={Cao, TB}, Khi đó : U = [7Cao, 7TB]
3
7
6
UTB  [6Có, 1Không]  E(UTB) = - log 2
7

Ucao  [3Có, 4Không]  E(UCao) = - log 2

3 4
4
 log 2  0.985
7 7
7
6 1
1
 log 2  0.592
7 7

7

Gain(S, Độ ẩm) = 0.940 – (7/14)*0.985 – (7/14)*0.592 = 0.151
 Chọn thuộc tính phân nhánh
Thuộc tính được chọn để phân nhánh là thuộc tính có gia lượng thông tin lớn
nhất và được thực hiện qua các bước sau:
Bước 1: V := U
Bước 2: Tính giá trị của Entropy (V);
Bước 3: For a  C do Tính giá trị của Gain (V, a);
Bước 4: Chọn thuộc tính c có giá trị Gain (V, a) lớn nhất làm thuộc tính phân
nhánh;
C : = C\{a}
Bước 5: For v  Va
Bước 5.1: V := Uv
Bước 5.2: if |Vd| > 1

Thực hiện lại các Bước 2, Bước 3, Bước 4


13

Ví dụ 1.4: xét bảng quyết định sau đây :
Bảng 1.2. Bảng quyết định về khách hàng AllElectronics
U

Tuổi

Thu Nhập

Sinh Viên


Độ Tín Nhiệm

Mua Máy Tính

u1

<30

Cao

Khong

Kha tot

Khong

u2

<30

Cao

Khong

Tot

Khong

u3


30-40

Cao

Khong

Kha tot

Co

u4

>40

Trung binh

Khong

Kha tot

Co

u5

>40

Thap

Co


Kha tot

Co

u6

>40

Thap

Co

Tot

Khong

u7

30-40

Thap

Co

Tot

Co

u8


<30

Trung binh

Khong

Kha tot

Khong

u9

<30

Thap

Co

Kha tot

Co

u10

>40

Trung binh

Co


Kha tot

Co

u11

<30

Trung binh

Co

Tot

Co

u12

30-40

Trung binh

Khong

Tot

Co

u13


30-40

Cao

Co

Kha tot

Co

u14

>40

Trung binh

Khong

Tot

Khong

Giải thích Bảng 1.2: Chúng ta xem tất cả các thuộc tính đều có kiểu dữ liệu rời
rạc. Thuộc tính nhãn lớp tức thuộc tính “Mua may tinh” chỉ có hai giá trị là “Co” và
“Khong”, như vậy có 9 bộ dữ liệu có nhãn lớp là giá trị “Co” và 5 bộ giá trị
“Khong”.Xxây dựng cây quyết định như sau:
 Đầu tiên nút gốc được khởi tạo gồm các mẫu từ u1 đến u14.
Để chọn thuộc tính phân nhánh tốt nhất, phải tính toán chỉ số Gain của tất cả
các thuộc tính trên. Đầu tiên sẽ tính Entropy cho toàn bộ tập huấn luyện U gồm chín

bộ {u3 , u 4 , u 5 , u 7 , u 9 , u10 , u11 , u12 , u13} có giá trị thuộc tính nhãn là “Co” và năm bộ
{u1 , u 2 , u 6 , u 8 , u14 } có thuộc tính nhãn là “Khong”:
Entropy U   

9
9 5
5
log 2  log 2
 0.940
14
14 14
14

Kế tiếp tính Gain cho từng thuộc tính, bắt đầu với thuộc tính “Tuổi”. Thuộc tính
này có ba giá trị là “<30”, “30-40” và “>40”. Nhìn vào Bảng 1.2, với giá trị “<30” có


14

hai bộ { u 9 , u11} có giá trị thuộc tính nhãn là “Co” và ba bộ {u1 , u 2 , u 8} giá trị thuộc
tính nhãn là “Khong”. Tương tự giá trị “30-40” có bốn bộ { u 3 , u 7 , u12 , u13} có nhãn lớp
là “Co” và không có bộ nào có nhãn lớp là “Khong”; với giá trị “>40” có ba bộ
{u 4 , u 5 , u10 } nhãn lớp “Co” và hai bộ { u 6 , u14 } có nhãn lớp “Khong”. Theo công thức

trên, độ đo gia lượng thông tin của thuộc tính “Tuổi” xét trên U là:
Gain U , Tuoi   Entropy U  



vVTuoi


Uv
Entropy U 
U

5 2
2 3
3 4  4
4 5  3
3 2
2 
 0.940     log 2  log 2     log 2     log 2  log 2    0.247
5 5
5  14  4
4  14  5
5 5
5 
14  5

Theo cách tính tương tự như trên, tính chỉ số Gain cho lần lượt các thuộc tính
“thu nhập”, “Sinh viên” và “Độ tín nhiệm” Kết quả là:
 Gain(U, thu nhap)

= 0.029

 Gain(U, Sinh vien)

= 0.152

 Gain(U, Do tin nhiem) = 0.048

Như vậy, thuộc tính “Tuoi” là thuộc tính có chỉ số gia lượng thông tin lớn nhất
nên sẽ được chọn làm thuộc tính phân nhánh. Vì thế thuộc tính “Tuoi” được chọn làm
nhãn cho nút gốc, ba nhánh được tạo ra lần lượt với tên là “<30”, “30-40”, “>40” và
tại nhánh “30-40” có các mẫu {u3, u7, u12, u13} cùng thuộc một lớp “Co” nên nút lá
được tạo ra với nhãn là “Co”.
Lượt phân nhánh tiếp theo chúng ta xét (U<30, C-{Tuoi}, {d})
Ta có U<30 gồm có các mẫu {u1, u2, u8, u9, u11}
Tương tự để tìm điểm chia tốt nhất tại thuật toán này, phải tính toán chỉ số gia
lượng thông tin của các thuộc tính “Thu nhap”, “Sinh vien” và “Do tin nhiem” Đầu
tiên ta cũng tính Entropy cho toàn bộ tập huấn luyện trong U<30 gồm hai bộ {u9, u11}
có thuộc tính nhãn là “Co” và ba bộ {u1, u2, u8} có thuộc tính nhãn là “Khong”:
2
2 3
3
Entropy (U 30 )   log 2  log 2  0.971
5
5 5
5

Tiếp theo tính gia lượng thông tin cho thuộc tính “Thu nhap” thuộc tính này có
ba giá trị “Thap”, “Trung binh” và “Cao”. Nhìn vào Bảng 1.2, với giá trị “Thap” có
một bộ {u9} có giá trị thuộc tính nhãn là “Co” và không bộ có giá trị thuộc tính nhãn là


15

“Khong”. Tương tự giá trị “Trung binh” có một bộ {u11} có nhãn lớp là “Co” và một
bộ {u8} có nhãn lớp là “Khong”, với giá trị “Cao” có không bộ có nhãn lớp “Co” và
hai bộ { u1, u 2} có nhãn lớp “Khong”. Theo công thức trên, gia lượng thông tin của
thuộc tính “Thu nhap” xét trên U<30 là:

Gain(U30 , Thu nhap)  Entropy (U30 ) 



vVThu nhap

| U30v |
| U30 |

Entropy (U30v )

1  1
1 2  1
1 1
1 2 2
2 
Gain(U 30 , Thunhap)  0.971     log 2     log
 log 2     log 2  
1 5  2
2
2 5 2
2   Tí
2 2
5  1
 0.571

nh tương tự ta cũng có :
 Gain(U<30, Sinh vien)

= 0.971


 Gain(U<30, Do tin nhiem) = 0.020
Vì vậy, ta chọn thuộc tính “Sinh vien” làm nhãn cho nút bên trái nối với nhánh
“Tuoi<30”. Với thuộc tính này có hai giá trị “Co”, “Khong” nên ta tiếp tục ta tạo thành
hai nhánh mới là “Co” và “Khong”. Ứng với nhánh “Co” gồm các mẫu{u9,u11}cùng có
giá trị quyết định là “Co” nên tạo nút lá là “Co”. Tương tự với nhánh “Khong” gồm
các mẫu {u1, u2, u8}nên tạo thêm nút lá là “Khong”.
Đối với nút nối với nhánh “>40”, chúng ta xét (U>40, C-{Tuoi}, {d}). Tương tự,
ta có: Entropy (U>40) =0.971.
 Gain(U>40, Thu nhap)

= 0.02

 Gain(U>40, Sinh viên)

= 0.02

 Gain(U>40, Do tin nhiem)

= 0.971

Do đó thuộc tính “Do tin nhiem” có độ đo gia lượng thông tin gia lượng thông
tin lớn nhất, vì thế ta chọn “Do tin nhiem” làm nhãn cho nút này. Kết quả cuối cùng ta
có cây quyết định như sau:


16

 Xây dựng luật từ cây quyết định trên
 Luật 1: Nếu (Tuoi < 30) và (Sinh vien = Có) thì Mua Máy tính = Có.

 Luật 2: Nếu (Tuoi < 30) và (Sinh vien = Không) thì Mua Máy tính = Không
 Luật 3: Nếu (Tuoi >= 30) và (Tuoi <= 40) thì Mua Máy Tính = Có
 Luật 4: Nếu (Tuoi > 40) và (Độ Tín Nhiệm = Khá Tốt) thì Mua Máy Tính = Có
 Luật 5: Nếu (Tuoi > 40) và (Độ Tín Nhiệm=Tốt) thì Mua Máy Tính = Không
1.4.2. Thuật toán k - means
k - means là thuật toán phân nhóm do J.MacQueen giới thiệu vào năm 1967.
Thuật toán này dựa trên độ đo khoảng cách của các đối tượng đến phần tử trung tâm
của các nhóm. Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các
phần tử trong nhóm.
Ý tưởng chính của thuật toán k – means là tìm cách phân nhóm các đối tượng
đã cho vào k nhóm (k là số các nhóm được xác định trước) sao cho độ đo khoảng cách
Euclide giữa đối tượng đến phần tử trung tâm của nhóm là nhỏ nhất.
 Khoảng cách Euclide
Cho X, Y trong không gian Rm (m chiều). Khoảng cách Euclide giữa X và Y,
ký hiệu d (X, Y) được tính như sau:
d  X ,Y  

m

 x  y 
i 1

i

i

2


17


Trong đó X (x1, x2,…, xm)
Y (y1, y2,…, ym)
Tương tự, với tập đối tượng U = {X1, X2,…, Xn} được phân vào k - nhóm
(C1,…, Ck) có phần tử trung tâm lần lượt là Y1,…, Yk. Khi đó, khoảng cách Euclide từ
đối tượng U đến phần tử trung tâm nhóm j được tính dựa theo công thức sau:
d  X i , Yj  

 x
m

s 1

is

 y js 

2

Với Xi (xi1, xi2,…, xim)
Yj (yj1, yj2,…, yjm)
 Sơ đồ thuật toán
Bắt đầu
k, X1,…,Xn
Chọn Y1,…,Yk
Cs={Ys}, s=1,…k

i=1

Tìm


min d  X , Y   d  X , Y 
1 j  k

i

j

i

s

T

Bổ sung Xi và Cs

Nếu có
thay đổi Cs

i=i+1

F

T
i>n

Tính lại Ys,
s=1,…k

Hình 1.5. Sơ đồ thuật toán k – means


F

Kết thúc


18

 Thuật toán k – means
- Input: Tập đối tượng X = {xi|i = 1, 2,…,n}
Số nhóm k N
- Output: Các nhóm Ci (i = 1,…,k) tách rời
Bước 1: Chọn ngẫu nhiên k tâm cho k nhóm. Mỗi nhóm được đại diện bằng tâm
của nhóm.
Bước 2: Tính khoảng cách giữa các đối tượng đến k tâm
Bước 3: Nhóm các đối tượng vào nhóm chứa tâm gần nhất
Bước 4: Xác định lại tâm mới cho các nhóm
Bước 5: Lặp lại bước 2 cho đến khi không có sự thay đổi nhóm nào của các đối
tượng.
Ví dụ 1.5: Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi
2 đặc trưng X và Y như sau. Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm
(K=2) dựa vào các đặc trưng của chúng.
Đối tượng

X

Y

A


1

1

B

2

1

C

4

3

D

5

4

- Bước 1: Khởi tạo.
Chọn 2 tâm ban đầu thuộc 2 nhóm:
A là tâm nhóm 1 – c1(1,1), B là tâm nhóm 2 – c2(2,1)
- Bước 2: Tính khoảng cách từ các đối tượng đến tâm của các nhóm
d(C, c1)=

 4 1  3 1


d(C, c2)=

 4  2  3 1

d(D, c1)=

5 1   4 1

d(D, c1)=

5  2   4 1

2

2

2

2

2

 3.61

2

 2.83

2


5

2

 4.24


×