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

Ứng dụng thuật toán c4 5 để phân lớp dữ liệu cán bộ khoa CNTT trường đại học mỏ địa chất hà nội

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.13 MB, 88 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRẦN THỊ NHƯ HOA

VIỆN ĐẠI HỌC MỞ HÀ NỘI

CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH: CƠNG NGHỆ THƠNG TIN

ỨNG DỤNG THUẬT TỐN C4.5 ĐỂ
PHÂN LỚP DỮ LIỆU CÁN BỘ KHOA CNTT
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT HÀ NỘI

TRẦN THỊ NHƯ HOA

2014 – 2016
HÀ NỘI – 2016


BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SĨ
ỨNG DỤNG THUẬT TOÁN C4.5 ĐỂ
PHÂN LỚP DỮ LIỆU CÁN BỘ KHOA CNTT
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT - HÀ NỘI
TRẦN THỊ NHƯ HOA

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN


MÃ SỐ: 60.48.02.01

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN QUANG HOAN

HÀ NỘI – 2016


LỜI CAM ĐOAN
Tên tôi là Trần Thị Như Hoa – học viên lớp cao học Cơng nghệ Thơng tin
Khóa 2 (2014 – 2016) Viện Đại học Mở Hà Nội xin cam đoan: Luận văn thạc sỹ
này là cơng trình nghiên cứu của bản thân dưới sự hướng dẫn của PGS. TS.
Nguyễn Quang Hoan. Các kết quả trong luận văn tốt nghiệp thạc sỹ này là trung
thực, không phải là sao chép tồn văn của bất kỳ cơng trình nào khác.
Hà Nội, ngày 30 tháng 11 năm 2016
Tác giả luận văn

Trần Thị Như Hoa

i


LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin – Khoa Đào tạo
Sau đại học – Viện Đại học Mở Hà Nội đã tạo điều kiện thuận lợi giúp em hoàn
thành luận văn này.
Em xin chân thành cảm ơn sự hướng dẫn, chỉ bảo tận tình của PGS.TS.
Nguyễn Quang Hoan trong suốt thời gian thực hiện đề tài, cảm ơn thày đã luôn
dành thời gian giúp đỡ và động viên để em có thể hồn thành được luận văn này.
Xin cảm ơn các anh chị, bạn bè học viên lớp cao học Cơng nghệ Thơng tin
khóa 2 đã ủng hộ, giúp đỡ và động viên trong thời gian học tập và nghiên cứu.

Cuối cùng em xin cảm ơn những thành viên trong gia đình đã ln động
viên và giúp đỡ để em hoàn thành luận văn này.
Qua một thời gian nghiên cứu em đã hoàn thành luận văn với đề tài “Ứng
dụng thuật toán C4.5 để phân lớp dữ liệu cán bộ Khoa Công nghệ Thông tin –
Trường Đại học Mỏ - Địa chất – Hà Nội”. Tuy đã cố gắng nhưng chắc chắn vẫn
không tránh khỏi những thiếu sót. Kính mong nhận được sự thơng cảm và đóng
góp ý kiến của q Thầy, Cơ và các bạn.
Hà Nội, ngày 30 tháng 11 năm 2016
Tác giả

Trần Thị Như Hoa

ii


MỤC LỤC
LỜI CAM ĐOAN ....................................................................................... i
LỜI CẢM ƠN ............................................................................................ ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................ v
DANH MỤC CÁC BẢNG ........................................................................ vi
DANH MỤC CÁC HÌNH ........................................................................ vii
LỜI MỞ ĐẦU ......................................................................................... viii
CHƯƠNG 1. TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU............................ 1
1.1. Khái quát về phân lớp dữ liệu .......................................................... 1
1.1.1. Phân lớp dữ liệu ....................................................................... 1
1.1.2. Các vấn đề liên quan đến phân lớp dữ liệu ............................... 5
1.1.3. Một số phương pháp đánh giá độ chính xác của mơ hình phân
lớp ...................................................................................................... 7
1.2. Cây quyết định ứng dụng trong phân lớp dữ liệu ............................. 8
1.2.1. Giới thiệu về mô hình cây quyết định ........................................ 8

1.2.2. Quá trình xây dựng cây quyết định ........................................... 9
1.3. Đánh giá cây quyết định trong phân lớp dữ liệu............................. 10
1.3.1. Ưu điểm của cây quyết định .................................................... 10
1.3.2. Điểm yếu của cây quyết định .................................................. 12
1.4. Một số thuật tốn phổ biến trong mơ hình phân lớp ....................... 13
1.5. Kết luận chương 1 ......................................................................... 13
CHƯƠNG 2. THUẬT TOÁN C4.5 VÀ THUẬT TOÁN BAYES ............ 14
2.1. Thuật toán cây quyết định C4.5 ..................................................... 14
2.1.1. Thuật tốn C4.5 chọn thuộc tính tốt nhất ................................ 15
2.1.2. Thuật toán C4.5 làm việc với dữ liệu bị thiếu.......................... 16
2.1.3. Tránh quá vừa dữ liệu............................................................. 17
2.1.4. Chuyển đổi từ cây quyết định sang luật .................................. 18
2.2. Ví dụ minh họa thuật toán C4.5 ..................................................... 19
2.3. Thuật toán Bayes thơ ngây ............................................................ 26
2.3.1. Ý tưởng thuật toán Bayes ........................................................ 27
2.3.2. Các bước thực hiện thuật toán Bayes ...................................... 27
iii


2.4. Ví dụ minh họa thuật tốn Bayes ................................................... 28
2.5. Kết luận chương 2 ......................................................................... 29
CHƯƠNG 3. PHÂN LỚP CÁN BỘ SỬ DỤNG ...................................... 31
THUẬT TOÁN C4.5 VÀ THUẬT TOÁN BAYES ................................. 31
3.1. Giới thiệu bài toán ......................................................................... 31
3.2. Thu thập và tiền xử lý dữ liệu ........................................................ 31
3.2.1. Thu thập dữ liệu ...................................................................... 31
3.2.2. Phân tích và xử lý dữ liệu ....................................................... 32
3.3. Phân loại cán bộ sử dụng thuật toán C4.5 ...................................... 36
3.3.1. Triển khai thuật toán C4.5 ...................................................... 36
3.3.2. Quá trình xây dựng cây quyết định ......................................... 37

3.4. Phân loại cán bộ sử dụng thuật toán Bayes thơ ngây...................... 57
3.5. Giới thiệu một số công cụ sử dụng trong khai phá dữ liệu ............. 62
3.5.1. Giới thiệu chung ..................................................................... 62
3.5.2. Ngơn ngữ lập trình R .............................................................. 63
3.6. Thử nghiệm ứng dụng ................................................................... 65
3.6.1. Thử nghiệm 1 – Thuật toán cây quyết định C4.5 trong R ........ 65
3.6.2. Kết quả thử nghiệm 1 .............................................................. 67
3.6.3. Đánh giá độ đo hiệu quả của thử nghiệm 1............................. 68
3.6.4. Thử nghiệm 2 -Thuật tốn Nạve Bayes trong R...................... 69
3.6.5. Kết quả thử nghiệm 2 .............................................................. 71
3.6.6. Đánh giá độ đo hiệu quả của thử nghiệm 2............................. 72
3.7. Vai trò của C4.5 và Bayes trong bài toán phân lớp cán bộ ............. 72
3.8. Kết luận chương 3 ......................................................................... 73
KẾT LUẬN.............................................................................................. 74
HƯỚNG PHÁT TRIỂN ........................................................................... 75
TÀI LIỆU THAM KHẢO ........................................................................ 76

iv


DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

Info

Information


Thông tin

IG

Information Gain

Độ lợi thông tin

G

Gain

Độ lợi

GR

Gain Ratio

Tỉ số độ lợi

SplitInfo

Split Information

Thông tin của phân phối dữ liệu

v



DANH MỤC CÁC BẢNG
Bảng 2.1: Tập dữ liệu học weather .................................................................... 19
Bảng 2.2: Dữ liệu của mẫu tin cần dự báo ......................................................... 28
Bảng 2.3: Bảng xác suất của tập dữ liệu weather ............................................... 28
Bảng 3.1: Bảng các thuộc tính của tập dữ liệu cán bộ ........................................ 32
Bảng 3.2: Dữ liệu mẫu huấn luyện cán bộ khoa CNTT (S) ................................ 34
Bảng 3.3: Bảng so sánh kết quả GainRatio trong tập thuộc tính S ...................... 40
Bảng 3.4: Bảng mẫu huấn luyện S1 (DV = Co) .................................................. 41
Bảng 3.5: Bảng so sánh kết quả GainRatio trong tập thuộc tính S1 .................... 45
Bảng 3.6: Bảng mẫu huấn luyện S2 (CDNN=GV) ............................................. 45
Bảng 3.7: Bảng so sánh kết quả GainRatio trong tập thuộc tính S2 .................... 48
Bảng 3.8: Bảng mẫu huấn luyện S3 (TDCM=Ths) ............................................. 49
Bảng 3.9: Bảng so sánh kết quả GainRatio trong tập thuộc tính S3 .................... 51
Bảng 3.10: Bảng mẫu huấn luyện S3.1 (TDCM=TS) .......................................... 52
Bảng 3.11: Bảng so sánh kết quả GainRatio trong tập thuộc tính S3.1................. 53
Bảng 3.12:Bảng mẫu huấn luyện S4 (GT = Nu) ................................................. 54
Bảng 3.13: Bảng các tập luật rút ra từ cây quyết định C4.5 ................................ 56
Bảng 3.14: Bảng xác suất của tập dữ liệu cán bộ ............................................... 58
Bảng 3.15: Bảng dữ liệu của các mẫu tin cần dự báo ......................................... 58
Bảng 3.16: Bảng dữ liệu của các mẫu tin đã được gán nhãn............................... 61
Bảng 3.17: Đoạn mã minh họa giải thuật C4.5................................................... 66
Bảng 3.18: Đoạn mã minh họa thuật toán Bayes thơ ngây ................................. 70

vi


DANH MỤC CÁC HÌNH
Hình 1.1: Q trình phân lớp dữ liệu – Xây dựng mơ hình phân lớp ....................2
Hình 1.2: Quá trình phân lớp dữ liệu – phân lớp dữ liệu mới ...............................4
Hình 1.3: Ước lượng độ chính xác của mơ hình phân lớp với phương pháp

holdout ................................................................................................................7
Hình 1.4: Mơ tả chung về cây quyết định .......................................................... 10
Hình 2.1: Cây quyết định cho tập dữ liệu weather.............................................. 26
Hình 3.1: Cây quyết định cấp 1.......................................................................... 41
Hình 3.2: Cây quyết định cấp 2.......................................................................... 45
Hình 3.3: Cây quyết định cấp 3.1....................................................................... 49
Hình 3.4: Cây quyết định cấp 4.......................................................................... 51
Hình 3.5: Cây quyết định cấp 3.2....................................................................... 54
Hình 3.6: Cây quyết định hồn chỉnh ................................................................. 56
Hình 3.7: Giao diện lập trình của ngơn ngữ R .................................................... 65
Hình 3.8: Cây quyết định sử dụng thuật tốn C4.5 trong R ................................ 68

vii


LỜI MỞ ĐẦU
Trong quá trình hoạt động, con người tạo ra nhiều dữ liệu nghiệp vụ . Các
tập dữ liệu được tích lũy có kích thước càng lớn, và có thể chưa nhiều thông tin
ẩn dạng những quy luật chưa được khám phá . Chính vì vậy một nhu cầu đặt ra là
cần tìm cách trích rút từ tập dữ liệu đó các luật về phân lớp dữ liệu hay dự đoán
những xu hướng dữ liệu tương lai. Những quy tắc nghiệp vụ thông minh được
tạo ra sẽ phục vụ đắc lực cho các hoạt động thực tiễn, cũng như phục vụ đắc lực
cho quá trình nghiên cứu khoa học. Cơng nghệ phân lớp và dự đốn dữ liệu ra
đời để đáp ứng mong muốn đó.
Cơng nghệ phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước
những khao khát tri thức của con người. Trong những năm qua, phân lớp dữ liệu
đã thu hút sự quan tâm của các nhà nghiên cứu trong nhiều lĩnh vưc khác nhau.
Công nghệ này cũng ứng dụng trong nhiều lĩnh vực thực tế như thương mại, nhà
băng, maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục v.v.
Nhiều kỹ thuật phân lớp đã được đề xuất như: Phân lớp cây quyết định

(Decision tree classification), phân lớp Bayesian (Bayesian classifier), phân lớp
K-láng giềng (K-nearest neighbor classifier), mạng nơron, phân tích thống kê.
Trong các kỹ thuật đó, cây quyết định được coi là cơng cụ mạnh, phổ biến và đặc
biệt thích hợp cho khai phá dữ liệu. Trong các mơ hình phân lớp, thuật toán phân
lớp là nhân tố chủ đạo. Do vậy cần xây dựng những thuật tốn có độ chính xác
cao, thực thi nhanh đi kèm với khả năng mở rộng được để có thể thao tác với
những tập dữ liệu ngày càng lớn.
Với nhu cầu đặt ra, luận văn đã nghiên cứu tổng quan về công nghệ phân
lớp dữ liệu nói chung và phân lớp dữ liệu dựa trên thuật tốn C4.5 và thuật tốn
Bayes nói riêng. Việc phân tích đánh giá thuật tốn có giá trị khoa học và thực
tiễn. Tìm hiểu các thuật tốn giúp chúng ta tiếp thu và có thể phát triển về mặt tư
tưởng, cũng như kỹ thuật của một công nghệ tiên tiến. Từ đó có thể triển khai cài
đặt và thử nghiệm các mơ hình phân lớp dữ liệu thực tế. Trong luận văn, tác giả
đã sử dụng ngơn ngữ lập trình R để minh họa cho bài toán phân lớp cán bộ dựa

viii


trên thuật toán C4.5 và thuật toán Bayes thơ ngây. Nội dung chính của luận văn
gồm có 3 chương:
Chương 1. Giới thiệu khái quát về phân lớp dữ liệu và đưa ra một số vấn
đề liên quan đến phân lớp dữ liệu. Xây dựng, đánh giá và phân tích mơ hình cây
quyết định và một số thuật tốn giải thuật phổ biến trong mơ hình phân lớp dữ
liệu hiện nay.
Chương 2. Chương này trình bày 2 thuật tốn dùng cho phân lớp dữ liệu
đó là giải thuật C4.5 và giải thuật Bayes thơ ngây, các bước thực hiện và một số
ví dụ minh họa cho thuật tốn.
Chương 3. Phân lớp dữ liệu cán bộ sử dụng thuật toán C4.5 và Bayes thơ
ngây. Cài đặt thử nghiệm bài toán sử dụng ngơn ngữ lập trình R.


ix


CHƯƠNG 1. TỔNG QUAN VỀ PHÂN LỚP DỮ LIỆU
1.1. Khái quát về phân lớp dữ liệu
1.1.1. Phân lớp dữ liệu
Ngày nay, phân lớp dữ liệu (classification) là một trong những hướng
nghiên cứu chính của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở dữ
liệu với nhiều thơng tin ẩn con người có thể trích rút ra các quyết định nghiệp vụ
thông minh. Phân lớp và dự đốn là hai dạng của phân tích dữ liệu nhằm trích rút
ra một mơ hình mơ tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu
tương lai. Phân lớp dự đoán giá trị của những nhãn xác định (categorical label)
hay những giá trị rời rạc (discrete value), có nghĩa là phân lớp thao tác với những
đối tượng dữ liệu mà có bộ dữ liệu là biết trước. Trong khi đó, dự đốn lại xây
dựng mơ hình với các hàm nhận giá trị liên tục. Ví dụ mơ hình dự báo thời tiết có
thể cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thơng số về độ
ẩm, sức gió, nhiệt độ v.v của ngày hơm nay và các ngày trước đó. Hay nhờ các
luật của xu hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh
doanh có thể đưa ra những quyết sách đúng đắn về lượng hàng hóa cũng như các
chủng loại bày bán v.v. Một mơ hình dự đốn có dự đốn được lượng tiền tiêu
dùng của khách hàng tiềm năng dựa trên những thông tin về thu nhập và nghề
nghiệp của khách hàng. Trong những năm qua, phân lớp dữ liệu đã thu hút sự
quan tâm của các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy
(machine learning), hệ chuyên gia (expert system), thống kê (statistics) v.v. Công
nghệ này cũng được ứng dụng trong nhiều lĩnh vực khác nhau như: Thương mại,
maketing, nhà băng, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục v.v. Phần lớn
các thuật toán ra đời đều sử dụng cơ chế dữ liệu cư trú trong bộ nhớ (memory
resident), thường thao tác với lượng dữ liệu nhỏ. Một số thuật toán ra đời sau này
đã sử dụng kỹ thuật cư trú trên đĩa cải thiện đáng kể khả năng mở rộng của thuật
toán với những tập dữ liệu lớn lên tới hàng tỷ bản ghi.


1


Quá trình phân lớp dữ liệu gồm gồm hai bước [11]:
 Bước 1: Xây dựng mơ hình phân lớp
Q trình học nhằm xây dựng một mơ hình mơ tả một tập các lớp dữ liệu
hay các khái niệm định trước. Đầu vào của quá trình này là một tập dữ liệu có
cấu trúc được mơ tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của
các thuộc tính đó. Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data
tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng (objiect), bản ghi
(record) hay trường hợp (case). Khóa luận sử dụng các thuật ngữ này với nghĩa
tương đương. Trong tập dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về
một lớp định trước, lớp ở đây là giá trị của một thuộc tính được chọn làm thuộc
tính gán nhãn lớp hay thuộc tính phân lớp (class lable attribute). Đầu ra của
bước này thường là các quy tắc phân lớp dưới dạng luật if – then, cây quyết định,
công thức logic hay mạng nơron. Q trình này được mơ tả như trong hình 1.1.

Classification
Algorithms
Training Data

Tuổi Loại xe
20
Combi
18
Sports
40
Sports
50

Family
35
Minivan
30
Combi
32
Family
40
Combi

Classifier
(Model)

Độ nguy hiểm
Cao
Cao
Cao
Thấp
Thấp
Cao
Thấp
Thấp

IF Tuổi < 31
AND IF Loại xe = Sports
THEN Độ nguy hiểm = Cao

Hình 1.1: Quá trình phân lớp dữ liệu – Xây dựng mơ hình phân lớp

Hay nói cách khác, xây dựng mơ hình là mơ tả một tập những lớp được

định nghĩa trước trong đó: mỗi bộ hoặc mẫu được gán thuộc về một lớp được
định nghĩa trước như là được xác định bởi thuộc tính nhãn lớp, tập hợp của
những bộ được sử dụng trong việc sử dụng mơ hình được gọi là tập huấn luyện .

2


Mơ hình được biểu diễn là những luật phân lớp, cây quyết định và những cơng
thức tốn học .
 Bước 2: Sử dụng mơ hình phân lớp (classification)
Bước thứ hai dùng mơ hình đã xây dựng ở bước trước để phân lớp dữ liệu
mới hay phân lớp các đối tượng chưa biết. Trước tiên độ chính xác mang tính
chất dự đốn của mơ hình phân lớp vừa tạo ra được ước lượng. Holdout là một
kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ thuật này sử dụng một tập
dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các mẫu này được chọn
ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo. Độ chính xác của
mơ hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các mẫu trong tập dữ
liệu kiểm tra được mơ hình phân lớp đúng (so với thực tế). Nếu độ chính xác của
mơ hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là rất
khả quan vì mơ hình ln có xu hướng “q vừa” dữ liệu. Quá vừa dữ liệu là
hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì q trình xây dựng
mơ hình dữ phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm
riêng biệt của tập dữ liệu đó. Do vậy cần sử dụng một tập dữ liệu kiểm tra độc
lập với tập dữ liệu đào tạo. Nếu độ chính xác của mơ hình là chấp nhận được, thì
mơ hình được sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu
mà giá trị của thuộc tính phân lớp là chưa biết.

3



Classifier

Unseen Data

Testing
Data

IF Tuổi < 34
Tuổi
27
34
66
44

Loại xe
Sports
Family
Family
Sports

Độ nguy hiểm
Cao
Thấp
Cao
Cao

AND IF Loại xe = Minivan
Độ nguy hiểm?

Độ nguy hiểm

Thấp

Hình 1.2: Quá trình phân lớp dữ liệu – phân lớp dữ liệu mới

Việc sử dụng mơ hình phục vụ cho mục đích phân lớp dữ liệu trong tương
lai hoặc phân lớp cho những đối tượng chưa biết đến. Trước khi sử dụng mô hình
người ta thường phải đánh giá tính chính xác của mơ hình trong đó. Nhãn được
biết của mẫu kiểm tra được so sánh với kết quả phân lớp của mô hình, độ chính
xác là phần trăm của tập hợp mẫu kiểm tra mà phân loại đúng bởi mơ hình, tập
kiểm tra là độc lập với tập huấn luyện.
Phân lớp là một hình thức học được giám sát tức là: tập dữ liệu huấn luyện
(quan sát, thẩm định v.v.) đi đôi với những nhãn chỉ định lớp quan sát, những dữ
liệu mới được phân lớp dựa trên tập huấn luyện .
Ngược lại với hình thức học được giám sát là hình thức học khơng được
giám sát lúc đó nhãn lớp của tập dữ liệu huấn luyện là không được biết đến.
Trong mơ hình phân lớp, thuật tốn phân lớp dữ 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ậy, chìa khóa của vấn đề phân
lớp dữ liệu là tìm ra được một thuật tốn phân lớp nhanh, hiệu quả, có độ chính
xác cao và có khả năng mở rộng được. Trong đó, khả năng mở rộng được của
thuật toán được đặc biệt chú trọng và phát triển [11].
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng trong những
năm qua:

4


+ Phân lớp cây quyết định (Decision tree classification)
+ Bộ phân lớp Bayesian (Bayesian classifier)
+ Mơ hình phân lớp K-láng giềng (K-nearest neighbor classifier)
+ Mạng nơron

+ Phân tích thống kê
+ Các thuật tốn di truyền
+ Phương pháp tập thơ (Rough set Approach)

1.1.2. Các vấn đề liên quan đến phân lớp dữ liệu
 Chuẩn bị dữ liệu cho việc phân lớp
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm khơng thể
thiếu và có vai trị quan trọng quyết định tới việc có áp dụng được mơ hình phân
lớp hay khơng. Q trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính
hiệu quả và khả năng mở rộng được của mơ hình phân lớp.
Quá trình tiền xử lý dữ liệu gồm các công việc sau:
- Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý lỗi (noise) và giá trị thiếu
(mising value) trong tập dữ liệu ban đầu. Noise là các lỗi ngẫu nhiên hay các giá
trị không hợp lệ của các biến trong tập dữ liệu. Để xử lý với tập lỗi này có thể
dùng kỹ thuật làm trơn. Missing value là những ơ khơng có giá trị của các thuộc
tính. Giá trị lỗi có thể do lỗi chủ quan trong quá trình nhập liệu, hoặc trong
trường hợp cụ thể giá trị của các thuộc tính đó khơng có, hay khơng quan trọng.
Kỹ thuật xử lý ở đây có thể thay giá trị thiếu bằng giá trị phổ biến nhất của thuộc
tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trên thống kê. Mặc dù phần lớn
thuật tốn phân lớp đều có cơ chế xử lý với những giá trị thiếu và lỗi trong tập dữ
liệu, nhưng bước tiền xử lý này có thể làm giảm sự hỗn độn trong q trình học
(xây dựng mơ hình phân lớp).
- Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hồn tồn khơng cần thiết
hay liên quan đến một bài tốn phân lớp cụ thể. Ví dụ, dữ liệu về ngày trong tuần
hồn tồn khơng cần thiết đối với ứng dụng phân tích độ rủi ro của các khoản

5



tiền cho vay của ngân hàng, nên thuộc tính này là dư thừa. Phân tích sự cần thiết
của dữ liệu nhằm mục đích loại bỏ những thuộc tính khơng cần thiết, dư thừa
khỏi q trình học vì những thuộc tính đó sẽ làm chậm, phức tạp và gây ra sự
hiểu sai trong q trình học dẫn tới một mơ hình phân lớp không dùng được.
- Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đơi khi là cần thiết
trong q trình tiền xử lý. Việc này đặc biệt hữu ích với những thuộc tính liên tục
(continuous attribute or numeric attribute). Ví dụ các giá trị số của thuộc tính thu
nhập của khách hàng có thể khái quát hóa thành các dãy giá trị rời rạc: thấp,
trung bình, cao. Tương tự, với những thuộc tính rời rạc (categorical attribute)
như địa chỉ phố có thể được khái quát hóa lên thành phố. Việc khái quát hóa làm
cơ đọng dữ liệu học ngun thủy, vì vậy các thao tác vào/ra liên quan đến quá
trình học sẽ giảm.

 So sánh các mơ hình phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn mơ hình phân lớp phù hợp. Việc
lựa chọn đó căn cứ vào sự so sánh các mơ hình phân lớp khác nhau, dựa trên các
tiêu chuẩn sau:
- Độ chính xác dự đốn (predictive accuracy):
Độ chính xác là khả năng của mơ hình để dự đốn chính xác nhãn lớp của dữ liệu
mới hay dữ liệu chưa biết.
- Tốc độ (speed): Tốc độ là chi phí tính tốn liên quan đến q trình tạo ra và sử
dụng mơ hình.
- Sức mạnh (robustness): Sức mạnh là khả năng mơ hình tạo ra những dự đốn
đúng từ những dữ liệu nhiễu hay dữ liệu với những giá trị thiếu.
- Khả năng mở rộng (Scalability): Là khả năng thực thi hiệu quả trên lượng lớn
dữ liệu của mơ hình đã học.
- Tính hiểu được (interpretability): Tính hiểu được la mức độ hiểu và hiểu rõ
những kết quả sinh ra bởi mơ hình đã học.

- Tính đơn giản (simplicity): Tính đơn giản liên quan đến kích thước của cây
quyết định hay độ cô đọng của các luật.

6


Trong các tiêu chuẩn trên, khả năng mở rộng của mơ hình phân lớp được
nhấn mạnh và chú trọng phát triển, đặc biệt với cây quyết định [11].

1.1.3. Một số phương pháp đánh giá độ chính xác của mơ hình phân lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó cho phép
dự đốn được độ chính xác của các kết quả phân lớp những dữ liệu tương lai. Độ
chính xác cịn giúp so sánh các mơ hình phân lớp khác nhau. Dưới đây là hai
phương pháp đánh giá phổ biến là holdout và k-fold cross-validation. Cả hai
phương pháp này đều dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu.
 Phương pháp holdout
dữ liệu đưa ra được phân chia ngẫu nhiên thành 2 phần là: tập dữ liệu đào tạo và
tập dữ liệu kiểm tra. Thông thường 2/3 dữ liệu cấp cho dữ liệu đào tạo, phần còn
lại cho tập dữ liệu kiểm tra [11].
Classifier

Training Data

Data
Ước lượng
độ chính xác
Testing
Data

Hình 1.3: Ước lượng độ chính xác của mơ hình phân lớp với phương pháp holdout


 Phương pháp k-fold cross-validation
Tập dữ liệu ban đầu được chia ngẫu nhiên thành k tập con (fold) có kích
thước xấp xỉ nhau S1,S2,…,Sk. Q trình phân lớp và test được thực hiện k lần.
Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu
đào tạo. Có nghĩa là đầu tiên việc phân lớp được thực hiện trên các tập S2,
S3,…Sk sau đó test trên tập S1, tiếp tục quá trình phân lớp được thực hiện trên tập
S2,S3,S4,…,Sk sau đó test trên tập S2 và cứ tiếp tục. Độ chính xác là tồn bộ số
phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu.

7


1.2. Cây quyết định ứng dụng trong phân lớp dữ liệu
Cây quyết định được biết đến như là giải thuật hàng đầu trong nhóm 10
giải thuật quan trọng của khai mỏ dữ liệu [16]. Trong suốt nhiều năm qua, cộng
đồng khai mỏ dữ liệu đã có những thống kê về các phương pháp sử dụng nhiều
nhất và thành công trong lĩnh vực khám phá tri thức và khai mỏ dữ liệu. Kết quả
cho thấy rằng giải thuật cây quyết định vẫn ln đứng đầu trong bình chọn bởi vì
tính hiệu quả của nó. Khác với các mơ hình học khác như mạng nowrron hay
máy học vecto hỗ trợ, mơ hình học của cây quyết định đơn giản, nhanh, cũng cho
kết quả tốt, điều đặc biệt quan trọng là kết quả sinh ra của cây quyết định là tập
hợp các luật đơn giản dễ diễn dịch. Đây là tính năng đáp ứng được yêu cầu cần
thiết của khai mỏ dữ liệu. Giải thuật cây quyết định có thể tìm thấy trong hầu hết
các ứng dụng như: phân lớp dữ liệu văn bản, phân lớp thư rác, nhận dạng tấn
công mạng và cả vấn đề hồi quy.
Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà
khoa học trong nhiều lĩnh vực khác nhau đề xuất như mạng nơ ron, mơ hình
thống kê tuyến tính bậc 2, cây quyết định, mơ hình di truyền. Trong số những mơ
hình đó, cây quyết định với những ưu điểm của mình được đánh giá là một công

cụ mạnh, phổ biến và đặc biệt thích hợp cho khai phá dữ liệu nói chung và phân
lớp dữ liệu nói riêng [9]. Có thể kể ra những ưu điểm của cây quyết định như:
xây dựng tương đối nhanh, đơn giản, dễ hiểu. Hơn nữa các cây có thể dễ dành
được chuyển đổi sang các câu lệnh SQL để có thể được sử dụng để truy nhập dữ
liệu một cách hiệu quả. Cuối cùng, việc phân lớp dựa trên cây quyết định đạt
được sự tương tự và đơi khi là chính xác hơn so với các phương pháp phân lớp
khác [10].

1.2.1. Giới thiệu về mô hình cây quyết định
Phương pháp học cây quyết định thuộc loại học có giám sát, được sử dụng
cho việc học các hàm phân loại từ dữ liệu huấn luyện, trong đó cây quyết định
được sử dụng làm biểu diễn xấp xỉ của hàm phân loại, tức là hàm có đầu ra là các
giá trị rời rạc.
Khái niệm cây quyết định:

8


Cây quyết định 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. Cây quyết định nhận đầu vào là một bộ giá
trị thuộc tính mơ tả một đối tượng hay một tình huống và trả về một giá trị rời
rạc. Mỗi bộ thuộc tính đầu vào được gọi là một mẫu hay một ví dụ, đầu ra gọi là
loại hay nhãn phân loại. Các thuộc tính đầu vào có thể nhận các kiểu dữ liệu khác
nhau (Nhị phân, Định tính, Các giá trị số, Ordinal) trong khi đó thuộc tính đầu ra
phải có kiểu dữ liệu là Binary hoặc Ordinal.
Cây quyết định được biểu diễn dưới dạng một cấu trúc cây. Mỗi nút trung
gian, tức là nút không phải nút lá, tương ứng với phép kiểm tra một thuộc tính.
Mỗi nhánh phía dưới của nút đó tương ứng với một giá trị của thuộc tính hay một
kết quả của phép thử. Khác với nút trung gian, nút lá không chứa thuộc tính mà
chứa nhãn phân loại.

Tóm lại, khi 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.

1.2.2. Quá trình xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
+ Giai đoạn thứ nhất phát triển cây quyết định
Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy
nạp theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả các lá
được gán nhãn lớp.
+ Giai đoạn thứ hai cắt,tỉa bớt các nhánh trên cây quyết định
Giai đoạn này nhằm mục đích đơn giản hóa va khái qt hóa từ đó làm
tăng độ chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ
lỗi (noise) của dữ liệu đào tạo mang tính chất thống kê, hay những sự biến đổi
mà có thể là đặc tính riêng biệt của dữ liệu đào tạo. Giai đoạn này chỉ truy cập
giữ liệu trên cây quyết định đã được phát triển trong giai đoạn trước và quá trình
thực nghiệm cho thấy giai đoạn này không tốn nhiều tài nguyên tính tốn, như
với phần lớn các thuật tốn, giai đoạn này khơng tốn nhiều tài ngun tính tốn
khoảng dưới 1% tổng thời gian xây dựng mơ hình phân lớp [9][5].

9


Do vậy, ở đây chúng ta chỉ tập trung vào nghiên cứu giai đoạn phát triển
cây quyết định. Dưới đây là khung công việc của giai đoạn này:
+ Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước.
+ Phát triển cây bằng việc thêm các nhánh tương ứng với từng giá trị của
thuộc tính đã chọn.
+ Sắp xếp, phân chia tập dữ liệu đào tạo tới nút con.
+ Nếu các ví dụ được phân lớp rõ ràng thì dừng.

+ Ngược lại : lặp lại bước 1 tới bước 4 cho từng nút con.
Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, như mơ tả trong
hình 1.5:

Nút gốc

Các nhánh
Nút trong

Nút trong

Nút lá

Nút lá

Hình 1.4: Mơ tả chung về cây quyết định

Trong cây quyết định:
- Nút Gốc: là nút trên cùng của cây
- Nút trong: biểu diễn q trình kiểm tra trên một thuộc tính đơn (hình chữ nhật).
- Nhánh: biểu diễn các kết quả của kiểm tra trên node trong (mũi tên).
- Nút lá: biểu diễn lớp hay sự phân phối lớp (hình trịn).
Để phân lớp mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được
đưa vào kiểm tra trên cây quyết định. Mỗi mẫu tương ứng có một đường đi từ
gốc đến lá và lá biểu diễn dự đoán giá trị phân lớp mẫu đó.

1.3. Đánh giá cây quyết định trong phân lớp dữ liệu
1.3.1. Ưu điểm của cây quyết định



Khả năng sinh ra các quy tắc dễ hiểu

10


Cây quyết định có khả năng sinh ra các quy tắc có thể chuyển đổi được
sang dạng tiếng Anh, hoặc các câu lệnh SQL. Đây là ưu điểm nổi bật của kỹ
thuật này. Thậm chí với những tập dữ liệu lớn khiến cho hình dáng cây quyết
định lớn và phức tạp, việc đi theo bất cứ đường nào trên cây là dễ dàng theo
nghĩa phổ biến và rõ ràng. Do vậy sự giải thích cho bất cứ một sự phân lớp nào
đều tương đối minh bạch.


Khả năng thực thi những lĩnh vực hướng quy tắc

Điều này nghe có vẻ hiển nhiên, nhưng quy tắc quy nạp nói chung và cây
quyết định nói riêng là lựa chọn hồn hảo cho những lĩnh vực thực sự là các quy
tắc. Rất nhiều lĩnh vực từ di truyền tới các q trình cơng nghiệp thực sự chứa
các quy tắc ẩn, không rõ ràng do khá phức tạp và tối nghĩa bởi những dữ liệu lỗi.
Cây quyết định là một sự lựa chọn tự nhiên khi chúng ta nghi ngờ sự tồn tại của
các quy tắc ẩn, khơng rõ ràng.


Dễ dàng tính tốn trong khi phân lớp

Mặc dù như chúng ta đã biết, cây quyết định có thể chứa nhiều định dạng,
nhưng trong thực tế, các thuật toán sử dụng để tạo ra cây quyết thường tạo ra
những cây với số phân nhánh thấp và các test đơn giản tại từng node. Những test
điển hình là: so sánh số, xem xét phần tử của một tập hợp, và các phép nối đơn
giản. Khi thực thi trên máy tính, những test này chuyển thành các tốn hàm logic

và số nguyên là những toán hạng thực thi nhanh và không đắt. Đây là một ưu
điểm quan trọng bởi trong mơi trường thương mại, các mơ hình dự đoán thường
được sử dụng để phân lớp hàng triệu thậm chí hàng tỉ bản ghi.


Khả năng xử lý với cả thuộc tính liên tục và thuộc tính rời rạc

Cây quyết định xử lý “tốt” như nhau với thuộc tính liên tục và thuộc tính
rời rạc. Tuy rằng với thuộc tính liên tục cần nhiều tài ngun ính tốn hơn.
Những thuộc tính rời rạc đã từng gây ra những vấn đề với mạng neural và các kỹ
thuật thống kê lại thực sự dễ dàng thao tác với các tiêu chuẩn phân chia trên cây
quyết định: mỗi nhánh tương ứng với từng phân tách tập dữ liệu theo giá trị của
thuộc tính được chọn để phát triển tại node đó. Các thuộc tính liên tục cũng dễ
dàng phân chia bằng việc chọn ra một số gọi là ngưỡng trong tập các giá trị đã

11


sắp xếp của thuộc tính đó. Sauk hi chọn được ngưỡng tốt nhất, tập dữ liệu phân
chia theo test nhị phân của ngưỡng đó.


Thể hiện rõ ràng những thuộc tính tốt nhất

Các thuật toán xây dựng cây quyết định đưa ra thuộc tính mà phân chia tốt
nhất tập dữ liệu đào tạo bắt đầu từ node gốc của cây. Từ đó có thể thấy những
thuộc tính nào là quan trọng nhất cho việc dự đoán hay phân lớp.

1.3.2. Điểm yếu của cây quyết định
Dù có những sức mạnh nổi bật trên, cây quyết định vẫn khơng tránh khỏi

có những điểm yếu. Đó là cây quyết định khơng thích hợp lắm với những bài
toán với mục tiêu là dự đoán giá trị của thuộc tính liên tục như thu nhập, huyết áp
hay lãi xuất ngân hàng. Cây quyết định cũng khó giải quyết với những dữ liệu
thời gian liên tục nếu không bỏ ra nhiều công sức cho việc cài đặt ra sự biểu diễn
dữ liệu theo các mẫu liên tục.


Dễ xảy ra lỗi khi có quá nhiều lớp.

Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng
yes/no hay accept/reject. Số khác lại có thể chỉ định các bản ghi vào một số lớp
bất kỳ, nhưng dễ xảy ra lỗi khi số ví dụ đào tạo ứng với một lớp nhỏ. Điều này
xảy ra càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một
node.


Mất nhiều thời gian tính tốn để đào tạo.

Điều này nghe có vẻ mâu thuẫn với khẳng định ưu điểm của cây quyết
định ở trên. Nhưng quá trình phát triển cây quyết định đắt về mặt tính tốn. Vì
cây quyết định có rất nhiều node trước khi đến lá cuối cùng. Tại node, cần tính
một độ đo (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục
phải them thao tác sắp xếp lại tập dữ liệu theo thứ tự giá trị của thuộc tính đó.
Sau đó mới có thể chọn được một thuộc tính phát triển và tương ứng là một phân
chia tốt nhất. Một vài thuật toán sử dụng tổ hợp các thuộc tính kết hợp với nhau
có trọng số để phát triển cây quyết định. Quá trình cắt cụt cây cũng “đắt” vì
nhiều cây con ứng cử phải được tạo ra và so sánh.

12



1.4. Một số thuật tốn phổ biến trong mơ hình phân lớp
Ngày nay, các thuật toán khai mỏ dữ liệu được sử dụng rất nhiều trong
cộng đồng khám phá tri thức và đặc biết là một số thuật toán đã được sử dụng
khá phổ biến trong mơ hình phân lớp dữ liệu như:
+ Thuật toán Cây quyết định (decision tree) cũng là mơ hình đơn giản,
nhanh, cũng cho kết quả tốt, điều đặc biết quan trọng cảu cây quyết định là kết
quả sinh ra là tập hợp các luật đơn giản dễ diễn dịch. Ngồi ra, cây quyết định có
thể xử lý được cả kiểu dữ liệu rời rạc và liên tục. Nó có thể tìm thấy trong hầu hết
các ứng dụng khai mỏ dữ liệu.
+ Thuật toán Boosting là phương pháp áp dụng một tập các mơ hình phân
lớp yếu để nâng cao hiệu quả của các mơ hình phân lớp này. Ý tưởng chính của
giải thuật này là xây dựng tuần tự T mơ hình và lặp lại q trình học của mơ hình
phân lớp yếu T lần. Sau mỗi bước lặp, mơ hình phân lớp yếu (ví dụ như Bayes
thơ ngây hay cây quyết định) sẽ tập trung học trên các phần tử bị phân lớp sai bởi
các lần trước.
Thuật toán Bagging được Breiman đề xuất trong những năm 1990 nhằm
giảm lỗi variance (phương sai) của giải thuật học nhưng không làm tăng lỗi Bias
quá nhiều. Trong thực tế nó cải thiện rất tốt mơ hình đơn khơng ổn định như cây
quyết định và thường có thành phần lỗi varaince cao.

1.5. Kết luận chương 1
Từ các phân tích trên luận văn chọn thuật tốn C4.5 để phân lớp dữ liệu.
Thuật toán này cho phép hiệu chỉnh một số dữ liệu (Vì một vài lý do nào đó)
khơng thu thập được, phù hợp với bài toán thực tế. Sau khi phân lớp, tác giả có
thể dùng giải thuật dự đốn các tình huống có thể xảy ra. Vì vậy, chương tiếp
theo tác giả nghiên cứu hai giải thuật này.

13



CHƯƠNG 2. THUẬT TOÁN C4.5 VÀ THUẬT TOÁN BAYES
2.1. Thuật toán cây quyết định C4.5
 Giới thiệu thuận toán
Thuật toán C4.5 là sự kế thừa của thuật toán học máy bằng cây quyết định
dựa trên nền tảng là kết quả nghiên cứu của HUNT và các cộng sự của ông trong
nửa cuối thập kỷ 50 và nửa đầu những năm 60 (Hunt 1962). Phiên bản đầu tiên ra
đời là ID3 (Quinlan, 1979) - 1 hệ thống đơn giản ban đầu chứa khoảng 600 dòng
lệnh Pascal, và tiếp theo là C4 (Quinlan 1987). Năm 1993, J. Ross Quinlan đã kế
thừa các kết quả đó phát triển thành C4.5 với 9000 dịng lệnh C chứa trong một
đĩa mềm. Mặc dù đã có phiên bản phát triển từ C4.5 là C5.0 - một hệ thống tạo ra
lợi nhuận từ Rule Quest Research, nhưng nhiều tranh luận, nghiên cứu vẫn tập
trung vào C4.5 vì mã nguồn của nó là sẵn dùng [14].
Thuật tốn C4.5 là thuật toán cải tiến từ thuật toán ID3. Với những đặc
điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ
biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ. C4.5 sử
dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm
C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệu tại
mỗi nút trong quá trình phát triển cây quyết định. C4.5 còn chứa một kỹ thuật
cho phép biểu diễn lại cây quyết định dưới dạng một danh sách sắp thứ tự các
luật if-then (một dạng quy tắc phân lớp dễ hiểu). Kỹ thuật này cho phép làm
giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với
nhánh tương ứng cây quyết định là tương đương.
 Trình bày thuật tốn
Cụ thể ta thực hiện theo các bước sau với tập dữ liệu S:
1

Tính tốn tần suất các giá trị trong các lớp của S

2


Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít mẫu khác lớp thì
trả về một nút lá. Nếu khơng thì tạo ra một nút quyết định N

3

Với mỗi thuộc tính A tính Gain(A)

14


×