1. Trang chủ
  2. » Thể loại khác

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

121 23 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 121
Dung lượng 2,35 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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ự đố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 6

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

Trang 7

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ế

Trang 8

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

Trang 9

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

 

 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 11

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

Trang 12

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

Trang 13

7quả 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 14

8nà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 15

9lá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 16

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

Trang 17

11mộ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 18

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á

để 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 19

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”)

Trang 20

14Minh 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 21

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á

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 22

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 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 23

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:

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 24

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à 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 25

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 Infoproduct_ID( )D 0 Và giá trị

_

Gain Product IDInfo DInfo DInfo 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 26

SplitInfo 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 27

thà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:

DXD xsplit poD2 XD x| Asplit_ 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 28

Tiế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

GiniD  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 29

Bả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 30

Hì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 31

là 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 33

2.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 34

1 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 35

lồ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) | j1, 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) | j1, 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 36

và 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 38

Hì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 40

xá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

Ngày đăng: 06/07/2020, 23:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w