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

BÁO CÁO PHƯƠNG PHÁP, KỸ THUẬT PHÂN TÍCH DỮ LIỆU

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 (2.35 MB, 121 trang )

VIỆN HÀN LÂM KHOA HỌC VÀ CÔNG NGHỆ VIỆT NAM

VIỆN CÔNG NGHỆ THÔNG TIN

BÁO CÁO
PHƢƠNG PHÁP, KỸ THUẬT
PHÂN TÍCH DỮ LIỆU

Tên đề tài:
“Phƣơng pháp phân tích dữ liệu ứng dụng trong phân tích
thu và nộp thuế của doanh nghiệp phục vụ thanh tra”
Mã số: VAST 01.08/16-17

Hƣớng KHCN ƣu tiên: Công nghệ thông tin, Điện tử, Tự
động hóa và Công nghệ vũ trụ (VAST01)
Đơn vị chủ trì: Viện Công nghệ thông tin
Chủ nhiệm đề tài: PGS.TS. Nguyễn Long Giang
Thời gian thực hiện: 24 tháng (01/2016 – 12/2017)

Hà Nội, 2018


MỤC LỤC
MỤC LỤC...............................................................................................................................................................i
DANH MỤC CÁC BẢNG ............................................................................................................................. iii
DANH MỤC CÁC HÌNH ............................................................................................................................... iv
MỞ ĐẦU ............................................................................................................................................................... 1
Chƣơng 1. TỔNG QUAN VỀ PHÂN TÍCH DỮ LIỆU DỰA TRÊN HỌC MÁY ........................ 2
1.1. Các vấn đề và thuật ngữ .................................................................................................... 3
1.2. Mục tiêu của phân tích dữ liệu dựa trên học máy ........................................................... 3
1.3. Các phƣơng pháp phân tích dữ liệu dựa trên học máy ................................................... 4


1.3.1. Phương pháp phân tích dựa trên mẫu ...............................................................5
1.3.2. Phương pháp suy luận logic ..............................................................................6
1.3.3. Mạng trí tuệ nhân tạo ........................................................................................6
1.3.4. Phương pháp phân tích tiến hóa ........................................................................7
1.3.5. Phương pháp phân tích thống kê .......................................................................8
1.3.6. Một số phương pháp khác.................................................................................9
1.3.7. Một số vấn đề ...................................................................................................10

Chƣơng 2. PHƢƠNG PHÁP PHÂN LỚP DỮ LIỆU.............................................................................12
2.1. Phân lớp bằng cây quyết định ......................................................................................... 14
2.1.1. Độ lợi thông tin ................................................................................................17
2.1.2. Tỉ số độ lợi .......................................................................................................19
2.1.3. Chỉ số Gini .......................................................................................................20
2.1.4. Cắt tỉa cây ........................................................................................................25

2.2. Cây phân lớp và cây hồi quy........................................................................................... 26
2.2.1. Phát triển cây CART ........................................................................................27
2.2.2. Dự đoán bởi cây CART ....................................................................................27
2.2.3. Cắt tỉa cây CART .............................................................................................28

2.3. Thuật toán phân lớp Naive Bayes .................................................................................. 33
2.3.1. Định lý Bayes ...................................................................................................33
2.3.2. Phân lớp Naive Bayes ......................................................................................34

2.4. Thuật toán phân lớp máy vector hỗ trợ SVM ............................................................... 39
2.4.1. Mô hình Linear SVM........................................................................................39
i


2.4.2. Mô hình NoLinear SVM ...................................................................................45

2.4.3. Phân lớp đa lớp với SVM. ................................................................................49

2.5. Thuật toán phân lớp kNN ................................................................................................ 51
2.6. Đánh giá các giải thuật phân lớp .................................................................................... 56
Chƣơng 3. PHƢƠNG PHÁP PHÂN TÍCH HỒI QUY VÀ TƢƠNG QUAN................................60
3.1. Phân tích tƣơng quan ....................................................................................................... 60
3.1.1. Hệ số tương quan .............................................................................................61
3.1.2. Khoảng tin cậy 95% của hệ số tương quan .....................................................67
3.1.3. Kiểm định hệ số tương quan ............................................................................68
3.1.4. Tổng kết............................................................................................................69

3.2. Phân tích hồi quy.............................................................................................................. 71
3.2.1. Mô hình hồi quy tuyến tính đơn giản ...............................................................73
3.2.2. Mô hình hồi quy tuyến tính đa biến .................................................................83
3.2.3. Phân tích hồi quy đa thức ................................................................................92
3.2.4. Phân tích hồi quy logistic ................................................................................97

KẾT LUẬN.......................................................................................................................................................112
TÀI LIỆU THAM KHẢO ............................................................................................................................113

ii


DANH MỤC CÁC BẢNG
Bảng 2.1 Bảng dữ liêu khách hàng ..................................................................................... 16
Bảng 2.2. Dữ liệu Fisher's Iris Data ................................................................................... 23
Bảng 2.3. Dữ liệu Titanic .................................................................................................... 29
Bảng 2.4 Ma trận lẫn lộn .................................................................................................... 56
Bảng 3.1. Ý nghĩa hệ số tương quan ................................................................................... 64
Bảng 3.2. Chỉ số đo cận nặng và chiều cao của 15 người Việt........................................... 65

Bảng 3.3. Dữ liệu Cholesterol trong máu 18 nam .............................................................. 77
Bảng 3.4. Sản lượng CO2 và một số yếu tố ảnh hưởng đến CO2 ....................................... 88
Bảng 3.5. Dữ liệu đo độ căng vật liệu ................................................................................. 93
Bảng 3.6. Dữ liệu các yếu tố nguy cơ gẫy xương ................................................................ 97

iii


DANH MỤC CÁC HÌNH
Hình 1.1. Phân lớp SVM ...................................................................................................... 10
Hình 2.1. Mô hình phân lớp ................................................................................................. 15
Hình 2.2. Biểu diễn cây quyết định ...................................................................................... 17
Hình 2.3. Mô tả cây quyết định với dữ liệu IRIS ................................................................. 24
Hình 2.4. Kết quả dự đoán với dữ liệu test (30%IRIS) ........................................................ 25
Hình 2.5. (a) Cây trước cắt tia; (b) Cây sau cắt tỉa ............................................................ 26
Hình 2.6. Cây CART với dữ liệu Titalic............................................................................... 32
Hình 2.6. (c) và (d) Biểu diễn cây CART với nhãn bằng tổng số mẫu của nút.................... 33
Hình 2.7. Mổ tả kết quả mô hình Naïve Bayes .................................................................... 39
Hình 2.8. Minh họa dữ liệu có thể phân tách một cách phi tuyến ....................................... 40
Hình 2.9. Lề của một siêu phẳng ......................................................................................... 40
Hình 2.10. Siêu phẳng có lề lớn ........................................................................................... 41
Hình 2.11. Minh họa véc tơ hỗ trợ....................................................................................... 43
Hình 2.12. Biểu diễn mô hình phân lớp Linear SVM........................................................... 45
Hình 2.13. Hàm ánh xạ từ dữ liệu phi tuyến sang dữ liệu tuyến tính .................................. 46
Hình 2.14. Biểu diễn mô hình phân lớp NoLinear SVM ...................................................... 48
Hình 2.15. Biểu diễn phân lớp SVM đa lớp ......................................................................... 51
Hình 2.16 Các bước trong mô hình học máy có giam sát ................................................... 52
Hình 2.17. Kết quả dự báo FX bởi KNN.............................................................................. 56
Hình 3.1 Minh họa liên hệ giữa x và y. ................................................................................ 64
Hình 3.2. Mô tả mối quan hệ giữa hai biến weight và waist ............................................... 65

Hình 3.4. Mô tả dữ liệu quản cáo ........................................................................................ 71
Hình 3.5. Biểu diễn mô hình tuyến tính đơn giản ................................................................ 73
Hình 3.6 Mô tả phần dư của mô hình tuyến tinh ................................................................. 75
Hình 3.7. Phương pháp Ballentine với R2, (a) R2= 0, (f) R2=1 ......................................... 76
Hình 3.8. Biểu đồ mô ta sự phụ thuộc giữa age và chol ...................................................... 78
Hình 3.9. Biểu đồ phân tích R trong hồi quy tuyến tính ...................................................... 81
Hình 3.10. Biểu diễn giá trị dự báo và khoảng tin cậy 95%................................................ 82
Hình 3.11. Biểu diễn mối quan hệ giữa age, bmi và chol .................................................... 84
Hình 3.12. Biểu đồ phân tích mô tả phần dư ....................................................................... 87
iv


Hình 3.14. Biểu diễn quan hệ giữa độ cứng của gỗ và độ căng vật liệu ............................. 95
Hình 3.15. So sánh kết quả dự báo của 3 mô hình .............................................................. 97
Hình 3.16. Biểu diễn mối liên hệ giữa p và logit(p) ............................................................ 99
Hình 3.17. So sánh mật độ sương của nhóm fx=1 và nhóm fx=0 ..................................... 102
Hình 3.18. Xác suất dự báo khả năng gẫy xương với mật độ xương................................. 104
Hình 3.19. Biểu đồ dự báo gẫy xương với newd mô hình logistic ..................................... 105
Hình 3.20. Biểu diễn khả năng ảnh hưởng gậy xương của các biến độc lập .................... 111

v


1

MỞ ĐẦU
Trong thời đại ngày nay, thông tin đã trở thành động lực chủ chốt cho tăng
trƣởng kinh tế quốc gia, cho tăng cƣòng năng lực cạnh tranh của doanh nghiệp. Tuy
nhiên, với lƣợng dữ liệu số tăng rất nhanh chóng cả về kích thƣớc và sự đa dạng.
Dữ liệu đƣợc thu thập từ nhiều nguồn nhƣ: dữ liệu từ internet, đặc biệt loại dữ liệu

do ngƣời sử dụng tạo ra (UserGenerated Content: UGC) chiếm tỷ trọng ngày càng
cao, đã trở thành nguồn tài nguyên tiềm ẩn. Trích rút thông tin hữu ích đƣợc sử
dụng cho phát triển kinh tế và tăng cƣòng năng lực cạnh tranh.
Nghiên cứu và triển khai các phƣơng pháp tự động phát hiện các mẫu mới,
có giá trị, hữu ích tiềm năng và hiểu đƣợc trong khối dữ liệu đồ sộ, khắc phục hiện
tƣợng "giàu về dữ liệu mà nghèo về thông tin, hƣớng tới mục tiêu tăng cƣòng tài
nguyên tri thức là hết sức cần thiết và có ý nghĩa. Phân tích để hiểu đƣợc dữ liệu và
phát hiện đƣợc dữ liệu mà con ngƣời quan tâm theo một khía cạnh ứng dụng thực tế
nào đó đang phát triển rất mạnh mẽ.
Nội dung trình bày trong tài liệu này gồm ba chƣơng: Chƣơng 1, trình bày
tổng quan về các phƣơng pháp và ký thuật phân tích dữ liệu, nhằm có cái nhìn tổng
quan, từ đó lựa chọn ra phƣơng pháp phân tích phù hợp nhất cho dữ liệu thu nộp
thuế của chúng tôi; Chƣơng 2, trình bày chi tiết một số kỹ thuật phân lớp dữ liệu với
mục đích hiểu chi tiết bản chất của mỗi một kỹ thuật, để có thể biết đƣợc ƣu nhƣợc
điểm của mỗi một kỹ thuật phân lớp, và có sử dụng các kỹ thuật này để đối phó với
dữ liệu thu nộp thuế nhƣ thế nào?; Chƣơng 3, trình bày kỹ thuật phân tích hồi quy
và tƣơng quan, với mục đích phân tích mối liên hệ giữa các yếu tố ảnh hƣởng đến
khả năng thu nộp thuế của cá nhân và doanh nghiệp và lựa chọn đƣợc một hàm phụ
thuộc (mô hình) tối ƣu nhất cho mục đích bài toán thanh tra và kiểm tra thuế.

1


2
Chƣơng 1. TỔNG QUAN VỀ PHÂN TÍCH DỮ LIỆU DỰA TRÊN HỌC MÁY
Ngày nay, với sự phát triển mạnh về công nghệ mạng và đa dạng các dich vụ
trên internet. Thông tin ngày càng trở nên đa dạng và phức tạp, đòi hỏi ngƣời dùng
cần có sự lựa chọn thông tin có ích cho mỗi mục đích sử dụng. Vì vậy, con ngƣời
cần có một hệ thống thu thập, lƣu trữ và phân tích để hiểu dữ lệu một cách chính
xác, nhanh chóng. Từ đó có thể tìm, suy luận hoặc bổ sung để có thể trích dẫn đƣợc

những thông tin hữu ích ứng dụng cho bài toán hỗ trợ ra quyết định và dự báo, dự
đoán cho các hàng vi tƣơng lai.
Các phƣơng pháp phân tích dữ liệu sử dụng các công cụ trong khai phá dữ
liệu và học máy đã đƣợc áp dụng để giải quyết khá hiệu quả trong lĩnh vực tài chính,
công nghiệp, mạng xã hội, y học, sinh học,..v.v. Phân tích hiệu quả dữ liệu thu thập
đƣợc có thể gia tăng đáng kể năng suất kinh doanh, sản xuất, đƣợc đánh giá cao và
hữu ích trong các ứng dụng hỗ trợ ra quyết định, giám sát và chẩn đoán.
Phân tích là trích rút ra câu trả lời và mẫu hữu ích nhƣ là các quy tắc hoặc
quy luật trong dữ liệu. Những mẫu này có thể đƣợc sử dụng để dự báo, chuẩn đoán
hoặc phân lớp,..v.v. Tóm lại, phân tích dữ liệu và học máy có thể ứng dụng đƣợc
vào rất nhiều lĩnh vực trong khoa học, công nghiệp, y tế, sinh học, kinh tế, xã
hội,..Tuy nhiên, vẫn còn khoảng cách giữa nghiên cứu lý thuyết và ứng dụng thực tế.
Do vậy, trong học máy thƣờng xây dựng một mô hình hoặc cấu trúc phân tích, dự
đoán đạt tới một tiêu chuẩn hiệu suất nào đó lấy làm cơ sở để áp dụng.
Dữ liệu thu thập sử dụng để phân tích thƣờng nổi tiếng là bẩn. Dữ liệu chứa
các giá trị lỗi, giá trị nhiễu, giá trị mơ hồ, giá trị ngoại lai và giá trị thiếu do không
đo đạc đƣợc và một số lƣợng lớn các trƣờng, các thuộc tính không liên quan hoặc
không cần thiết. Tất cả các điều này có thể trở nên nghiêm trọng trong giai đoạn xây
dựng mô hình và thƣờng tốn kém chi phí và thời gian. Có rất nhiều phƣơng pháp
đƣợc áp dụng để xử lý dữ liệu bẩn nhƣ lý thuyết toán, lý thuyết tập thô, lý thuyết tập
mờ, các phƣơng pháp học máy,..
Phân tích dữ liệu dựa trên khai phá dữ liệu và học máy là làm thế nào để xây
dựng một thuật toán, một mô hình hoặc một chƣơng trình máy tính tự động có khả
năng hiểu, dự báo hoặc ra quyết định nhanh, hiệu quả và chính xác bằng quan sát
các hành vi và so sánh nó với hanh vi trong quá khứ. …Trong phần này, chúng tôi
trình bày ngắn gọn một số phƣơng pháp, đặc tính và thành phần cơ bản của phân
tích dữ liệu sử dụng các phƣơng pháp, kỹ thuật trong khai phá dữ liệu và học máy.

2



3
1.1. Các vấn đề và thuật ngữ
Trong học máy có hai kiểu không gian hoạt động. Một không gian X bao
gồm các điểm dữ liệu và một không gian  bao gồm tất cả các mô hình học máy có
thể: Trong phạm vi tài liệu này  là mô hình học giám sát (supervised) và mô hình
học không giám sát (unsupervised). Mô hình học máy dựa trên một tập huấn luyện

 x  


N

 1

 X , các thuật toán học máy lựa chọ một mô hình học   . Học ở đây

là lựa chọn các giá trị thích hợp cho các tham số trong mô hình học máy từ tập huấn
luyện. Làm thế nào để thực hiện lựa chọn và điều kiện gì đƣợc sử dụng để đánh giá
các mô hình học khác nhau.
Mô hình học có giám sát chia dữ liệu thành hai tập gồm tập các biến điều
kiện X (tập đầu vào), tập các biến mục tiêu Y (biến đầu ra) và đƣợc biểu diễn dƣới
dạng hàm Y = f(X). Học có giám sát dựa trên giá trị hàm đƣợc xác định trƣớc từ dữ
liệu huấn luyện

 x  , y  





N

 1

 X  Y , nghĩa là chúng ta muốn tìm hàm

y  f  x,  với   . Phân lớp và dự báo thƣờng đƣợc áp dụng cho các thuật toán
học có giám sát.
Trong học không giám sát, dữ liệu đƣợc biểu diễn chỉ bởi một tập biến điều

 

kiện x



N

 1

 X . Sau đó thuật toán học sẽ phát hiện ra một số cấu trúc và ghi nhớ

lại đƣợc gọi là mẫu. Các mẫu có tính chất tƣơng tự nhau đƣợc gọi là một cụm và
đƣợc gán cùng một nhãn.
1.2. Mục tiêu của phân tích dữ liệu dựa trên học máy
Mục tiêu chính của phân tích dữ liệu dựa trên học máy là dự báo các giá trị
chƣa biết của thuộc tính dựa trên các yếu tố khác nhau hoặc dựa trên dữ liệu mẫu
(dữ liệu lịch sử) hoặc dựa trên mô tả các đặc tính bên trong của dữ liệu, …
Các bài toán trong phạm vi học máy giải quyết thƣờng là phân lớp
(Classification); hồi quy và dự báo (Regression and prediction); phát hiện bất

thƣờng (Anomaly Detection); mô tả cấu trúc hay còn gọi là phân tích mô tả
(Structure Description).
Mục tiêu của bài toán phân lớp là xây dựng một hàm ánh xạ dựa trên dữ liệu
lịch sử đã đƣợc phân lớp hoặc đã đƣợc rời rạc hóa để tìm kiếm giá trị cho đối tƣợng
mới là có thuộc hoặc không thuộc về một lớp nào đó. Ví dụ xác định doanh nghiệp
3


4
có khả năng nợ thuế hay không thì cần phải có dữ liệu lịch sử thu nộp thuế doanh
nghiệp, hoặc xác định khả năng tin dụng của một khách hàng thì chúng ta cần lịch
sử giao dịch tài chính của khách hàng, hoặc chẩn đoán một bệnh nhân có bệnh hoặc
không có bệnh cần dựa trên các triệu chứng của ngƣời bệnh,…
Tƣơng tự nhƣ bài toán phân lớp mục tiêu của bài toán hồi quy cũng xây dựng
một hàm ánh xạ dựa vào dữ liệu lịch sử để xác định một giá trị cụ thể của biến dự
báo. Ví dụ chúng ta dự báo giá trị tƣơng lại của một cổ phiếu thì chúng ta cần dựa
vào giá trị lịch sử của cổ phiếu đó, hoặc chúng tả có thể ƣớc lƣợng đƣợc số thuốc
cần dùng trong một năm thì chúng ta cần dữ liệu sử dụng thuốc của các năm trƣớc
đó, hoặc chúng ta có thể ƣớc lƣợng mức độ gian lân thuế của một doanh nghiệp là
bao nhiêu thì chúng ta cần dữ liệu lịch sử gian lận thuế của các doanh nghiệp,…
Mục tiêu của bài toán phát hiện sự khác biệt, sự không đồng nhất trong dữ
liệu. Để giải quyết bài toán này ngƣời ta thƣờng nghiên cứu các đặc trƣng của dữ
liệu, hoặc nghiên cứu tần suất xuất hiện của đặc tính trong dữ liệu. Trong học máy
chúng ta thƣờng sử dụng mẫu đƣợc xây dựng từ dữ liệu bình thƣờng, sau đó so sánh
nếu có sự khác biệt lớn so với dữ liệu mẫu thì đƣợc coi là bất thƣờng.
Mô tả cấu trúc là tìm, mô tả các tính chất và cấu trúc của tập dữ liệu để có thể
tìm ra thuộc tính quan trọng đƣa vào trong dữ liệu học mà có thể giải thích rõ hoặc
ảnh hƣởng nhiều nhất tới biến mục tiêu bài toán. Để giải quyết bài toán này, Ziarko,
1991 đã xây dựng mô hình thống kê giải thích sự phụ thuộc hoặc mối tƣơng quan
của các thuộc tính trong dữ liệu.

1.3. Các phƣơng pháp phân tích dữ liệu dựa trên học máy
Các phƣơng pháp phân tích dữ liệu dựa trên học máy đƣợc hình thành và
phát triển dựa trên lý thuyết toán học và lý thuyết xác suất thống kê. Do vậy các
phƣơng pháp học máy cũng rất đa dạng và phong phú. Tuy nhiên chủ yếu gồm các
nhóm phƣơng pháp học học dựa trên mẫu (Instance-Based Learning); suy luận logic
(Logical Inference); mạng trí tuệ nhân tạo (Artificial Neural Networks); các phƣơng
pháp thống kê (Statistical Methods); tính tiến hóa (evolutionary computation) và
một số phƣơng pháp khác nhƣ SVM (Support Vector Machine), Boosting,
Randomfrest, …

4


5
1.3.1. Phương pháp phân tích dựa trên mẫu
Phân tích dựa trên mẫu là một phƣơng pháp đơn giản nhất của học máy.
Phƣơng pháp này chỉ đơn giản là lƣu trữ tất cả dữ liệu huấn luyện gặp phải. Khi
xuất hiện một mẫu mới cần thực hiện phân lớp hoặc dự đoán thì chỉ cần tìm mẫu
giống nhất trong dữ liệu huấn luyện đã đƣợc lƣu trữ để gán giá trị cho biến mục tiêu.
Đây là nền tảng của phƣơng pháp học dựa trên mẫu [Aha et al., 1991]. Phƣơng pháp
điển hình nhất của kỹ thuật này là láng giềng gần nhất (nearest neighbour); phƣơng
pháp hồi quy dựa vào trọng số địa phƣơng (locally weighted regression); và phƣơng
pháp dựa trên các trƣờng hợp (case based). Phƣơng pháp này đòi hỏi rất ít công việc
trong quá trình huấn luyện, kể từ khi bắt đầu làm việc cho tới khi tìm thấy mẫu
tƣơng tự. Vì vậy phƣơng pháp này còn đƣợc gọi là phƣơng pháp học lƣời biếng
“lazy”.
Hầu hết các phƣơng pháp học dựa trên mẫu là thuật toán láng giềnh gần nhất
(Nearest Neighbour) của Cover and Hart (1967). Dữ liệu học của phƣơng pháp này
hầu hết các dữ liệu tƣơng tự đƣợc lƣu vào một tập dữ liệu sử dụng để dự đoán các
giá trị mục tiêu. Phƣơng pháp này thƣờng rất nhậy cảm với nhiễu và không tổng

quát. Thay vào đó ngƣời ta mở rộng k láng giềng gần nhất để khắc phục bất lợi trên.
Và phƣơng pháp này đƣợc gọi là phƣơng pháp k láng giềng gần nhất (k-Nearest
Neighbour) . Giá trị biến mục tiêu thƣờng đƣợc gán bằng giá trị có tần xuất nhiều
nhất trong các mẫu láng giềng gần nhất đối với thuộc tính rời rạc và trung bình cộng
đối với thuộc tính liên tục.
Biểu diễn phƣơng pháp bằng một không gian mẫu với mỗi mẫu coi nhƣ một
điểm dữ liệu. Sử dụng công thức tính khoảng cách Euclidean hoặc khoảng cách
Hamming để xác định vị trí đặt điểm dữ liệu. Phức tạp hơn một chút có thể sử dụng
phƣơng pháp suy luận dựa trên trƣờng hƣợ của Aamodt and Plaza (1992).
Ƣu điểm chính của phƣơng pháp này có thể sử dụng địa phƣơng hóa các hàm
mục tiêu phức tạp, xây dựng xấp xỉ khác nhau cho mỗi dự đoán hoặc phân lớp mới.
Nhực điểm của phƣơng pháp này là chi phí cao cho một phân lớp mới. Các phƣơng
pháp này có thể nhậy cảm với dữ liệu đầu vào dƣ thừa. Ví dụ chỉ một tập con dữ
liệu đầu vào liên quan trực tiếp đến giá trị biến mục tiêu thì khoảng cách đến các
láng giềng có thể bị chi phối bởi các thuộc tính không góp phần vào phân lớp

5


6
1.3.2. Phương pháp suy luận logic
Đây là một phƣơng pháp sớm xuất hiện trong học máy và trong một thời gian
dài của ngành trí tuệ nhân tạo. Phƣơng pháp này sử dụng phép toán logic để biểu
diễn và suy luận tri thức. Các thuộc tính đƣợc biểu diễn bởi các biểu thức logic nếu
giá trịc các thuộc tính là nhị phân, hoặc đƣợc lựa chọn nếu là thuộc tính số. Tức là
giá trị của biến đƣợc biểu diễn bằng True/False.
Trong một số trƣờng hợp hệ thống suy diễn logic cũng có thể mở rộng để đối
phó với dữ liệu không chắc chắn, ví dụ sử dụng logic mờ (fuzzy logic) của Zadeh
(1965). Bình thƣờng tất cả các giá trị logic đƣợc biểu diễn bằng nhị phân True/False.
Logic mờ cho phép biểu diễn mức độ chân lý khác nhau.

Phƣơng pháp suy luận logic có khả năng học hoặc suy luận trực tiếp qua mẫu
nhƣ cây quyết định Decision Tree của Quinlan (1983). Cây quyết định là một trong
những đại diện đƣợc sử dụng rộng rãi nhất trong biểu diễn suy luận logic và có khả
năng đối phó tốt với dữ liệu nhiễu. Cây quyết định phân lớp theo đƣờng dẫn từ gốc
tới lá. Mỗi nút trong cây kiểm tra một dự đoán trên một thuộc tính và cây con đƣợc
chọn là cây phù hợp với kết quả bài toán.
Tìm một cây quyết định biểu diễn cho dữ liệu thƣờng đƣợc thực hiện bởi
phƣơng pháp tìm kiếm tham lam trên tất cả các cây quyết định có thể. Mỗi một
thuộc tính đƣợc đánh giá để xác định cho phân hoạch mẫu. Thuộc tính tốt nhất đƣợc
chọn để phân hoạch nút gốc và các nút con đƣợc tạo cho thuộc tính đƣợc chọn, sau
đó quá trình đƣợc lặp lại đối với nút con cho tới khi tất cả hoặc hâu hết các các mẫu
của thuộc tính thuộc về một lớp và đây chính là nút lá cảu cây quyết định.
Thuật toán thƣờng đƣợc sử dụng trong nhóm phƣơng pháp này là thuật toán
ID3 (1986) và C4.5 (1993 ) của Quinlan. Mở rộng phƣơng pháp này là phƣơng
pháp CART(1984) và Random Forest (2001) của Breiman et al và Fuzzy Random
Forest (2010) của P.P. Bonissone et al.,.. Các thuật toán trên có khả học với các
thuộc tính có cả giá trị rời rạc, giá trị liên tục, giá trị thiếu.
1.3.3. Mạng trí tuệ nhân tạo
Lĩnh vự trí tuệ nhân tạo bao gồm một số thuật toán của Minsky and Papert
(1969) ; Kosko(1993) ; Haykin(1994) với khả năng hoàn toàn khác nhau, nhƣng tất
cả họ đều chung một mục tiêu cơ bản là các tính toán đƣợc thực hiện bằng một số
đơn vị tính toán nhỏ và tổng hợp lại bởi trọng số liên kết thông qua các giá trị đƣợc
truyền đi. Việc tính toán đƣợc thực hiện trên các đơn vị thƣờng khá đơn giản và kết
6


7
quả tổng hợp dựa trên các kết nối dữ liệu đầu vào qua hàm chuyển đổi. các hàm
chuyển đổi thƣờng đơn điều, phi tuyến tính và đƣợc xác định giới hạn đầu ra của
các đơn vị.

Mạng trí tuệ nhân tạo đƣợc sử dụng để dự báo hoặc phân lớp, một mẫu đầu
vào thƣờng đƣợc biểu diễn bằng một tập các đơn vị đầu vào. Kết quả từ các đơn vị
đầu vào sau đó đƣợc lan truyền thông qua mạng, bởi các kết nối đặc biệt cho tới khi
nhận đƣợc một tập các kết quả đầu ra. Kết quả này đƣợc hiểu là kết quả dự đoán
hoặc kết quả phân lớp. Huấn luyện số lƣợng mạng để ƣớc lƣợng trọng số của kết
nối cho thấy rằng giảm thiểu các lỗi đầu ra.
Kiến trúc mạng đƣợc sử dụng sử dụng phổ biến nhất là Multi-Layer
Perceptron. Từ các đơn vị đầu vào của mạng, các hoạt động lan truyền của mỗi đơn
vị này trong mạng thông qua các lớp ẩn cho tới khi đạt kết quả đầu ra. Hoạt động
của mạng thông qua một kiểu duy nhất ví dụ truyền theo một hƣớng duy nhất.
Multi-Layer Perceptron có thể đƣợc tạo ra bằng một số cách khác nhau,
nhƣng phƣơng pháp phổ biến nhất là thuật toán lan truyền ngƣợc (back-propagation)
của Rumelhart et al.(1986). Nó là một thuật toán dạng gradient descent, cố gắng hạn
chế tối đa lỗi bình phƣơng giữa các giá trị đầu ra của mạng và giá trị thực cho đầu
ra.
Đây là một loại mạng nhân tạo thích hợp để xử lý dữ liệu nhiễu và dữ liệu
lỗi, nhƣng yêu cầu thời gian đáng kể để đào tạo. Việc đánh giá phƣơng pháp học sử
dụng mạng nhân tạo rất nhanh và thực hiện tốt trong các vấn đề thực tế. Tuy nhiên,
để hiểu tại sao học sử dụng mạng nhân tạo tốt lại rất hạn chế, nhƣ trọng số học
thƣờng khó khăn để giải thích.
Một số thuật toán ứng dụng mạng nhân tạo khác nhƣ Hopfield network của
Hopfield( 1982), Learning Vector Quantization của Kohonen (1990) và SelfOrganizing Maps của Kohonen (1982, 1989).
1.3.4. Phương pháp phân tích tiến hóa
Phƣơng pháp tiến hóa thƣờng sử dụng để mô tả các phƣơng pháp sử dụng
khái niệm làm việc dựa trên quần thể để thực hiện định hƣớng tìm kiếm trong miền
đƣợc xác định. Trong thực tế chủ yếu liên quan đến vấn đề tổ hợp.
Tối ƣu liên quan đến tiến hóa đƣợc chia thành thuật toán tiến hóa và swarm
intelligence của Beni and Wang (1989). Swarm intelligence là một hệ thống tự
phân cấp bào gồm các tổ chức nhỏ, địa phƣơng ảnh hƣởng đến cả quần thể. Điều


7


8
này quan sát thấy trong tự nhiên nhƣ đàn ong, đàn kiến. Các thuật toán thƣờng đƣợc
sử dụng để tìm các giải pháp xấp xỉ cho bài toán tối ƣu tổ hợp.
Điều này cũng đúng cho các thuật toán tiến hóa, chẳng hạn nhƣ đột biến, sinh
sản, chọn lọc tự nhiên. Ví dụ thuật toán di truyền (genetic algorithms) cung cấp
cách tiếp cận học dựa trên sự phát triển mô phỏng. Giả thuyết đƣợc mã hóa thành
một chuỗi số nhị phân. Các giả thuyết trong quần thể sau đó đƣợc biến đổi và lại
ghép tạo thành các tập con (con) thông qua hàm đổi biến (mutating) sau đó lựa chọn
một thế hệ tiếp theo bởi hàm fitness.
Thuật toán tiến hóa thƣờng giải quyết các vấn đề bài toán một cách đơn giản.
Tuy nhiên tăng mạnh sức tính toán và khi thực hiện tìm kiếm tập con thì việc lựa
chọn cũng rất khó khăn
1.3.5. Phương pháp phân tích thống kê
Phƣơng pháp thống kê đƣợc coi là nền móng cho phƣơng pháp phân tích dữ
liệu dựa trên học máy. Phƣơng pháp thống kê biểu diễn dữ liệu nhƣ một tập các
biến ngẫu nhiên và cố gắng xây dựng mô hình phân bổ xác suất trên tập biến ngẫu
nhiên này. Dữ liệu lịch sử đƣợc sử dụng để ƣớc lƣợng phân bổ xác suất.
Khi nói đến biểu diễn mô hình phân bổ xác suất thƣờng đƣợc biết đến với mô
hình tham số và mô hình phi tham số. Trong mô hình tham số cấu trúc đã đƣợc biết
trƣớc và chỉ một số tham số khá nhỏ đƣợc kiểm soát và đƣợc phân bổ đƣợc ƣớc
lƣợng từ dữ liệu. Ví dụ nhƣ giá trị trung bình và phƣơng sai của một phân phối
Gaussian hoặc tham số hình dạng và tham số tỷ lệ của phân bổ gamma.
Ngƣợc lại phƣơng pháp phi tham số cố gắng áp đặt hạn chế rất ít trên các
hình dạng của phân phối. Thuật ngữ phi tham số không có nghĩa rằng thiếu các
tham số mà đúng hơn là số lƣợng và tính chất của tham số mà trong thực tế rất cao,
linh hoạt và phụ thuộc vào dữ liệu. Ƣớc lƣợng mật độ Parzen hoặc kernel là một ví
dụ về phƣơng pháp phi tham số của Parzen (1962). Ở đây sự phân bổ dữ liệu

thƣờng đƣợc ƣớc tính bằng cách đặt một hàm mật độ kernel, thƣơng là Gaussian với
ma trận hiệp phƣơng sai cố định trên mỗi một mẫu và kết hợp chúng với nhau. Điều
này có thể áp dụng mở rộng mật độ cho toàn miền. Phân lớp một điểm dữ liệu mới
có thể thực hiện bằng cách tính toán từ các kết quả hàm kernel và bổ sung kết quả
bằng lớp. Sau đó thực hiện lặp lại phân bổ của lớp trên mẫu mới. Tƣơng tự nhƣ vậy,
dự đoán có thể thực hiện bằng cách tính trung bình trọng số của mẫu huấn luyện
dựa trên các phản hồi của chúng. Các phƣơng pháp làm việc tƣơng tự nhƣ mô hình

8


9
láng giềng gần nhất sử dụng hàm tính khoảng cách cho trung bình tất cả các láng
giềng.
Một số mô hình khác nhƣ mô hình bán tham số (semi-parametric) gọi là mô
hình hỗn hợp của (Mixture Model) của McLachlan và Basford (1988). Thuật toán
phổ biến sử dụng cho mô hình hỗn hợp đƣợc dựa trên Expectation Maximisation
của Dempster et al. (1977) . Đây là phƣơng pháp lặp xen kẽ với ƣớc lƣợng xác suất
cho mỗi mẫu huấn luyện đến từ mỗi tập con của phân bổ và tham số cho mỗi tập
con phân bổ từ mẫu cho các xác suất này. Phƣơng pháp Naive Bayesian Classifier
của Good (1950) hay mô hình Hidden Markov Models của Baum(1997) ; Rabiner
(1989),..
1.3.6. Một số phương pháp khác
Trên đây là một số phƣơng học học máy đã và đang đƣợc ứng dụng hiệu quả
vào trong rất nhiều lĩnh vực khác nhau. Trong tài liệu này không đủ thời lƣợng để
chúng tôi trình bày hết tất cả các phƣơng pháp. Tuy nhiên có một phƣơng pháp mà
chúng tôi không thể không nhắc tới đó là phƣơng pháp học tăng cƣờng
(Reinforcement learning) của Barto et al.(1983) và Sutton (1984). Mục tiêu của
phƣơng pháp này là chọn ra một tiêu chí tốt nhất để đánh giá vì dụ nhƣ thời gian
tính toán hoặc độ chính xác,... các thuật toán phải kể đến Support Vector Machine

(SVM); Phƣơng pháp baagging; Phƣơng pháp Boosting,..
Thuật toán học Support Vector Machine (SVM) của Schölkopf (1997) và
Burgess(1998) là phƣơng pháp học giải quyết bài toán phân lớp và hồi quy dựa trên
lý thuyết học máy thống kê của Vapnik (1995). Mục tiêu của thuật toán SVM là tạo
ra bản đồ dữ liệu huấn luyện phi tuyến tính và cố gằng tạo ra một tách siêu phẳng
trên không gian biểu diễn dữ liệu huấn luyện. Khoảng cách lề giữa hai không gian
dữ liệu đƣợc tách đƣợc đặt tối đa để tối thiểu khoảng cách lề tới điểm dữ liệu bất kỳ
(hình 1.1.).

9


10
Hình 1.1. Phân lớp SVM
SVM sử dụng để thực hiện bài toán hồi quy cần phải xác định trƣớc độ chính
xác. Sau đó cố gằng tìm cách tách thành hai siêu phẳng từ không gian dữ liệu huấn
luyện có khoảng cách lề tƣơng ứng với độ chính xác cho trƣớc.
Bằng cách kết hợp quả từ các mô hình tƣơng tự để có đƣợc kết quả phân lớp
hoặc dự báo tốt hơn. Điều này chỉ có ở phƣơng pháp tổng hợp bagging hoặc
boostrap của Breiman (1994). Phƣơng pháp baagging tạo ngẫu nhiên có hoàn lại các
mẫu huấn luyện từ dữ liệu học để xây mô hình phân lớp hoặc dự báo. Kết quả phân
lớp hoặc dự báo đƣợc lấy theo phƣơng pháp biểu quyết hoặc trung bình cộng.
Thuật toán điển hình dựa trên phƣơng pháp này phải kể đến Radom forest của
Breiman (2001).
Phƣơng pháp Boosting là một phƣơng pháp cải thiện độ chính xác cho bất kỳ
thuật toán học máy nào và đƣợc biết đến với cái tên AdaBoost của Freund and
Schapire (1997). Thuật toán này xác định trọng số cho mỗi một dữ liệu huấn luyện
đƣợc thiết lập. Dữ liệu có trọng số càng cao thì càng ảnh hƣởng nhiều đến kết quả
học. Tại mỗi bƣớc thử thì véc tơ trọng số đƣợc điều chỉnh lại cho phù hợp với phân
lớp tƣơng ứng và trọng số cảu các mẫu sai đƣợc điều chỉnh tăng. Boosting có kết

quả phân lớp tốt hơn đối với dữ liệu có một lớp.
1.3.7. Một số vấn đề
Vấn đề phổ biến nhất trong học máy là làm thế nào để xác nhận rằng mô
hình sẽ thực hiện tốt trên dữ liệu đang làm việc và làm thế nào để đo đƣợc hiệu suất
của nó. Nhìn chung mỗi một phƣơng pháp học máy có su hƣớng phù hợp với một ví
dụ dữ liệu mẫu sử dụng để huấn luyện, dẫn đến mất khả năng khái quát hóa. Một dữ
liệu có thể rất hiệu quả cho mô hình này nhƣng kém hiệu quả với mô hình khác.
Các mô hình có su hƣớng tăng các tham số để phù hợp cho nhiều loại dữ liệu khác
nhau. Dẫn đến mô hình đơn giản thƣờng đƣợc chọn xử lý cho dữ liệu phức tạp.
Trên thực tế số lƣợng đầu vào tăng thì số véc tơ đầu vào tăng theo cấp số nhân.
Để đánh giá hiệu suất của mô hình học thƣờng chia dữ liệu thành hai tập dữ
liệu. Một tập sử dụng để huấn luyện mô hình và một tập dữ liệu dùng để đánh giá
hiệu suất của mô hình phân lớp và dự đoán. Và thƣờng sử dụng phƣơng pháp kiểm
tra chéo crossvalidation của Stone (1974) để đo đƣợc hiệu suất của việc đánh giá
mô hình học trên bộ dữ liệu kiểm tra. Phƣơng pháp kiểm tra chéo dữ liệu đƣợc chia
thành nhiều phần nhỏ và mô hình đƣợc thực hiện nhiều lần. Mỗi một lần sử dụng
10


11
một phần để kiểm tra các phần còn lại sử dụng huấn luyện. Kết quả cuối cùng là lấy
trung bình hiệu suất cho các lần thực hiện. Mô hình đƣợc giới hạn bởi số lần thực
hiện là k thì đƣợc gọi là k- cross-validation.
Phƣơng pháp đánh giá thƣờng đƣợc xây dựng tổng quát cho mô hình thƣờng
dựa trên bài toán ứng dụng. Trong phân lớp thƣờng sử dụng phƣơng pháp tỷ lệ lỗi
(error rate) hoặc phần của phân lớp lỗi. Tuy nhiêu điều này không cho chúng ta biết
nhiều về thông tin phân lớp. Một phân loại luôn luôn cùng một lớp sẽ có tỷ lệ lỗi
thấp nếu lớp này thực sự là một trong những lớp phổ biến nhất.

11



12

Chƣơng 2. PHƢƠNG PHÁP PHÂN LỚP DỮ LIỆU
Phân lớp là một trong những mối quan tâm nhiều nhất của con ngƣời trong
quá trình làm việc với một tập hợp đối tƣợng. Điều này giúp con ngƣòi có thể tiến
hành việc sắp xếp, tìm kiếm các đối tƣợng một cách thuận lợi. Khi biểu diễn đối
tƣợng vào các cơ sỏ dữ liệu, tính chất lớp vốn có của đối tƣợng trong thực tế thƣờng
đƣợc biểu diễn tƣơng ứng bằng một thuộc tính "lớp" riêng biệt. Chẳng hạn, trong hệ
thống thông tin quản lý dữ liệu thu nộp thuế, thuộc tính về tình trạng nộp thuế của
doanh nghiệp, hộ kinh doanh cá thể có miền giá trị dựa trên hạn nộp thuế và đƣợc
gán giá trị là "Đã nộp", "nộp chậm",”nợ thuế”, .... Trƣớc đây các công việc gán các
giá trị của thuộc tính lớp thƣờng đƣợc làm một cách thủ công. Nhƣng hiện nay, với
sự bung nổ của thông tin và các loại dữ liệu, việc gán giá trị cho thuộc tính lớp một
cách thủ công là rất khó khăn, có thể nói là không thể. Do vậy các phƣơng pháp
phân lớp tự động là rất cần thiết và là một trong những chủ đề chính trong khai phá
dữ liệu.
Các cơ sở dữ liệu thƣờng chứa rất nhiều các thông tin ẩn - các thông tin có
thể sử dụng phục vụ quá trình phân lớp. Các giải thuật phân lớp thƣờng phân tích
dữ liệu nhằm tìm ra các mô hình mô tả các lớp dữ liệu, từ đó có thể quyết định đƣợc
một phần tử dữ liệu mới là thuộc vào lớp nào?.
Việc tìm ra lớp của một phần tử dữ liệu mới trong nhiều trƣờng hợp có ý
nghĩa rất quan trọng, nó hỗ trợ quá trình ra quyết định thông minh thậm chí là
những quyết định mang tính sông còn. Ví dụ, trong ngân hàng, một nhân viên cho
vay vôn rất muốn có một hệ thông có khả năng phân tích các dữ liệu lịch sử để có
thể quyết định khách hàng thuộc lớp “an toàn” hay “mạo hiểm”, trên cơ sở đó sẽ có
các quyết định phù hợp. Một nhân viên tiếp thị trong một công ty bán hàng điện tử
thì rất muôn biết một khách hàng có khả năng mua máy tính hay không. Hay một
bác sỹ sẽ rất muôn có một hệ thông phân tích dữ liệu điều trị lịch sử của bệnh nhân

để chẩn đoán xem có những triệu chứng thuộc bệnh nào, trên cơ sở đó sẽ có các
phác đồ điều trị tƣơng ứng.
Bản chất của bài toán phân lớp là dự đoán các nhãn (hay lớp) của các phần tử
dữ liệu đầu vào thuộc hoặc không thuộc về một lớp. Thông thƣờng, các giải thuật
phân lớp thƣờng hoạt động thông qua 2 bƣớc. Bƣớc đầu tiên nó sẽ phân tích tập dữ
liệu đã gán nhãn để tìm ra mô hình phù hợp mô tả tập dữ liệu đó. Bƣớc này đƣợc
gọi là bước học (learning step) hay pha học (learning phase) và tập dữ liệu gán nhãn
12


13
phục vụ quá trình học này đƣợc gọi là dữ liệu huấn luyện (training data). Dữ liệu
huấn luyện là một tập các phần tử dữ liệu (data point) có gán nhãn, hay còn đƣợc
gọi là bản ghi (tuple) mô tả dữ liệu và nhãn (hay lớp) tƣơng ứng của bản ghi đó.
Trong tài liệu này khái niệm bản ghi và phần tử dữ liệu có cùng ý nghĩa với nhau,
tƣơng tự khái niệm nhãn và lớp cũng có cùng ý nghĩa. Ngoài ra còn có rất nhiều
thuật ngữ khác cũng đƣợc sử dụng rộng rãi có cùng ý nghĩa với khái niệm phần tử
dữ liệu nhƣ: mẫu (sample), ví dụ (example), thể hiện (instance) hay đôi tƣợng
(object). Một phần tử dữ liệu X thƣờng đƣợc biểu diễn bằng một vector n chiều
X =(x1, x2, ..., xn), trong đó mỗi phần tử trong vector x[i] chứa một giá trị biểu diễn
thuộc tính (attribute) A[i] của phần tử dữ liệu đó. Một thuật ngữ khác cùng ý nghĩa
với khái niệm thuộc tính là khái niệm đặc trưng (feature). Vì nhãn của các phần tử
dữ liệu đƣợc đi kèm với dữ liệu trong tập dữ liệu huấn luyện, nên bƣớc này còn
đƣợc gọi là học có giám sát (supervised learning). Hay nói một cách khác, các giải
thuật phân lớp là thuộc lớp giải thuật học có giám sát. Về bản chất trong bƣớc 1 này,
các giải thuật phân lớp học ra hàm y=f(X) để từ đó khi có một phần tử X mới nó sẽ
dự đoán ra nhãn y tƣơng ứng với nó. Theo khía cạnh này thì ta có thể thấy bƣớc 1 là
quá trình học ra một hàm hay một ánh xạ (mapping) nó có khả năng phân loại đƣợc
các lớp dữ liệu. Tùy vào các giải thuật khác nhau mà hàm f(X) này có thể có các
dạng khác nhau nhƣ ở dạng luật (rule), cây quyết định (dicision tree) hay các công

thức toán học, ...
Sau khi học đƣợc hàm phân lớp, các giải thuật có thể dùng để dự đoán các dữ
liệu mới. Tuy nhiên trƣớc khi đem giải thuật vào ứng dụng trong thực tế, các giải
thuật phải trải qua bƣớc thứ 2 là bƣớc kiểm tra hiệu năng của chúng. Để tránh hiện
tƣợng quá phù hợp (overfit), một tập dữ liệu khác gọi là tập dữ liệu kiểm thử
(testing set) sẽ đƣợc sử dụng để đo độ chính xác của giải thuật. Thông thƣờng tập
dữ liệu kiểm thử sẽ không chứa bất kỳ phần tử dữ liệu nào nằm trong tập dữ liệu
huấn luyện. Cũng giống tập dữ liệu huấn luyện, trong tập dữ liệu kiểm thử, từng
phần tử dữ liệu cũng có nhãn đi kèm. Các nhãn này đƣợc dùng để so sánh với nhãn
đƣợc các giải thuật phân lớp dự đoán. Tỷ lệ đoán đúng nhãn của các giải thuật phân
lớp đƣợc gọi là độ chính xác (accuracy) của giải thuật. Khi chất lƣợng phân lớp của
các giải thuật là chấp nhận đƣợc trong một miền dữ liệu cụ thể nào đó, ta có thể
dùng chúng để dự đoán lớp của các phần tử dữ liệu mới hoàn toàn chƣa biết trƣớc
(thuật ngữ tiếng Anh là “unkown data” hay “previously unseen data”).

13


14
Minh họa của quá trình phân lớp đƣợc thể hiện trên hình 2.1 mô tả quá trình
phân lớp của bài toán cho vay vôn trong ngân hàng. Trong đó hình 2.1 a) mô tả quá
trình học của giải thuật. Kết quả của quá trình học là hàm phân lớp đƣợc thể hiện
dƣới dạng các luật. Hình 2.1 b) mô tả quá trình kiểm thử cũng nhƣ quá trình dự
đoán dữ liệu mới. Hình 2.9 cũng minh họa mô hình chung của các giải thuật phần
lớp: từ tập dữ liệu huấn, các giải thuật sẽ học và tìm ra mô hình mô tả dữ liệu đầu
vào, kết quả của việc học là một mô hình. Mô hình này có thể đem ra dự đoán các
phần tử dữ liệu mới. Tuy nhiên ta cũng sẽ cần bƣớc thêm bƣớc kiểm thử trong quá
trình xây xựng một bộ phân lớp để đảm bảo chất lƣợng của nó phù hợp với miền
ứng dụng.
Vì có rất nhiều giải thuật phân lớp, nên phần tiếp theo của chƣơng này chúng

ta sẽ chỉ tìm hiểu một số thuật toán phân lớp thông dụng.
2.1. Phân lớp bằng cây quyết định
J. Ross Quinlan là ngƣời phát triển giải thuật cây quyết định có tên là ID3
(viết tắt từ cụm từ “Iterative Dichotomiser”), sau đó cũng chính tác giả này đề xuất
giải thuật phân lớp C4.5 (một hậu duệ của thuật toán ID3). Giải thuật C4.5 này đã
đƣợc dùng làm cơ sở để so sánh với các thuật toán phân lớp mới. Cũng trong
khoảng thơi gian này thì một nhóm các nhà thông kê gồm L. Breiman, J. Friedman,
R. Olshen và C. Stone đã xuất bản cuôn sách “Classification and Regression Trees
(CART)” mô tả phƣơng pháp tạo cây quyết định nhị phân. Giải thuật ID3 và CART
đã trỏ thành các hòn đá tảng và nó mỏ đầu cho hàng loạt các giải thuật dựa trên học
quy nạp cây quyết định (decision tree induction). Giải thuật học dựa trên cây quyết
định hoạt động trên tập dữ liệu đƣợc biểu diễn bằng cách giá trị rơi rạc, trong
trƣờng hợp dữ liệu đƣợc biểu diễn bằng các thuộc tính có giá trị liên thì cần thực
hiện bƣớc rơi rạc hóa. Các giải thuật ID3, CART và C4.5 đều áp dụng cách tiếp cận
ăn tham (greedy) (một thuật toán không quay lui (non-backtracking)) để xây dựng
cây theo hƣớng từ trên xuống. Tập dữ liệu huấn luyện sẽ đƣợc chia thành các tập
con nhỏ hơn trong quá trình xây dựng cây theo cơ chế chia để trị (devide-and conquer). Dƣới đây là mô tả thuật toán thuật toán xây dựng cây cơ bản chung của
các giải thuật này.

14


15

Hình 2.1. Mô hình phân lớp

Thuật toán xây dƣng cây quyết đinh.
Đầu vào : Tập D chứa dữ liệu huấn luyện
attribute_list chứa danh sách các thuộc tính ứng cử.
Đầu ra : cây quyết định

Generate_decision_tree (D, attribute_list)
1. Tạo một nút gốc N cho cây quyết định.
2. If toàn bộ dữ liệu trong D đều thuộc lớp C, return nút N là nút lá
có nhãn C.
3. If attribute_list là rỗng, return nút N với nhãn là lớp xuất hiện
nhiều nhất trong D.
4. splitting_attribute = attribute _selection_method(D,
attribute_list) tìm thuộc tính phân chia tốt nhất.
5. Gán cho nút N nhãn là splitting_attribute.
6. attribute_list  attribute_list \ {splitting_attribute} (loại bỏ
thuộc tính splitting_attribute khỏi attribute_list).
7. For each giá trị j của thuộc tính splitting_attribute
7.1. Gọi Dj là tập chứa các phần tử dữ liệu mà thuộc tính
splitting_attribute có giá j
7.2.

If Dj là rỗng thì thêm một nút lá Nj cho nút N có nhãn là

15


16

7.3.

nhãn phổ biến nhất xuất hiện trong D
Else gắn cây trả về bỏi Generate_decision_tree (Dj,
attribute_list) vào nút N

return N

Trong đó, attribute_list là tập các thuộc tính mô tả tập dữ liệu huấn luyện D;
attribute_selection_method là hàm lựa chọn thuộc tính tốt nhất để phân chia
dữ liệu, bản chất nó là giải thuật dựa trên kinh nghiệm (heuristic) để tìm ra thuộc
tính nào có khả năng phân biệt đƣợc các phần tử dữ liệu trong tập D vào các lớp
nhất. Nó dựa trên một độ đo nào đó chằng hạn đệ lợi thông tin (information gain),
hay độ đo chỉ số gini (Gini index) để tìm ra thuộc tính tốt nhất.
Giải thuật bắt đầu bằng thao tác tạo ra một nút N mô tả tập dữ liệu D (bƣớc
1). Nếu toàn bộ dữ liệu trong D cùng có chung một nhãn lớp thì N sẽ là một nút lá
có nhãn là nhãn chung của các phần tử dữ liệu, và thuật toán dừng. Nếu không thì
nó sẽ gọi hàm attribute_selection_method() để tìm ra thuộc tính tốt nhất dùng để
phân chia tập dữ liệu D thành các phần Dj, và nút N sẽ đƣợc gán nhãn là thuộc tính
tìm đƣợc. Giải thuật đệ quy với các tập con dữ liệu Dj. Hình 2.2 minh họa cây quyết
định đƣợc tạo ra bởi giải thuật trên tập dữ liệu bán hàng (trong bảng 2.1) để tìm ra
những loại khách hàng nào có khả năng mua máy tính (buys_computer) (Yes là có
mua và No là không mua). Độ phức tạp của thuật toán là 0(n*|D|* log(| D |)), trong
đó n là số thuộc tính mô tả tập dữ liệu D, | D | là số lƣợng các phần tử trong D.
Bảng 2.1 Bảng dữ liêu khách hàng
ID
1
2
3
4
5
6
7
8
9

Tuổi
youth

youth
middle_aged
senior
senior
senior
middle_aged
youth
youth

Thu nhập

Sinh viên

high
high
high
medium
low
low
low
medium
low

no
no
no
no
yes
yes
yes

no
yes
16

Đánh giá

Mua

tín dụng

máy tính
no
no
yes
yes
yes
no
yes
no
yes

fair
excellent
fair
fair
fair
excellent
excellent
fair
fair



17
10
11
12
13
14

senior
youth
middle_aged
middle_aged
senior

medium
medium
medium
high
medium

yes
yes
no
yes
no

fair
excellent
excellent

fair
excellent

yes
yes
yes
yes
no

Trong trƣờng hợp giá trị của một thuộc tính nào đó không phải là giá trị rời
rạc (chẳng hạn nhƣ thuộc tính tuổi), khi đó một phƣơng pháp rơi rạc hóa đã đƣợc áp
dụng (xem bảng 2.1). Cụ thể nó đã đƣợc chia thành 3 loại tuổi rơi rạc: trẻ (youth),
trung niên (middle_age) và già (senior).
Điểm mấu chốt trong giải thuật xây dựng cây quyết định ở trên là hàm lựa
chọn thuộc tính tốt nhất để phân chia dữ liệu. Phần tiếp theo sẽ trình bày một số độ
đo dùng để đánh giá “chất lƣợng” của các thuộc tính.

Hình 2.2. Biểu diễn cây quyết định
2.1.1. Độ lợi thông tin
Độ lợi thông tin (information gain) là độ đo đƣợc sử dụng trong giải thuật
ID3. Đầu tiên là công thức đo lƣợng thông tin kỳ vọng để phân lớp một phần tử
trong tập dữ liệu D đƣợc đo bằng công thức sau:
m

Info  D    p log 2 ( pi )
i 1

(2.1)

i


Trong đó pi là xác suất một phần tử dữ liệu D thuộc lớp Ci và nó đƣợc ƣớc
lƣợng bằng công thức pi 

| Di |
với Di là tập các phần tử dữ liệu D thuộc lớp Ci ; m
|D|

là số lƣợng các lớp trong D. Hàm logarit cơ số hai đƣợc sử dụng là do công thức
trên đo lƣợng thông tin theo đơn vị bit (lý thuyết thông tin C.Shannon). Hàm Info(D)
còn đƣợc gọi là Entropy của D.
17


18
Bây giờ giả sử ta phân chia dữ liệu trong D theo thuộc tính A nào đó, và giả
sử thuộc tính này có v giá trị (ròi rạc) khác nhau là a1 , a2 ,.., av  . Thuộc tính này
chia tập dữ liệu D thành v tập con D1 , D2 ,.., Dv  trong đó Dj là tập các phần tử dữ
liệu có giá trị của thuộc tính A là ai. Tập con này sẽ tƣơng ứng với một nhánh cây
đƣợc phát triển từ nút N trong giải thuật tạo cây quyết định. Trƣòng hợp lý tƣởng thì
ta muốn tập con này sẽ có khả năng phân lớp chính xác các phần tử trong nó, hay
nói một cách khác ta muốn tập con này càng đồng nhất (pure) càng tốt, đồng nhất ở
đây có thể hiểu là các phần tử trong tập con này đều cùng thuộc về một lớp. Tuy
nhiên trong thực tế thì các tập này thƣờng không đồng nhất (impure) vì nó chứa các
phần tử dữ liệu thuộc về các lớp khác nhau, do đó chúng ta cần thêm thông tin để
phân lớp chính xác tập con này. Lƣợng thông tin này đƣợc đo bởi:
v

| Dj |


j 1

|D|

InfoA  D   

Trong đó,

 Info  D j 

(2.2)

| Di |
đƣợc coi là trọng số của tập Di , giá trị infoA  D  là lƣợng
|D|

thông tin kỳ vọng để phân lớp một phần tử dữ liệu trong D dựa trên việc phân chia
dữ liệu bằng thuộc tính A. Giá trị này càng nhỏ thì sự đồng nhất giữa các tập con
càng cao. Cuối cùng hàm đo độ lợi thông tin đƣợc tính bằng công thức:

Gain( A)  Info( D)  InfoA ( D)

(2.3)

Giá trị Gain(A) cho chúng ta biết ta đƣợc lợi bao nhiêu nếu chia dữ liệu theo
thuộc tính A. Giá trị này càng lớn càng tốt. Do đó thuộc tính nào có giá trị Gain(.)
lớn nhất thì sẽ đƣợc chọn để phân nhánh trong cây quyết định.
Để minh họa cho độ đo này ta tính toán một thuộc tính trên tập dữ liệu ở
bảng 2.1. Trong bảng này trƣờng cuối cùng là nhãn của dữ liệu (Mua máy tính ), nó
có hai giá trị, do đó số lớp ở đây là 2. Có 9 phần tử dữ liệu có nhãn yes và 5 phần tử

dữ liệu có nhãn no, do đó theo công thức 2.1 ta có:

9
9
5
5
log 2 ( )  log 2 ( )  0.94(bits)
14
14 14
14
Tiếp theo đến công thức 2.2 ta tính giá trị của hàm cho thuộc tính tuổi (age):
Info( D)  

18


19
Infoage ( D) 

5  2
2 3
3
   log 2  log 2 
14  5
5 5
5
4  4
4 0
   log 2  log 2
14  4

4 4

0

4

5  3
3 2
   log 2  log 2
14  5
5 5
 0.694 bits

2

5




Tiếp đến theo công thức 2.3 ta có độ lợi thông tin theo thuộc tính tuổi
sẽ là:
Gain(age) = Info(D) - Infoage (D)
= 0.940 - 0.694 = 0.246 bits
Tƣơng tự ta có thể tính đƣợc giá trị độ lợi thông tin cho các thuộc tính
thu nhập (income), sinh viên (student) và đánh giá tín dụng (credit_rating)
Gain(income) = 0.029 bits, Gain(student) = 0.151 bits và Gain(credit_rating)
= 0.048 bits . Từ kết quả này chúng ta thấy thuộc tính tuổi sẽ đƣợc chọn để
phân chia dữ liệu. Lặp lại quá trình xây dựng cây tƣơng ứng với các tập con
dữ liệu (đã bỏ đi thuộc tính tuổi) ta sẽ thu đƣợc cây quyết định nhƣ hình 2.2.

2.1.2. Tỉ số độ lợi
Độ đo độ lợi thông tin hoạt động không tốt trong trƣơng hợp một thuộc tính
có nhiều giá trị. Ví dụ, thuộc tính mã sản phẩm (product_ID), hay mã giao dịch sẽ
có rất nhiều giá trị. Đặc biệt nữa, khi chia dữ liệu theo thuộc tính này thì mỗi một
tập con dữ liệu sẽ chỉ có tƣơng ứng một bản ghi, do đó các tập con này là hoàn toàn
đồng nhất. Hay nói một cách khác, lƣợng thông tin cần để phân lớp tập dữ liệu D
dựa trên cách phân chia dữ liệu trên thuộc tính này Info product _ ID ( D)  0 . Và giá trị
độ

lợi

thông

tin

sẽ

đạt

giá

trị

tối

đa:

Gain( Product _ ID)  Info( D)  Infoproduct _ ID ( D)  Info( D) . Nhƣng rõ ràng là việc
phân lớp dựa trên thuộc tính này là vô nghĩa.
Do đó, trong giải thuật C4.5 (hậu duệ của giải thuật ID3) tác giả đã đề xuất

sử dụng một độ đo mới gọi là tỉ số độ lợi thông tin (gain ratio) để cố tránh nhƣợc
điểm trên. Hàm này sử dụng một phƣơng pháp chuẩn hóa độ lợi thông tin bằng cách
sử dụng giá trị phân chia thông tin (split information) đƣợc định nghĩa tƣơng tự nhƣ
hàm Info(D) nhƣ sau:

19


×