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
Trang 1VIỆ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
Trang 2MỤ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
Trang 32.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
Trang 4DANH 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
Trang 5DANH 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ự đố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 Nạ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
Trang 6Hì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
Trang 7MỞ ĐẦ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ế
Trang 8Chươ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
Trang 91.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
N1
, 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 , 1
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
Trang 10đó, 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, …
Trang 111.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
Trang 121.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
Trang 137quả 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à Self-Organizing 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
Trang 148nà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
Trang 159lá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.)
Trang 16Hì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
Trang 1711mộ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
Trang 1812
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á
để 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
Trang 19phụ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”)
Trang 2014Minh 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ị (devideand 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
Trang 21Hì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á
7 For each giá trị j của thuộc tính splitting_attribute
7.1 Gọi D j 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à
Trang 22có 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 D j, 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
tín dụng
Mua máy tính
Trang 23Trong 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:
1log ( )
D p D
với D i là tập các phần tử dữ liệu D thuộc lớp C i ; m
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
Trang 24Bâ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à a a1, 2, ,a v Thuộc tính này
chia tập dữ liệu D thành v tập conD D1, 2, ,D v trong đó D j là tập các phần tử dữ liệu có giá trị của thuộc tính A là a i 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:
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:
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ó:
Trang 25Tươ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 Infoproduct_ID( )D 0 Và giá trị
_
Gain Product ID Info D Info 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:
Trang 26SplitInfo income
2 1
Giá trị này biểu diễn thông tin tiềm năng được sinh ra thông qua việc chia tập
dữ liệu huấn luyện D thành v tập con tương ứng với các giá trị của thuộc tính A Chú ý rằng với mỗi giá trị của thuộc tính j, nó tính toán số lượng các phần tử có giá trị thuộc tính A là j trên tổng số lượng phần tử của D Đây là điểm khác so với độ lợi
thông tin, do đó công thức tính tỉ số độ lợi sẽ là:
Gain A
GainRatio A
SplitInfo A
Trong đó hàm SplitInfo D được viết ngắn gọn thành SplitInfo(A) Dựa trên A( )
độ đo này, các thuộc tính có giá trị tỉ số độ lợi cao sẽ được chọn làm thuộc tính phân
chia dữ liệu Có một chú ý rằng, nếu hàm SplitInfo(A)=0 thì công thức trên không
dùng được, do đó có thêm ràng buộc để tránh trường hợp này Cụ thể giá trị độ lợi thông tin của thuộc tính được chọn phải đủ lớn, ít nhất là lớn hơn giá trị trung bình
độ lợi thông tin của tất cả các thuộc tính
Trở lại bảng dữ liệu 2.1, ta tính tỉ số độ lợi cho thuộc tính thu nhập (income)
Đầu tiên ta sử dụng công thức 2.4 để tính SplitInfo income( )D
Gain income GainRatio income
( ) 1
m i i
Trang 27thành 2 nửa Để đơn giản, ta xét trường hợp thuộc tính A có v giá trị khác nhau
{a a1, 2 a v xuất hiện trong D Để xác định cách phân chia tốt nhất ta xét toàn bộ các tập con của D phân chia theo các giá trị của A Do đó nếu A có v giá trị khác
nhau thì ta sẽ có 2v tập con của D Ví dụ thuộc tính thu nhập (income) có 3 giá trị {low, medium, high} thì các tập con có thể sẽ là {low, medium, high), {low, medium}, {medium, high), {low, high), {low}, {medium}, {high} và tập rỗng {} Chúng ta không xét 2 tập con {low, medium, high} và {} vì nó không chia dữ liệu ra 2 tập, do
đó ta có tổng số 2 v
-2 cách để chia tập dữ liệu D thành 2 tập con dựa trên thuộc tính
A Khi chia tập dữ liệu D thành 2 nửa D và D1 2 chúng ta xem xét độ không đồng
nhất (impurity) của dữ liệu trong 2 nửa này:
D XD x split po và D2 XD x| A split_ point trong đó v là A giá trị của thuộc tính A Khi đó ta định nghĩa độ giảm của độ bất đồng nhất của dữ liệu khi chia dữ liệu thành 2 tập con theo thuộc tính A:
độ đo trước, ta cần kết hợp cách phân chia hay giá trị điểm phân chia (split point)
với thuộc tính để dùng làm điều kiện phân nhánh cây quyết định
Quay lại cơ sỏ dữ liệu khách hàng ỏ bảng 2.1, ta có 9 phần tử dữ liệu thuộc vào lớp C yes và 5 phần tử dữ liệu thuộc vào lớp C no do đó chỉ
số Gini(D) đo độ bất đồng nhất trong D là:
Trang 28Tiếp theo, ta xét thuộc tính thu nhập (income), bắt đầu bằng cách phân chia {low, medium} và {high} Với cách phân chia này thì ta có tập D chứa 10 phần tử 1
dữ liệu có thuộc tính income có giá trị nằm trong tập {low, medium} và tập D chứa 2
4 phần tử có giá trị income=high Khi đó chỉ số Gini sẽ được tính toán là:
income low medium
Gini D Gini D Gini D
0.45 Gini incomehigh D
Tương tự, giá trị Gini cho cách chia {medium, high} và {low} là 0.3; giá trị
Gini cho cách chia {low, high} và {medium} là 0.315 Do đó cách chia {medium, high} và {low} sẽ được chọn làm điều kiện để phân nhánh cây quyết định vì nó cho
ta giá trị Gini nhỏ nhất Với thuộc tính tuổi (age) thì cách phân chia {youth, senior}
và {middle_age} cho giá trị tốt nhất là 0.375 Với thuộc tính student và credit_rating đều là giá trị nhị phân nên chúng ta chỉ có một cách chia duy nhất, giá trị Gini của 2 thuộc tính này lần lượt là 0.367 và 0.429 Qua kết quả này ta thấy thuộc tính income cho giá trị Gini nhỏ nhất do đó nó sẽ được chọn để làm điều kiện
phân nhánh cây quyết định, khác với 2 độ đo ở trên chọn thuộc tính tuổi làm điều kiện phân nhánh đầu tiên Một điều chú ý là với độ đo này thì ta không chỉ quan tâm đến thuộc tính dùng để phân chia tập dữ liệu mà còn quan tâm đến cách chia dữ liệu theo thuộc tính đó
Ngoài các độ đo này còn có nhiều độ đo khác, tuy nhiên trong khuôn khổ tài liệu trình này sẽ không được trình bày hết
Cây quyết định là một trong những ứng dụng phổ biến và khả dụng đối với người dùng Do vậy, nó đã có sẵn ở rất nhiều phần mền ngôn ngữ như Visual studio, mathlap, R và phần mềm phân tích ứng dụng như SPSS, SAS,.LATTLE, v.v Ví dụ 2.1 sau đây được chúng tôi minh họa trên ngôn ngữ R cho dữ liệu IRIS trong trong bảng 2.2
Trang 29Bảng 2.2 Dữ liệu Fisher's Iris Data
STT Sepal.length Sepal.Width Petal.length Petal.width Species
Ví dụ 2.1 Xây dựng cây quyết định với dữ liệu IRIS
> ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.7, 0.3))
3) Petal.Width <= 1.7; criterion = 1, statistic = 45.041
4) Petal.Length <= 4.4; criterion = 0.997, statistic = 11.262 5)* weights = 21
4) Petal.Length > 4.4
Trang 30Hình 2.3 Mô tả cây quyết định với dữ liệu IRIS
Kết quả hình 2.3(a) cho biết mỗi một nút lá thể hiện xác suất có thể rời vào một trong 3 lớp Hình 2.3 (b) cho biết giá trị của biến y trên nút lá Ví dụ nhƣ nút 2 n=34, y=(1,0,0) có nghĩa là tất cả 34 đối tƣợng thuộc về lớp “setosa” Sau khi xây dựng cây, chúng ta cần kiểm tra với dữ liệu thử nghiệm
> testPred <- predict(DTModel, newdata = testData)
Trang 31là dữ liệu nhiễu Hiện tượng trên cũng gây ra hệ quả là xảy ra hiện tượng cây thu
được quá phù hợp dữ liệu (overfitting) Để giải quyết vấn đề này phương pháp tỉa cây (tree pruning) được Han [6] đề xuất Phương pháp tỉa cây về bản chất là loại bỏ
cách nhánh ít tin cậy nhất, do đó ta không những thu được cây có khả năng phân lớp tốt hơn mà còn làm cho cây cô đọng hơn và tốc độ xử lý sẽ nhanh hơn Phương
pháp tỉa cây được chia thành 2 loại: tỉa trước (prepruning) cây và tỉa sau (postpruning) Trong phương pháp tỉa trước, cây sẽ được tỉa ngay trong giai đoạn
xây dựng cây, nó sẽ tương ứng với các điều kiện để dừng phát triển một nhánh nào
đó Còn phương pháp tỉa sau lại xử lý cây sau khi nó đã được xây dựng hoàn chỉnh
Cây được xây dựng trong hình 2.3 Thực hiện cắt tỉa cây để loại bỏ nhánh có
độ tin cây thấp hình 2.5
> library(rpart)
> fit <- rpart(Kyphosis ~ Age +
Number + Start, method="class",
> # plot the pruned tree
> plot(pfit, uniform=TRUE,main="Pruned Classification Tree for Kyphosis ")
> text(pfit, use.n=TRUE, all=TRUE, cex=.8)
Trang 32(a)
(b)
Hình 2.5 (a) Cây trước cắt tia; (b) Cây sau cắt tỉa
2.2 Cây phân lớp và cây hồi quy
Cây phân lớp và cây hồi quy (Classification and Regression - CART) của Breiman (1984) thuộc họ cây nhị phân Thuật toán CART được Breiman đề xuất dựa trên ý tưởng lặp lại các phép tách nhị phân tập các đối tượng, cụ thể tại mỗi nút cha được tách thành hai nút con Mỗi lần tách nút sử dụng một biến biến dự đoán (biến độc lập) và một giá trị điểm cắt tương ứng (cat-point) được dùng phân vùng hai nút con (tiêu chí lựa chọn theo số động)
Nếu biến dự đoán x jlà kiểu số (liên tục), điểm cắt là vị trí điểm giữa hai giá trị của biến dự báo Sau đó phân chia thành hai tập con, tùy thuộc vào giá trị của x j
là dưới hay trên điểm cắt Ví dụ, giả sử trong một nút S có 5 quan sát, giá trị của x j
là -1.0, 1.0, 1.0, 2.8 và 3.6 Sau đó, tính được các điểm giữa là 0, 1,9 và 3.2 Vì vậy phép chia nhị phân x thực hiện tại 3 vị trí là “ nếu j x j 0 hoặc không, nếu x j 1.9hoặc không , x j 3.2 hoặc ngược lại ”
Nếu biến dự báo x jlà rời rạc Giả sử biến dự báo x j có G mức rời rạc trong nút S, ta sẽ có 1
2G 1vị trí chia nhị phân Nếu S có 3 giá trị rời rạc là red, greed, và greed, thực hiện chia nút S theo 3 cách
Trang 332.2.1 Phát triển cây CART
Cây trong CART được phát triển bởi phương pháp Measuring Node
Heterogeneity, với ý tưởng là tách nút con càng đồng nhất cầng tốt Do vậy phương
pháp CART là phương pháp tham lam Các hàm xác định độ hỗn loạn là một hàm
lõm, vì vậy mà hàm xác định giá trị độ hỗn loạn luôn giảm sau khi chia
(Coppersmith et al.1999) Ký hiệu nút cha là S và nút con trái L, con phải R Với hồi quy, tổng bình phương lỗi (SSE) được sử dụng để đo độ hỗn loạn của nút S,
với ylà trung bình giá trị phản hồi của nút S Sau đó độ hỗn loạn của nút S
sẽ giảm sau khi tách thành hai nút con L và nút con R
Với cây hồi quy thì hàm Gini index hoặc Entropy được sử dụng để tính độ hỗn loạn của nút S Giả sử có G giá trị rời rạc trong dữ liệu Với S( )g được xác định là tỷ lệ phân bổ của quan sát từ giá trị rời rạc thứ G trong nút S và ns là số các trường hợp trong nút S Giá trị Gini index được xác định như sau:
con trái (L) là nút có độ giảm ( , , ) S L R lớn nhất tại (2.10) Quá trình được lặp lại cho tới khi cây lớn nhất được tạo ra và không còn nút con nào có thể tách được
2.2.2 Dự đoán bởi cây CART
Một cây được phát triển, chúng ta cần gán một giá trị dự đoán cho mỗi nút
Giả sử nút Node[k] có nk quan sát C 1 , C 2 , ,C nk với C i =(x i ,y i ), sau đó dự đoán cho nút là trung bình trọng số của tất cả các giá trị phản hồi trong nút y 1 ,y 2 , , y nk là:
Trang 341 1
1
k k
n
i i
i i i
w n
nhất của tất cả các trường hợp huấn luyện trong nút Node k
2.2.3 Cắt tỉa cây CART
Thông thường các cây lớn nhất Tmax, không thực hiện tách nút, điều này dự đoán xấu cho tập dữ liệu kiểm tra mới, bời vì các biến dự báo tăng kích thước của cây vượt quá cây tối ưu, theo đó cắt tỉa cây để tránh hiện tượng overfiting Đối với
một cây T với K nút, cho R(T) ký hiệu tổng lỗi huấn luyện trên cây, cho là tham
số độ phức tạp, trong đó kích thước cây do tách nút Xác định phương pháp complexity bằng T như là:
Trang 35lồng nhau là dễ dàng thực hiện cắt tỉa Thay vì kiểm tra tất cả các cây con của T max, chúng ta chỉ cần tìm đến các chuỗi cây con lồng nhau
Mục tiêu của cắt tỉa là lựa chọn các cây từT j(j) | j1, 2, có lỗi dự báo
out-of-sample nhỏ nhất cho tập dữ liệu Cross-validation là một phương pháp thực hiện mục tiêu này Cho V-fold Cross-validation, dữ liệu mẫu được tách ngẫu nhiên thành V tập con Đặt subset vV là tập con thứ v Đặt sample vmẫu huấn luyện bằng cách tổng hợp tất cả các tập con trừ tập con subset v Trong V-fold Cross-validation, cây lớn nhất bằng cách phát triển mẫu huấn luyện V, sample sample1, 1, sample V Đặt T max v, là cây được tạo ra từ mẫu sample v v, 1, 2, V Từ T max v, chúng ta có thể tìm được chuỗi các cây lồng nhau T j(j) | j1, 2, , và tập con subset v như là một mẫu kiểm thử cho mỗi cây T j v, (j) Dự đoán lỗi R C V, ( ) cho tất cả các cây tối thiểu
V có thể được tính toán như là một hàm theo tham số Tham số độ phức tạp tối
ưu C V, tương ứng với kích thước của cây tạo ra R C V, ( ) thấp nhất
Ví dụ Xây dựng cây phân bằng phương pháp CART cho biết khả năng sống
còn (survived) của 1309 hành khách trên tầu Tiatalic, được mô tả trong bảng dữ liệu 2.3 Mỗi khách hàng gồm có các thuộc tính như phân loại hành khách(pclass); sống sót hoặc chết (survived); độ tuổi (age); giới tính (sex); số vợ chồng, anh chị em trên tàu (sibsp); số cha mẹ hoặc con cái trên tàu (parch)
Trang 36và chọn kích thước cây có tỷ lệ phân lớp sai tối tiểu (ví dụ lỗi dự báo) Tỷ lệ lỗi dự
báo trong (Prediction error rate in training data = Root node error * rel error * 100%) và tỷ lỗi dự báo trong kiểm tra chéo (Prediction error rate in cross- validation = Root node error * xerror * 100%) Do vậy, chúng ta muốn có giá trị cp
của cây là tối thiểu (cp=0.0001) các xstd
> library(rpart)
> library(rpart.plot)
> data(ptitanic)
> str(ptitanic)
'data.frame': 1309 obs of 6 variables:
$ pclass : Factor w/ 3 levels "1st","2nd","3rd": 1 1 1 1 1 1 1 1 1 1 $ survived: Factor w/ 2 levels "died","survived": 2 2 1 1 1 2 2 1 2 1 $ sex : Factor w/ 2 levels "female","male": 1 2 1 2 1 2 1 2 1 2 $ age :Class 'labelled' atomic [1:1309] 29 0.917 2 30 25
$ sibsp :Class 'labelled' atomic [1:1309] 0 1 1 1 1 0 1 0 2 0 $ parch :Class 'labelled' atomic [1:1309] 0 2 2 2 2 0 0 0 0 0 > set.seed(123)
> tree <- rpart(survived ~ , data = ptitanic, control =
Variables actually used in tree construction:
[1] age parch pclass sex sibsp
Root node error: 500/1309 = 0.38197
Trang 37đó, tối ưu cây bằng phương pháp cắt tỉa và xem độ chính xác bằng ma trận nhầm lẫn,
và biểu diễn cây sau cắt tỉa bằng hình 2.6.b
prp(tree,faclen=0,cex=0.8,extra=1
,col=c(2:6))
prp(ptree, faclen = 0, cex = 0.8, extra = 1,col=c(2:6))
Trang 38Hình 2.6 Cây CART với dữ liệu Titalic
Nút có nhãn “died – 660/136” có nghĩa là 660 đã chết và 136 người con
sống sót như dự đoán là đã chết Thay vì biểu diễn nhãn trên nút “died 660/136 hoặc died 660 136” chúng ta, có thể biểu diễn lại nhãn của cây là tổng số mẫu trên nút bở hàm tot_count(.) hình 2.6.c
> tot_count <- function(x, labs, digits, varlen)
+ {
+ paste(labs, "\n\nn =", x$frame$n)
+ }
> prp(ptree, faclen = 0, cex = 0.8, node.fun=tot_count,col=c(2:6))
Và đôi khi quá lớn, có thể các nút được sắp xếp lộn sộn và rất khó đọc, chúng ta có thể giới hạn số nút và mầu sắt cho nhóm của biến phụ thuộc hình 2.6.d
> only_count <- function(x, labs, digits, varlen)
> legend("bottomleft", legend = c("died","survived"), fill= c("pink",
"palegreen3"), title = "Group")
Trang 39(c)Biểu diễn cây với tổng mẫu ngoài nút (d) Biểu diễn cây với tổng mẫu trong nút
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
2.3 Thuật toán phân lớp Naive Bayes
Bộ phân lớp Bayes là một thuộc lớp giải thuật phân lớp thống kê, nó có thể
dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu Phân lớp Bayes được dựa trên định lý Bayes (định lý được đặt theo tên tác giả của nó là Thomas Bayes)
Giả sử tập dữ liệu khách hàng của chúng ta được mô tả bỏi các thuộc tính
tuổi và thu nhập, và một khách hàng X có tổi là 35 và thu nhập là $40000 Giả sử H
là giả thiết khách hàng đó sẽ mua máy tính, thì P(H|X) phản ánh xác suất ngươi dùng X sẽ mua máy tính với điều kiện ta biết tuổi và thu nhập của ngươi đó
Ngược lại P(H) là xác suất tiền nghiệm (prior probability hay priori probability) của H Trong ví dụ trên, nó là xác suất một khách hàng sẽ mua máy
tính mà không cần biết các thông tin về tuổi hay thu nhập của họ Hay nói cách khác,
Trang 40xác suất này không phụ thuộc vào X Tương tự, P(X | H) là xác suất của X với điều kiện H, nó là một xác suất hậu nghiệm Ví dụ, nó là xác suất ngươi dùng X (có tuổi
là 35 và thu nhập là $40000) sẽ mua máy tính với điều kiện ta đã biết là ngươi dùng
đó sẽ mua máy tính Cuối cùng P(X) là xác suất tiền nghiệm của X Trong ví dụ trên,
nó sẽ là xác suất một người trong tập dữ liệu sẽ có tuổi 34 và thu nhập $40000 Các xác suất này sẽ được tính dựa vào định lý Bayes như sau:
| P X H P H |
P H X
P X
2.3.2 Phân lớp Naive Bayes
Bộ phân lớp Naive Bayes hay bộ phân lớp Bayes đơn giản (simple Bayes classifier) hoạt động như sau:
1) Gọi D là tập dữ liệu huấn luyện, trong đó mỗi phần tử dữ liệu X được biểu diễn bằng một vector chứa n giá trị thuộc tính:
A A1, 2, A X n, x x1, 2, x n
2) Giả sử có m lớp C 1 , C 2 , , C m ; Cho một phần tử dữ liệu X, bộ phân lớp sẽ gán nhãn cho X là lớp có xác suất hậu nghiệm lớn nhất Cụ thể, bộ phân lớp Bayes sẽ dự đoán X thuộc vào lớp C i nếu và chỉ nếu:
3) Để tìm giá trị xác suất lớn nhất, ta nhận thấy trong công thức 2.10 thì giá
trị P(X) là giống nhau với mọi lớp nên ta không cần tính Do đó ta chỉ cần