ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

SENGTHONG XAYAVONG

PHÂN LỚP DỮ LIỆU HOA IRIS SỬ DỤNG THUẬT TOÁN

NAIVE BAYES, RANDOMFOREST VÀ KNN

(K - NEAREST NEIGHBORS)

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Thái Nguyên – 2020

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

SENGTHONG XAYAVONG

PHÂN LỚP DỮ LIỆU HOA IRIS SỬ DỤNG THUẬT TOÁN

NAIVE BAYES, RANDOMFOREST VÀ KNN

(K - NEAREST NEIGHBORS)

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 84 8 01 01

Người hướng dẫn khoa học: TS. Nguyễn Văn Núi

Thái Nguyên – 2020

I

LỜI CAM ĐOAN

Họ và tên học viên: Sengthong Xayavong

Lớp cao học: CK17A Trường Đại học Công nghệ thông tin và Truyền thông – Đại học Thái Nguyên.

Chuyên ngành: Khoa học máy tính

Tên đề tài luận văn: PHÂN LỚP DỮ LIỆU HOA IRIS SỬ DỤNG THUẬT TOÁN NAIVE BAYES, RANDOMFOREST VÀ KNN (K - NEAREST NEIGHBORS).

Học viên xin cam đoan đây là công trình nghiên cứu của bản than học viện.

Các kết quả nghiên cứu và các kết luận trong luận văn là trung thực, không sao chép

từ bất kỳ một nguồn nào và dưới bất kỳ hình thức nào. Trong quá trình làm học viên

có tham khảo các tài liệu liên quan nhằm khẳng định thêm sự tin cậy và cấp thiết của

đề tài. Việc tham khảo các nguồn tài liệu đã được thực hiện trích dẫn và ghi nguồn

tài liệu tham khảo đúng quy định.

Thái Nguyên, ngày 08 tháng 10 năm 2020

Tác giả luận văn

Sengthong xayavong

II

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn sâu sắc tới TS. Nguyễn Văn Núi, Trường Đại học Công

nghệ Thông tin và Truyền thông, người thầy đã dành nhiều thời gian tận tình chỉ bảo,

hướng dẫn, giúp đỡ tôi trong suốt quá trình tìm hiểu, nghiên cứu. Thầy là người định

hướng và đưa ra nhiều góp ý quý báu trong quá trình tôi thực hiện luận văn.

Tôi xin chân thành cảm ơn các thầy, cô ở khoa Công nghệ thông tin – trường

Đại học Công nghệ Thông tin và Truyền thông đã cung cấp cho tôi những kiến thức

và tạo cho tôi những điều kiện thuận lợi trong suốt quá trình tôi học tập tại trường.

Tôi cũng bày tỏ lòng biết ơn về sự giúp đỡ của lãnh đạo cơ quan, đồng nghiệp

đã cung cấp dữ liệu, tài liệu và cho tôi những lời khuyên quý báu. Tôi xin cảm ơn gia

đình, người thân, bạn bè và các thành viên trong nhóm nghiên cứu luôn động viên và

tạo mọi điều kiện tốt nhất cho tôi.

Tôi xin chân thành cảm ơn!

Thái Nguyên, ngày 08 tháng 10 năm 2020

Tác giả luận văn

Sengthong Xayavong

III

MỤC LỤC

LỜI CAM ĐOAN ...................................................................................................... I

LỜI CẢM ƠN .......................................................................................................... II

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT .......................................... VI

DANH MỤC CÁC BẢNG ....................................................................................VII

DANH MỤC HÌNH ............................................................................................. VIII

MỞ ĐẦU .................................................................................................................... 1

Chương 1: Tổng quan về khai phá dữ liệu và phát hiện tri thức ......................... 3

1.1 Giới thiệu tổng quan ........................................................................................ 3

1.1.1 Giới thiệu chung về khám phá tri thức và khai phá dữ liệu ........................ 3

1.1.2 Quá trình khám phá tri thức ........................................................................ 3

1.1.3 Khai phá dữ liệu .......................................................................................... 5

1.1.4 Quá trình của khai phá dữ liệu .................................................................... 6

1.1.5 Ứng dụng của khai phá dữ liệu ................................................................... 7

1.2 Một số kỹ thuật khai phá dữ liệu cơ bản ....................................................... 7

1.2.1 Luật kết hợp (Association Rules)................................................................. 7

1.2.2 Khai thác mẫu tuần tự (Sequential / Temporal patterns) ............................ 7

1.2.3 Phân cụm dữ liệu (Clustering) .................................................................... 8

1.2.4 Phân nhóm- đoạn (Clustering / Segmentation) ........................................... 8

1.2.5 Hồi quy (Regression) .................................................................................. 9

1.2.6 Tổng hợp hóa (Summarization) ................................................................... 9

1.2.7 Mô hình hóa sự phụ thuộc (dependency modeling) .................................... 9

1.2.8 Phát hiện sự biến đổi và độ lệch (Change and deviation detection) ......... 10

1.3. Một số so sánh giữa khai phá dữ liệu và các phương pháp cơ bản khác 10

1.3.1. So sánh với phương pháp hệ chuyên gia .................................................. 10

1.3.2. So sánh với phương pháp phân loại thống kê .......................................... 11

1.3.3. So sánh với phương pháp học máy .......................................................... 12

1.3.4 So sánh với phương pháp học sâu ............................................................. 14

Chương 2: Một số kỹ thuật phân lớp dữ liệu ....................................................... 16

2.1 Tổng quan về phân lớp dữ liệu .................................................................... 16

2.2. Phân lớp dữ liệu Naive Bayes ..................................................................... 19

IV

2.2.1 Định nghĩa thuật toán Naïve Bayes .......................................................... 19

2.2.3 Đặc điểm của thuật toán Naïve Bayes ....................................................... 22

2.2.4 Ứng dụng của thuật toán Naïve Bayes ...................................................... 23

2.3 Phân lớp dữ liệu RandomForest ................................................................. 24

2.3.1 Định nghĩa thuật toán Ramdomforest ....................................................... 24

2.3.2 Đặc điểm của Random Forest ................................................................... 27

2.3.3 Mô hình phân lớp với Random Forest ...................................................... 29

2.3.4 Ứng dụng thuật toán Ramdom Forest ....................................................... 29

2.4. Phân lớp dữ liệu KNN (K-nearest neighbor) ............................................ 29

2.4.1 Định nghĩa thuât toán KNN ...................................................................... 29

2.4.2 Mô tả thuật toán K-NN .............................................................................. 31

2.4.3 Đặc điểm của thuật toán KNN ................................................................. 33

2.4.4 Ứng dụng thuật toán K-NN ...................................................................... 33

2.5. Một số thuật toán phân lớp dữ liệu khác ................................................... 34

2.5.1 Cây quyết định ứng dụng trong phân lớp dữ liệu ...................................... 34

2.5.2 Phân lớp với máy vector hỗ trợ (SVM) ..................................................... 34

Chương 3: Ứng dụng phân lớp dữ liệu hoa Iris ................................................... 35

3.1. Giới thiệu về hoa Iris và bài toán phân lớp hoa Iris .................................. 35

3.1.1. Giới thiệu về tập dữ liệu hoa Iris .............................................................. 35

3.1.2 Sử dụng tập dữ liệu.................................................................................... 36

3.1.3 Tập dữ liệu ................................................................................................. 36

3.1.4 Định nghĩa bài toán phân lớp hoa Iris ...................................................... 41

3.2. Thu thập và tiền xử lý dữ liệu ...................................................................... 41

3.2.1. Làm sạch dữ liệu ...................................................................................... 42

3.2.2. Chọn lọc dữ liệu ....................................................................................... 42

3.2.3. Chuyển đổi dữ liệu ................................................................................... 43

3.2.4. Rút gọn dữ liệu ......................................................................................... 43

3.3. Giới thiệu về công cụ Weka, cấu hình và ứng dụng phân lớp hoa Iris ... 43

3.3.1 Khái niệm .................................................................................................. 43

3.3.2 Ưu điểm của Weka .................................................................................... 44

3.3.3 Những tính năng vượt trội của Weka ........................................................ 45

V

3.3.4 Kiến trúc thư viện Weka ........................................................................... 45

3.3.5 Các môi trường chức năng chính của Weka ............................................. 46

3.3.6 Định dạng dữ liệu của weka ...................................................................... 48

3.4. Áp dụng các thuật toán Naive Bayes, RandomForest và KNN trong phân lớp dự đoán hoa Iris ............................................................................................ 49

3.4.1 Áp dụng thuật toán Naive Bayes trong phân lớp dự đoán hoa Iris ........... 50

3.4.2 Áp dụng thuật toán RandomForest trong phân lớp dự đoán hoa Iris ........ 53

3.4.3 Áp dụng thuật toán KNN trong phân lớp dự đoán hoa Iris ....................... 56

3.5 Đánh giá mô hình phân lớp dữ liệu Hoa IRIS ............................................ 59

3.5.1 Đánh giá hiệu năng mô hình sử dụng phương pháp đánh giá chéo (k-fold cross-validation) ................................................................................................. 59

3.5.2 Đánh giá mô hình sử dụng phương pháp Hold-out ................................... 59

3.5.3 Kết luận thực nghiệm phân lớp dữ liệu IRIS ............................................ 60

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................. 61

TÀI LIỆU THAM KHẢO ...................................................................................... 62

VI

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

TT Chữ viết tắt

Ý nghĩa

1. KPDL

Khai phá dữ liệu

2. CSDL

Cơ sở dữ liệu

3. KNN

K-nearest neighbor

4. KDD

Knowledge Discovery in Database

5. RF

Ramdom Forest

6. SVM

Support Vector Machines

7. NBC

Naive Bayes Classification

VII

DANH MỤC CÁC BẢNG

Bảng 1:Thông tin loài Setosa .......................................................................... 36

Bảng 2:Thông tin loài Iris-Versicolor ............................................................. 38

Bảng 3: thông tin Loài Iris-Virginica .............................................................. 39

Bảng 4: tổng kết thống kê Giá trị của hoa Iris ................................................ 42

Bảng 5: ý nghĩa các môi trường chính trên Weka 3.8.4 ................................. 46

Bảng 6: ý nghĩa các môi trường Explorer trên Weka 3.8.4 ............................ 48

Bảng 7: Tổng hợp đánh giá các thật toán chia tập dữ liệu thành 10 phần (chọn

fold=10) ........................................................................................................... 59

Bảng 8: Tổng hợp kết quả đánh giá hiệu năng phân lớp, dự đoán của mô hình

bằng phương pháp kiểm thử độc lập ............................................................... 60

VIII

DANH MỤC HÌNH

Hình 1. 1:Quá trình khám phá tri thức ........................................................................ 5

Hình 1. 2:Quá trình khai phá dữ liệu........................................................................... 6

Hình 1. 3: Lược đồ hệ chuyên gia ............................................................................. 11

Hình 2. 1: Bài toán phân lớp ..................................................................................... 16

Hình 2. 2: Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp ........ 18

Hình 2. 3: Quá trình phân lớp dữ liệu - (b1) Ước lượng độ chính xác của mô hình 19

Hình 2. 4:Quá trình phân lớp dữ liệu - (b2) Phân lớp dữ liệu mới ........................... 19

Hình 2. 5:Mô hình rừng ngẫu nhiên .......................................................................... 25

Hình 2. 6:Các bước phân lớp với Random Forest .................................................... 27

Hình 2. 7:Mô hình phân lớp với Random Forest ...................................................... 29

Hình 2. 8: Bản dổ của KNN nhiễu k =1 .................................................................... 31

Hình 2. 9: Minh họa của KNN .................................................................................. 32

Hình 3. 1: Minh họa về iris flower dataset ................................................................ 35

Hình 3. 2: Loài chim Mecca được chọn là biểu tượng của ứng dụng Weka ............ 43

Hình 3. 3: môi trường chính của Weka ..................................................................... 46

Hình 3. 4 : Sơ đồ tổng thể Mô hình phân lớp dự đoán hoa Iris trong luận văn ........ 50

Hình 3. 5:Cấu hình tham số cho thuật toán Naive Bayes ......................................... 51

Hình 3. 6: Kết quả phân lớp dữ liệu cho thuật toán Naive Bayes Tập luyện tập 66%

(Tập kiểm chứng 34%) .............................................................................................. 52

Hình 3. 7:Kết quả phân lớp dữ liệu cho thuật toán Naive Bayes chia tập dữ liệu

thành 10 phần (chọn fold=10) ................................................................................... 53

Hình 3. 8:Cấu hình tham số cho thuật toán Ramdomforest ...................................... 54

Hình 3. 9: Kết quả phân lớp dữ liệu cho thuật toán Ramdomforest Tập luyện tập

66% (Tập kiểm chứng 34%) ..................................................................................... 55

Hình 3. 10:Kết quả phân lớp dữ liệu cho thuật toán Ramdomforest chia tập dữ liệu

thành 10 phần (chọn fold=10) ................................................................................... 56

Hình 3. 11:Cấu hình tham số cho thuật toán k-Nearest Neighbors .......................... 57

IX

Hình 3. 12: Kết quả phân lớp dữ liệu cho thuật toán K-NN Tập luyện tập 66% (Tập

kiểm chứng 34%) ...................................................................................................... 58

Hình 3. 13:Kết quả phân lớp dữ liệu cho thuật toán k-Nearest Neighbors chia tập dữ

liệu thành 10 phần (chọn fold=10) ............................................................................ 58

1

MỞ ĐẦU

Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin ở

hầu hết các lĩnh vực trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được

thu thập và lưu trữ ngày càng lớn. Các hệ quản trị cơ sở dữ liệu truyền thống cũng

chỉ khai thác được một lượng thông tin nhỏ không còn đáp ứng đầy đủ những yêu

cầu, những thách thức mới. Do vậy một khuynh hướng mới được ra đời đó là kỹ thuật

phát hiện tri thức trong cơ sở dữ liệu. Xin giới thiệu một cách tổng quan về phát hiện

tri thức và khai phá dữ liệu cùng một số kỹ thuật cơ bản để trong khai phá dữ liệu để

phát hiện tri thức và một số ứng dụng trong thực tế nhằm hỗ trợ cho tiến trình ra quyết

định.

Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên cứu, ứng

dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, kỹ thuật này tương đối

còn mới mẻ tuy nhiên cũng đang được nghiên cứu và dần đưa vào ứng dụng. Bước

quan trọng nhất của quá trình này là Khai phá dữ liệu (Data Mining), giúp người sử

dụng thu được những tri thức hữu ích từ những CSDL hoặc các nguồn dữ liệu khổng

lồ khác. Rất nhiều doanh nghiệp và tổ chức trên thế giới đã ứng dụng kĩ thuật khai

phá dữ liệu vào hoạt động sản xuất kinh doanh của mình và đã thu được những lợi

ích to lớn. Nhưng để làm được điều đó, sự phát triển của các mô hình toán học và các

giải thuật hiệu quả là chìa khoá quan trọng. Vì vậy, trong luận văn này, tác giả sẽ đề

cập tới hai kỹ thuật thường dùng trong Khai phá dữ liệu, đó là Phân lớp

(Classification).

Trong quá trình hoạt động, con người tạo ra nhiều dữ liệu nghiệp vụ. Các tập

dữ liệu được tích lũy có kích thước ngày càng lớn, và có thể chứa nhiều thông tin ẩn

dạng những quy luật chưa được khám phá. Chính vì vậy, một nhu cầu đặt ra là cần tìm

cách trích rút từ tập dữ liệu đó các luật về phân lớp dữ liệu hay dự đoán những xu hướng

dữ liệu tương lai. Những quy tắc nghiệp vụ thông minh được tạo ra sẽ phục vụ đắc lực cho

các hoạt động thực tiễn, cũng như phục vụ đắc lực cho quá trình nghiên cứu khoa học.

Công nghệ phân lớp và dự đoán dữ liệu ra đời để đáp ứng mong muốn đó.

2

Công nghệ phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước những

khao khát tri thức của con người. Trong những năm qua, phân lớp dữ liệu đã thu hút sự

quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine

learning), hệ chuyên gia (expert system), thống kê (statistics)... Công nghệ này cũng ứng

dụng trong nhiều lĩnh vực thực tế như: thương mại, nhà băng, maketing, nghiên cứu thị

trường, bảo hiểm, y tế, giáo dục...

Nhiều kỹ thuật phân lớp đã được đề xuất như: Phân lớp : phân lớp dữ liệu hoa iris, phân

lớp Bayesian (Bayesian classifier), phân lớp Khàng xóm gần nhất (K-nearest neighbor

classifier), mạng nơron, phân tích thống kê,…Trong các kỹ thuật đó, cây quyết định được

coi là công cụ mạnh, phổ biến và đặc biệt thích hợp cho data mining. Trong các mô hình

phân lớp, thuật toán phân lớp là nhân tố chủ đạo. Do vậy cần xây dựng những thuật toán

có độ chính xác cao, thực thi nhanh, đi kèm với khả năng mở rộng được để có thể thao tác

với những tập dữ liệu ngày càng lớn.

Bố cục của luận văn có nội dụng chính 3 chương :

Chương 1: Tổng quan về khai phá dữ liệu và phát hiện tri thức trong chương

này nghiên cứu tổng quan về khái phá dữ liệu và phát hiện tri thức. Bên cạnh đó, một

số kĩ thuật khái phá dữ liệu cơ bản cũng được trình bày trong chương này.

Chương 2: Một số kỹ thuật phân lớp dữ liệu trong chương này trình bày tổng

quan về phân lớp dữ liệu và 3 phương pháp : Naïve Bayes, Ramdom Forrest và KNN.

Chương 3: Ứng dụng phân lớp dữ liệu hoa Iris, chương này Phát triển và Demo

ứng dụng cung cụ Weka xây dựng mô hình, kiểm tra và đánh giá mô hình dự doán

hoa Iris.

3

Chương 1: Tổng quan về khai phá dữ liệu và phát hiện tri thức

1.1 Giới thiệu tổng quan

1.1.1 Giới thiệu chung về khám phá tri thức và khai phá dữ liệu

Nếu cho rằng, điện tử và truyền thông chính là bản chất của khoa học điện tử,

thì dữ liệu, thông tin, và tri thức hiện đang là tiêu điểm của một lĩnh vực mới để

nghiên cứu và ứng dụng, đó là khám phá tri thức và khai phá dữ liệu.

Thông thường, chúng ta coi dữ liệu như là một chuỗi các bits, hoặc các số và

các ký hiệu hay là các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một

chương trình dưới một dạng nhất định. Các bits thường được sử dụng để đo thông tin,

và xem nó như là dữ liệu đã được loại bỏ phần tử thừa, lặp lại, và rút gọn tới mức tối

thiểu để đặc trưng một cách cơ bản cho dữ liệu. Tri thức được xem như là các thông

tin tích hợp, bao gồm các sự kiện và mối quan hệ giữa chúng, đã được nhận thức,

khám phá, hoặc nghiên cứu. Nói cách khác, tri thức có thể được coi là dữ liệu ở mức

độ cao của sự trừu tượng và tổng quát.

Khám phá tri thức hay phát hiện tri thức trong CSDL là một quy trình nhận

biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: Phân tích, tổng hợp,

hợp thức, khả ích và có thể hiểu được.

Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, gồm các giải

thuật khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp

nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu.

Nói cách khác, mục tiêu của Khai phá dữ liệu là tìm kiếm các mẫu hoặc mô

hình tồn tại trong CSDL nhưng ẩn trong khối lượng lớn dữ liệu.

1.1.2 Quá trình khám phá tri thức

Quy trình khám phá tri thức tiến hành qua 6 giai đoạn, xem hình 1.1:

1. Gom dữ liệu: Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ

liệu. Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm

chí các dữ liệu từ các nguồn ứng dụng Web.

4

2. Trích lọc dữ liệu: Ở giai đọan này dữ liệu được lựa chọn hoặc phân chia

theo một số tiêu chuẩn nào đó phục vụ mục đích khai thác, ví dụ chọn tất cả những

em học sinh có điểm Trung bình học kỳ lớn hơn 8.0 và có giới tính nữ.

3. Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu: Giai đoạn thứ ba này là giai

đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình

khai phá dữ liệu. Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ

chặt chẽ, logíc. Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng

kết nối dữ liệu. Ví dụ : Điểm Trung bình = 12.4. Giai đoạn này sẽ tiến hành xử lý

những dạng dữ liệu không chặt chẻ nói trên. Những dữ liệu dạng này được xem như

thông tin dư thừa, không có giá trị. Bởi vậy, đây là một quá trình rất quan trọng vì dữ

liệu này nếu không được “làm sạch – tiền xử lý – chuẩn bị trước” thì sẽ gây nên những

kết quả sai lệch nghiêm trọng.

4. Chuyển đổi dữ liệu: Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa

ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó, tức là dữ liệu sẽ được

chuyển đổi về dạng phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm

hoặc tập hợp.

5. Khai phá dữ liệu: Đây là bước mang tính tư duy trong khai phá dữ liệu. Ở

giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ

liệu. Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết, v.v...

6. Đánh giá các luật và biểu diễn tri thức: Ở giai đoạn này, các mẫu dữ liệu

được chiết xuất ra bởi phần mềm khai phá dữ liệu. Không phải bất cứ mẫu dữ liệu

nào cũng đều hữu ích, đôi khi nó còn bị sai lệch. Vì vậy, cần phải ưu tiên những tiêu

chuẩn đánh giá để chiết xuất ra các tri thức (Knowlege) cần chiết xuất ra. Đánh giá

sự hữu ích của các mẫu biểu diễn tri thức dựa trên một số phép đo. Sau đó sử dụng

các kỹ thuật trình diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được

cho người sử dụng.

5

Hình 1. 1:Quá trình khám phá tri thức

1.1.3 Khai phá dữ liệu

KPDL là một khái niệm ra đời vào những năm cuối của thập kỷ 80. Nó

bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn

trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, KPDL liên quan đến việc

phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính

quy (regularities) trong tập dữ liệu.

Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát

hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để chỉ

toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn. Trong đó,

KPDL là một bước đặc biệt trong toàn bộ tiến trình, sử dụng các giải thuật đặc biệt

để chiết xuất ra các mẫu (pattern) (hay các mô hình) từ dữ liệu.

Khai phá dữ liệu là một tiến trình sử dụng các công cụ phân tích dữ liệu

khác nhau để khám phá ra các mẫu dưới nhiều góc độ khác nhau nhằm phát hiện ra

các mối quan hệ giữa các dữ kiện, đối tượng bên trong CSDL, kết quả của việc khai

phá là xác định các mẫu hay các mô hình đang tồn tại bên trong, nhưng chúng nằm

ẩn khuất ở các CSDL. Để từ đó rút trích ra được các mẫu, các mô hình hay các

thông tin và tri thức từ các CSDL.

6

1.1.4 Quá trình của khai phá dữ liệu

Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khám phá tri

thức. Về bản chất là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn

có trong cơ sở dữ liệu chủ yếu phục vụ cho mô tả và dự đoán.

Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc

tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được.

Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật được

phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó chiết xuất

ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các

Thống kê tóm tắt

biến quan tâm.

Hình 1. 2:Quá trình khai phá dữ liệu

- Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết.

- Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp.

- Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý chúng thành dạng sao cho thuật toán khai phá dữ liệu có thể hiểu được. Đây là một

quá trình rất khó khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải

được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý tập các dữ liệu, phải

lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi), v.v..

- Thuật toán khai phá dữ liệu: Lựa chọn thuật toán khai phá dữ liệu và thực

hiện việc khai phá dữ liệu để tìm được các mẫu có ý nghĩa, các mẫu này được biểu

diễn dưới dạng luật kết hợp, cây quyết định... tương ứng với ý nghĩa của nó.

7

1.1.5 Ứng dụng của khai phá dữ liệu

KPDL có nhiều ứng dụng trong thực tế, một số ứng dụng điển hình như:

 Bảo hiểm, tài chính và thị trường chứng khoán: phân tích tình hình tài chính và

dự báo giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn

và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận.

 Điều trị y học và chăm sóc y tế: một số thông tin về chẩn đoán bệnh lưu trong

các hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa triệu chứng bệnh,

chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc,…).

 Sản xuất và chế biến: qui trình, phương pháp chế biến và xử lý xử cố

Text mining & Web mining: phân lớp văn bản và các trang web, tóm tắt văn

bản.

 Lĩnh vực khoa học: quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm

kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và các bệnh

di truyền.

 Lĩnh vực khác: viễn thông, môi trường, thể thao, âm nhạc, giáo dục…

1.2 Một số kỹ thuật khai phá dữ liệu cơ bản

1.2.1 Luật kết hợp (Association Rules)

Luật kết hợp là dạng luật biểu diễn tri thức ở dạng tương đối đơn giản. Mục tiêu

của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ

liệu trong CSDL. Mẫu đầu ra của giải thuật KPDL là tập luật kết hợp tìm được.

Tuy luật kết hợp là một dạng luật khá đơn giản nhưng lại mang rất nhiều ý nghĩa.

Thông tin mà dạng luật này đem lại rất có lợi trong các hệ hỗ trợ ra quyết định.Tìm

kiếm được những luật kết hợp đặc trưng và mang nhiều thông tin từ CSDL tác nghiệp

là một trong những hướng tiếp cận chính của lĩnh vực khai phá dữ liệu.

1.2.2 Khai thác mẫu tuần tự (Sequential / Temporal patterns)

Tương tự như khai thác luật kết hợp nhưng có thêm tính thứ tự và tính thời

gian. Một luật mô tả mẫu tuần tự có dạng tiêu biểu X Y phản ánh sự xuất hiện

của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y. Hướng tiếp cận này có tính

dự báo cao.

8

1.2.3 Phân cụm dữ liệu (Clustering)

Phân cụm dữ liệu là một kỹ thuật trong Data mining nhằm tìm kiếm, phát

hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn và quan trọng trong tập dữ liệu lớn

để từ đó cung cấp thông tin, tri thức cho việc ra quyết định.

Phân cụm dữ liệu là sự phân chia một cơ sở dữ liệu lớn thành các nhóm

dữ liệu với trong đó các đối tượng tương tự như nhau. Trong mỗi nhóm, một số chi

tiết có thể không quan tâm đến để đổi lấy dữ liệu đơn giản hóa. Hay ta có thể

hiểu “Phân cụm dữ liệu là quá trình tổ chức các đối tượng thành từng nhóm mà các

đối tượng ở mỗi nhóm đều tương tự nhau theo một tính chất nào đó, những đối

tượng không tương tự tính chất sẽ ở nhóm khác”.

Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng tương tự nhau

trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là

tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng.

Phân cụm dữ liệu là một ví dụ của phương pháp học không có thầy. Không giống

như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu

dữ liệu huấn luyện. Vì thế, có thể coi phân cụm dữ liệu là một cách học bằng quan

sát, trong khi phân lớp dữ liệu là học bằng ví dụ . . . Ngoài ra phân cụm dữ liệu còn

có thể được sử dụng như một bước tiền xử lí cho các thuật toán khai phá dữ liệu

khác như là phân loại và mô tả đặc điểm, có tác dụng trong việc phát hiện ra các

cụm.

1.2.4 Phân nhóm- đoạn (Clustering / Segmentation)

Mục tiêu chính của việc phân nhóm dữ liệu là nhóm các đối tượng tương tự

nhau trong tập dữ liệu vào các nhóm sao cho mức độ tương tự giữa các đối tượng

trong cùng một nhóm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong

các nhóm khác nhau là nhỏ nhất. Các nhóm có thể tách nhau hoặc phân cấp gối lên

nhau và số lượng các nhóm là chưa biết trước. Một đối tượng có thể vừa thuộc nhóm

này, nhưng cũng có thể vừa thuộc nhóm khác. Không giống như phân lớp dữ liệu,

phân nhóm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện.

Vì thế, có thể coi phân nhóm dữ liệu là một cách học bằng quan sát (learning by

observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example).

9

Trong phương pháp này bạn sẽ không thể biết kết quả các nhóm thu được sẽ như thế

nào khi bắt đầu quá trình. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực

đó để đánh giá các nhóm thu được. Phân nhóm còn được gọi là học không có giám

sát (unsupervised learning). Phân nhóm dữ liệu được sử dụng nhiều trong các ứng

dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang

Web, … Ngoài ra phân nhóm dữ liệu còn có thể được sử dụng như một bước tiền xử

lý cho các thuật toán KPDL khác.

1.2.5 Hồi quy (Regression)

Hồi quy là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự

đoán có giá trị thực. Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau

chính là ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc. Việc dự báo các giá

trị số thường được làm bởi các phương pháp thống kê cổ điển chẳng hạn như hồi quy

tuyến tính. Tuy nhiên phương pháp mô hình hóa cũng có thể được sử dụng như cây

quyết định.

1.2.6 Tổng hợp hóa (Summarization)

Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tập con dữ

liệu. Kỹ thuật mô tả khái niệm và tổng hợp hóa thường áp dụng trong việc phân tích

dữ liệu có tính thăm dò và báo cáo tự động. Nhiệm vụ chính là sản sinh ra các mô tả

đặc trưng cho một lớp. Mô tả loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung

của tất cả hay hầu hết các mục của một lớp. Các mô tả đặc trưng thể hiện theo luật có

dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả các

thuộc tính đã nêu trong kết luận”.

1.2.7 Mô hình hóa sự phụ thuộc (dependency modeling)

Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính

theo hai mức. Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị), trong đó,

các biến phụ thuộc bộ phận vào các biến khác. Và mức định lượng mô hình mô tả

mức độ phụ thuộc. Những phụ thuộc này thường được biểu thị dưới dạng theo luật

“nếu - thì” - nếu tiền đề đúng thì kết luận đúng. Về nguyên tắc, cả tiền đề và kết

luậnđều có thể là sự kết hợp logic của các giá trị thuộc tính. Trên thực tế, tiền đề

10

thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính. Hơn nữa, hệ

thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một

thuộc tính do người dùng chỉ ra trong kết luận.

Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes. Đó

là đồ thị có hướng, không chu trình. Các nút biểu diễn thuộc tính và trọng số của liên

kết phụ thuộc giữa các nút đó.

1.2.8 Phát hiện sự biến đổi và độ lệch (Change and deviation detection)

Tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết

trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu

thực và nội dung mong đợi. Hai mô hình độ lệch hay dùng là lệch theo thời gian và

lệch theo nhóm. Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu thời gian.

Độ lệch theo nhóm là sự khác nhau của dữ liệu trong hai tập con dữ liệu, ở đây xét cả

trường hợp tập con dữ liệu này thuộc tập con kia. Nghĩa xác định dữ liệu trong một

nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách

này, sai sót dữ liệu hay sai lệch so với giá trị thông thường sẽ được phát hiện.

1.3. Một số so sánh giữa khai phá dữ liệu và các phương pháp cơ bản khác

1.3.1. So sánh với phương pháp hệ chuyên gia

Hệ chuyên gia là một chương trình thông minh nhằm dạy cho máy tính biết

các hoạt động của một chuyên gia thực thụ. Hệ chuyên gia đầu tiên là DENDRAL,

xuất hiện vào giữa thập niên 70, sau đó vào năm 1975 hệ chuyên gia MYCIN ra đời

đã thành công trong việc áp dụng khoa học trí tuệ nhân tạo vào lĩnh vực Y học, cụ

thể là lĩnh vực chẩn đoán và điều trị bệnh nhiễm trùng máu. Đây là hệ chuyên gia

tương đối lớn, thực hiện ở mức chuyên gia con người, bên cạnh đó còn cung cấp cơ

chế giải thích các bước suy luận.

Chuyên gia con người có hai phần cơ bản: tri thức của chuyên gia và lập luận.

Từ đó hệ chuyên gia cũng có hai phần chính: một cơ sở tri thức và một mô tơ suy

diễn.

Cơ sở tri thức chứa các tri thức chuyên dụng mức cao về một vấn đề được

cung cấp bởi chuyên gia con người. Nó bao gồm các sự kiện, luật, khái niệm và các

11

mối quan hệ. Chẳng hạn nó có thể chứa tri thức của một bác sĩ chẩn đoán bệnh về

thần kinh.

Mô tơ suy diễn là bộ xử lý tri thức, nó làm việc với các thông tin có sẵn từ một

vấn đề cho trước, kết hợp với các tri thức có trong cơ sở tri thức để đưa ra một kết

Cơ sở tri thức

luận hay gợi ý.

Mô tơ suy diễn

Hệ chuyên gia

Hình 1. 3: Lược đồ hệ chuyên gia

Hệ chuyên gia được sử dụng trong rất nhiều lĩnh vực: nông nghiệp, thương

mại, giáo dục, khoa học, y tế, kinh tế…

Hệ chuyên gia cũng được chia thành nhiều loại: mô phỏng, điều khiển, thiết

kế, lập kế hoạch, giải thích, dự đoán, lựa chọn…

1.3.2. So sánh với phương pháp phân loại thống kê

Phân loại thống kê là một mặt công tác quan trọng trong quá trình nghiên cứu

thống kê nhất là trong khâu xử lý và lập các bảng số liệu. Thông qua phân loại, cho

phép chúng ta nhận thức hiện tượng và quá trình kinh tế- xã hội một cách sâu sắc.

Chẳng hạn, khi nghiên cứu sự chuyển dịch kinh tế, cần phải có số liệu của các ngành,

các lĩnh vực, các địa phương... mà muốn có số liệu như vậy, nhất thiết phải tiến hành

phân loại các đơn vị thống kê vào các bảng phân loại. Từ ví dụ đơn giản trên đây

minh chứng rằng: Phân loại là một việc làm hết sức quan trọng của các hoạt động

thống kê nhằm đưa ra các thông tin phục vụ tốt cho các nhu cầu quản lý điều hành.

Thực tiễn thống kê nước ta cũng như thống kê thế giới đã, đang và sẽ tiếp tục

đẩy mạnh mặt công tác này. Để giúp cho bạn đọc trong và ngoài ngành hiểu rõ hơn

phương pháp phân loại thống kê. Bài viết nãy sẽ giới thiệu khái quát những vấn đề lý

luận có liên quan đến phân loại thống kê.

12

Thuật ngữ phân loại theo tiếng Anh là “classification” có nghĩa là phân thành

các lớp, còn theo tiếng Pháp là “Tap xo no mi que” với nghĩa là sắp xếp các dữ liệu

vào các bảng biểu. Phương pháp này được ứng dụng hết sức phổ biến trong nghiên

cứu tự nhiên cũng như xã hội. Trong nghiên cứu dân số học người ta căn cứ vào huyết

thống để phân ra các dòng họ, các thế hệ... Tương tự như vậy, trong sinh vật người ta

phân ra các lớp, họ, chi nhánh. Các loại động thực vật. Như vậy, về thực chất phân

loại là một hình thức phân tổ. Nhưng nó khác phân tổ thống kê ở chỗ tiêu thức “hay

dấu hiệu” phân tổ có thể chọn bất kỳ một tính chất nào đó (định tính hay định lượng)

trong phân tổ đơn hoặc căn cứ vào nhiều tiêu thức trong phân tổ kết hợp để phân chia

tổng thể nghiên cứu thành nhiều tổng thể con riêng biệt, còn trong phân loại chủ yếu

dựa vào các tiêu thức thuộc tính (định tính) để tiến hành phân chia tổng thể nghiên

cứu thành các tổng thể con riêng biệt.

Do tính chất quan trọng của phân loại, nên đã từ lâu các nhà khoa học đã đầu tư

nghiên cứu và hình thành môn khoa học với tên “phân loại học” hay “dấu hiệu học”

Theo dự thảo từ chuẩn thống kê thì phân loại thống kê được định nghĩa: “Một

cách phân tổ đặc thù các đơn vị thống kê theo các tiêu thức thuộc tính, việc phân loại

các đơn vị thống kê phải tuân thủ các nguyên tắc quy định, các tổ có tên gọi và được

sắp xếp theo những quy tắc do cấp quản lý thẩm quyền quy định. Kết quả phân loại

hình thành các bảng phân loại thống kê hoặc các bảng danh mục do Nhà nước quy

định thống nhất và cố định trong một thời gian tương đối dài, nhằm đảm bảo tính chất

so sánh của số liệu thống kê”.

1.3.3. So sánh với phương pháp học máy

Học máy (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo

liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể "học". Cụ thể

hơn, học máy là một phương pháp để tạo ra các chương trình máy tính bằng việc phân

tích các tập dữ liệu. Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều

nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào

sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận

13

được xếp vào loại bài toán NP-khó, vì thế một phần của học máy là nghiên cứu sự

phát triển các giải thuật suy luận xấp xỉ mà có thể xử lí được.

Học máy có tính ứng dụng rất cao bao gồm máy truy tìm dữ liệu, chẩn đoán y

khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các

chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động

rô-bốt (robot locomotion).

Phân loại: Có hai loại phương pháp học máy chính

 Phương pháp quy nạp: Máy học/phân biệt các khái niệm dựa trên dữ liệu đã

thu thập được trước đó. Phương pháp này cho phép tận dụng được nguồn dữ

liệu rất nhiều và sẵn có.

 Phương pháp suy diễn: Máy học/phân biệt các khái niệm dựa vào các luật.

Phương pháp này cho phép tận dụng được các kiến thức chuyên ngành để hỗ

trợ máy tính.

 Hiện nay, các thuật toán đều cố gắng tận dụng được ưu điểm của hai phương

pháp này.

 Các ngành khoa học liên quan:

- Lý thuyết thống kê: các kết quả trong xác suất thống kê là tiền đề cho rất nhiều

phương pháp học máy. Đặc biệt, lý thuyết thống kê cho phép ước lượng sai số

của các phương pháp học máy.

- Các phương pháp tính: các thuật toán học máy thường sử dụng các tính toán số

thực/số nguyên trên dữ liệu rất lớn. Trong đó, các bài toán như: tối ưu có/không

ràng buộc, giải phương trình tuyến tính v.v… được sử dụng rất phổ biến.

- Khoa học máy tính: là cơ sở để thiết kế các thuật toán, đồng thời đánh giá thời

gian chạy, bộ nhớ của các thuật toán học máy.

 Các nhóm giải thuật học máy:

- Học có giám sát: Máy tính được xem một số mẫu gồm đầu vào (input) và đầu

ra (output) tương ứng trước. Sau khi học xong các mẫu này, máy tính quan sát

một đầu vào mới và cho ra kết quả.

- Học không giám sát: Máy tính chỉ được xem các mẫu không có đầu ra, sau đó

máy tính phải tự tìm cách phân loại các mẫu này và các mẫu mới.

14

- Học nửa giám sát: Một dạng lai giữa hai nhóm giải thuật trên.

- Học tăng cường: Máy tính đưa ra quyết định hành động (action) và nhận kết quả

phản hồi (response/reward) từ môi trường (environment). Sau đó máy tính tìm

cách chỉnh sửa cách ra quyết định hành động của mình.

 Các ứng dụng của học máy

Ứng dụng: Học máy có ứng dụng rộng khắp trong các ngành khoa học/sản

xuất, đặc biệt những ngành cần phân tích khối lượng dữ liệu khổng lồ. Một số ứng

dụng thường thấy

- Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản, giao tiếp

người – máy.

- Nhận dạng (Pattern Recognition): nhận dạng tiếng nói, chữ viết tay, vân tay, thị

giác máy (Computer Vision).

- Tìm kiếm (Search Engine)

- Chẩn đoán trong y tế: phân tích ảnh X-quang, các hệ chuyên gia chẩn đoán tự

động.

- Tin sinh học: phân loại chuỗi gene, quá trình hình thành gene/protein

- Vật lý: phân tích ảnh thiên văn, tác động giữa các hạt …

- Phát hiện gian lận tài chính (financial fraud): gian lận thẻ tỉn dụng

- Phân tích thị trường chứng khoán (stock market analysis)

- Chơi trò chơi: tự động chơi cờ, hành động của các nhân vật ảo

- Rôbốt: là tổng hợp của rất nhiều ngành khoa học, trong đó học máy tạo nên hệ

thần kinh/bộ não của người máy.

1.3.4 So sánh với phương pháp học sâu

Học sâu (tiếng Anh: deep learning) là một chi của ngành máy học dựa trên một

tập hợp các thuật toán để cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng

cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm

nhiều biến đổi phi tuyến.

Học sâu là một phần của một họ các phương pháp học máy rộng hơn dựa trên

đại diện học của dữ liệu. Một quan sát (ví dụ như, một hình ảnh) có thể được biểu

15

diễn bằng nhiều cách như một vector của các giá trị cường độ cho mỗi điểm ảnh, hoặc

một cách trừu tượng hơn như là một tập hợp các cạnh, các khu vực hình dạng cụ thể,

vv. Một vài đại diện làm khiến việc học các nhiệm vụ dễ dàng hơn (ví dụ, nhận dạng

khuôn mặt hoặc biểu hiện cảm xúc trên khuôn mặt) từ các ví dụ. Một trong những

hứa hẹn của học sâu là thay thế các tính năng thủ công bằng các thuật toán hiệu quả

đối với học không có giám sát hoặc nửa giám sát và tính năng phân cấp.

Các nghiên cứu trong lĩnh vực này cố gắng thực hiện các đại diện tốt hơn và tạo

ra các mô hình để tìm hiểu các đại diện này từ dữ liệu không dán nhãn quy mô lớn.

Một số đại diện được lấy cảm hứng bởi những tiến bộ trong khoa học thần kinh và

được dựa trên các giải thích của mô hình xử lý và truyền thông thông tin trong một

hệ thống thần kinh, chẳng hạn như mã hóa thần kinh để cố gắng để xác định các mối

quan hệ giữa các kích thích khác nhau và các phản ứng liên quan đến thần kinh trong

não.

Nhiều kiến trúc học sâu khác nhau như mạng neuron sâu, mã mạng neuron

tích chập sâu, mạng niềm tin sâu và mạng neuron tái phát đã được áp dụng cho các

lĩnh vực như thị giác máy tính, tự động nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên,

nhận dạng âm thanh ngôn ngữ và tin sinh học, chúng đã được chứng minh là tạo ra

các kết quả rất tốt đối với nhiều nhiệm vụ khác nhau.

16

Chương 2: Một số kỹ thuật phân lớp dữ liệu

2.1 Tổng quan về phân lớp dữ liệu

Một trong các nhiệm vụ chính của khai phá dữ liệu là giải quyết bài toán

phân lớp. Đầu vào của bài toán phân lớp là một tập các mẫu học đã được phân

lớp trước, mỗi mẫu được mô tả bằng một số thuộc tính. Các thuộc tính dùng để

mô tả một mẫu gồm hai loại là thuộc tính liên tục và thuộc tính rời rạc. Trong số

các thuộc tính rời rạc có một thuộc tính đặc biệt là phân lớp, mà các giá trị của

nó được gọi là nhãn lớp. Thuộc tính liên tục sẽ nhận các giá trị có thứ tự, ngược

lại thuộc tính rời rạc sẽ nhận các giá trị không có thứ tự. Ngoài ra, các thuộc tính

có thể nhận giá trị không xác định (chẳng hạn, vì những lý do khách quan ta

không thể biết được giá trị của nó). Chú ý rằng nhãn lớp của tất cả các mẫu

không được phép nhận giá trị không xác định. Nhiệm vụ của quá trình phân lớp

là thiết lập được ánh xạ giữa giá trị của các thuộc tính với các nhãn lớp. Mô hình

biểu diễn quan hệ nói trên sau đó sẽ được dùng để xác định nhãn lớp cho các

quan sát mới không nằm trong tập mẫu ban đầu.

Hình 2. 1: Bài toán phân lớp

Thực tế đặt ra nhu cầu từ một cơ sở dữ liệu với nhiều thông tin ẩn ta có thể

trích rút ra các quyết định nghiệp vụ thông minh. Phân lớp và dự đoán là hai

dạng của phân tích dữ liệu nhằm trích rút ra một mô hình mô tả các lớp dữ liệu

quan trọng hay dự đoán xu hướng dữ liệu tương lai. Phân lớp dự đoán giá trị của

những nhãn xác định (categorical label) hay những giá trị rời rạc (discrete

value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ giá

17

trị là biết trước. Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị

liên tục. Ví dụ mô hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là

mưa, hay nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ của ngày hôm

nay và các ngày trước đó. Hay nhờ các luật về xu hướng mua hàng của khách hàng

trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về

lượng mặt hàng cũng như chủng loại bày bán… Một mô hình dự đoán có thể dự đoán

được lượng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về

thu nhập và nghề nghiệp của khách hàng. Trong những năm qua, phân lớp dữ liệu đã

thu hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy

(machine learning), hệ chuyên gia (expert system), thống kê (statistics)... Công nghệ

này cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, nhà băng,

maketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục...

Quá trình phân lớp dữ liệu gồm hai bước:

• Bước thứ nhất (learning)

Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay

các khái niệm định trước. Đầu vào của quá trình này là một tập dữ liệu có cấu trúc

được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính

đó. Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể là các

mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay trường hợp

(case). Khoá luận sử dụng các thuật ngữ này với nghĩa tương đương. Trong tập dữ

liệu này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định trước, lớp ở đây là

giá trị của một thuộc tính được chọn làm thuộc tính gán nhãn lớp hay thuộc tính phân

lớp (class label attribute). Đầu ra của bước này thường là các quy tắc phân lớp dưới

dạng luật dạng if-then, cây quyết định, công thức logic, hay mạng nơron. Quá trình

này được mô tả như trong hình 2.2

18

Hình 2. 2: Quá trình phân lớp dữ liệu - (a) Bước xây dựng mô hình phân lớp

 Bước thứ hai (classification)

Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới.

Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra

được ước lượng. Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ

thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các

mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo. Độ

chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các các mẫu

trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế). Nếu độ chính

xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là

rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu. Quá vừa dữ liệu là hiện

tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng mô hình

phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập

dữ liệu đó. Do vậy, cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào

tạo. Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử dụng để

phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân

lớp là chưa biết.

19

Hình 2. 3: Quá trình phân lớp dữ liệu - (b1) Ước lượng độ chính xác của mô hình

Hình 2. 4:Quá trình phân lớp dữ liệu - (b2) Phân lớp dữ liệu mới

Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định

tới sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân lớp dữ

liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và

có khả năng mở rộng được. Trong đó khả năng mở rộng được của thuật toán được

đặc biệt chú trọng và phát triển.

2.2. Phân lớp dữ liệu Naive Bayes

2.2.1 Định nghĩa thuật toán Naïve Bayes

Naive Bayes Classification (NBC) là một thuật toán dựa trên định lý Bayes về

lý thuyết xác suất để đưa ra các phán đoán cũng như phân loại dữ liệu dựa trên các

dữ liệu được quan sát và thống kê. Naive Bayes là một trong những thuật toán được

ứng dụng rất nhiều trong các lĩnh vực Machine learning dùng để đưa các dự đoán

20

chính xác nhất dự trên một tập dữ liệu đã được thu thập, vì nó khá dễ hiểu và độ chính

xác cao. Nó thuộc vào nhóm Supervised Machine Learning Algorithms (thuật

toán học có hướng dẫn), tức là máy học từ các ví dụ từ các mẫu dữ liệu đã có.

Ví dụ như ta có thể ứng dụng vào việc thiết kế một ứng dụng nghe nhạc có thể

phán đoán được sở thích của nghe nhạc của người dùng dựa trên các hành vi như

nhấn nút “thích” bài hát, “nghe đi nghe” lại nhiều lần các bài hát, “bỏ qua” các bài

hát không thích …. Dựa trên tập dữ liệu đó ta có thể áp dụng NBC để tính toán ra các

phong cách nhạc mà người dùng thích nhất, từ đó chúng ta có thể đưa ra các “gợi ý”

nghe nhạc gần đúng nhất cho người dùng từ việc học hỏi từ những thói quen đó.

Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi

biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và đọc là

“xác suất của A nếu có B”. Đại lượng này được gọi xác suất có điều kiện hay xác suất

hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá trị đó.

Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:

- Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là P(A) và

đọc là xác suất của A. Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm,

nó là “tiên nghiệm” theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về

B.

- Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là P(B) và

đọc là “xác suất của B”. Đại lượng này còn gọi là hằng số chuẩn hóa (normalising

constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.

- Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là “xác suất

của B nếu có A”. Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã

xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra B khi biết A và xác suất xảy ra

A khi biết B.

Tóm lại định lý Naïve Bayes sẽ giúp ta tính ra xác suất xảy ra của một giả

thuyết bằng cách thu thập các bằng chứng nhất quán hoặc không nhất quán với một

giả thuyết nào đó. Khi các bằng chứng tích lũy, mức độ tin tưởng vào một giả thuyết

thay đổi. Khi có đủ bằng chứng, mức độ tin tưởng này thường trở nên rất cao hoặc

21

rất thấp, tức là xác xuất sảy ra giả thuyết sẽ thay đổi thì các bằng chứng liên quan đến

nó thay đổi.

Công thức của định luật Bayes được phát biểu như sau:

(2.1) 𝑃(𝐴|𝐵) = 𝑃(𝐵|𝐴)𝑋 𝑃(𝐴) 𝑃(𝐵)

Trong đó

– P(A|B) là xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan

B đã xảy ra.

– P(B|A) là xác suất xảy ra B khi biết A xảy ra

– P(A) là xác suất sảy ra của riêng A mà không quan tâm đến B.

– P(B) là xác suất xảy ra của riêng B mà không quan tâm đến A.

Ở trên ta có thể thấy xác suất sảy ra của giả thuyết A phụ thuộc và xác suất

của giả thuyết B, nhưng trong thực tế xác suất A có thể phụ thuộc vào xác suất của

nhiều các giác thuyết khác có thể là B1, B2, B3 … Bn. Vậy định luật Bayes có thể

được mở rộng bằng công thức sau:

(2.2) 𝑃(𝐴|𝐵) = (𝑃(𝐵1|𝐴) 𝑥 𝑃(𝐵2|𝐴) 𝑥 𝑃(𝐵3|𝐴) … 𝑥 𝑃(𝐵𝑛|𝐴))𝑥 𝑃(𝐴) 𝑃(𝐵1)𝑥 𝑃(𝐵2)𝑥 𝑃(𝐵3) … . 𝑥𝑃(𝐵𝑛)

 Ví dụ 1 ta có một thống kê như sau:

Quốc hội Mỹ có 200 thượng nghị sĩ trong đó có:

+ 120 thượng nghị sĩ thuộc đảng Dân Chủ.

+ 80 thượng nghĩ sĩ thuộc đảng Cộng Hòa.

+ Số lượng Nữ giới trong đám thượng nghị sĩ là 60 người

+ Còn lại 140 người còn lại là Nam giới (giả dụ chả có ông thượng nghị sĩ nào mới

đi Thái về cả).

+ Và số lượng Nữ giới trong đám Dân Dủ là 30 người.

Vậy nếu tôi chọn ngẫu nhiên một người trong đám thượng nghị sĩ thì tỷ lệ

thượng nghị sĩ là Nữ giới và thuộc đảng Dân Chủ thì tỷ lệ là bao nhiêu?

Áp dụng công thức Bayes ta có thể tính toán được bằng công thức sau:

22

 P(Female|Democrat): Chính là tỷ lệ nữ giới thuộc đảng dân chủ trong cả đám

𝑃(𝐹𝑒𝑚𝑎𝑙𝑒|𝐷𝑒𝑚𝑜𝑐𝑟𝑎𝑡) = 𝑃(𝐷𝑒𝑚𝑜𝑐𝑟𝑎𝑡|𝐹𝑒𝑚𝑎𝑙𝑒) 𝑋 𝑃(𝐹𝑒𝑚𝑎𝑙𝑒) 𝑃(𝐷𝑒𝑚𝑜𝑐𝑟𝑎𝑡)

 P(Demorate|Female): Chính là tỷ lệ nữ giới trong đảng dân chủ

 P(Female): Chính là tỷ lệ nữ giới trong cả đám thượng nghị sĩ

 P(Democrat): Chính là tổng cả đám thượng nghị sĩ.

thượng nghị sĩ cần tính toán

Ở đây với dữ liệu cho bên trên ta có thể tính toán được

- P(Democrat|Female) = Số nữ giới trong đám dân chủ / Tổng đám thượng nghị

đảng dân chủ

- P(Democrat|Female) = 30/ 120 = 0.25

- P(Female) = Số nữ giới trong cả đám thượng nghị sĩ / Tổng đám thượng nghị sĩ

- P(Female) = 60/200 = 0.3

- P(Democrat) = Tổng đám thượng nghĩ sĩ

- P(Democrat) = 1

Vậy ta có thể tín ra P(Female|Democrat) theo công thức Bayes như sau:

- P(Female|Democrat) = (0.25 * 0.3) / 1 = 0.075

Có nghĩa là nếu tôi chọn chọn ngẫu nhiên một người trong đám thượng nghị

sĩ thì tỷ lệ thượng nghị sĩ là Nữ giới và thuộc đảng Dân Chủ thì tỷ lệ sẽ là “7,5%”.

Trên đây là một ví dụ rất đơn giản được tính toán bằng định lý Bayes mà thật

ra nếu bạn nào giỏi có thể tự tính nhẩm ra mà ko cần sử dụng định lý trên.

Vậy tôi sẽ xét tiếp một ví dụ phức tạp hơn với nhiều dữ liệu và giả thuyết

hơn hơn để minh họa định lý “Bayes mở rộng” bên trên.

2.2.3 Đặc điểm của thuật toán Naïve Bayes

 Ưu điểm của thuật toán Naïve Bayes

- Cho phép kết hợp tri thức tiền nghiệm (prior knowledge) và dữ liệu quan sát

được (obserwed data).

- Giả định độc lập: hoạt động tốt cho nhiều bài toán/miền sữ liệu và ứng dụng.

23

- Đơn giản nhưng đủ tốt để giải quyết nhiều bài toán như phân lớp văn bản,

lọc spam,..

- Huấn luyện mô hình (ước lượng tham số) dễ và nhanh

- Tốt khi có sự chệnh lệch số lượng giữa các lớp phân loại.

 Nhược điểm của thuật toán Naïve Bayes

- Giả định độc lập (ưu điểm cũng chính là nhược điểm) hầu hết các trường hợp

thực tế trong đó có các thuộc tính trong các đối tượng thường phụ thuộc lẫn

nhau.

- Vấn đề zero (đã nêu cách giải quyết ở phía trên)

- Mô hình không được huẩn luyện bằng phượng pháp tối ưu mạnh và chặt chẽ.

Tham số mủa mô hình là các ước lượng xác suất điều kiện đơn lẻ. Không tính

đến sự tương tác giữa các ước lượng này.

2.2.4 Ứng dụng của thuật toán Naïve Bayes

 Real time Prediction: Naïve Bayes chạy khá nhanh nên nó thích hợp áp

dụng ứng dụng nhiều vào các ứng dụng chạy thời gian thực, như hệ thống cảnh

báo, các hệ thống trading.

 Multi class Prediction: Nhờ vào định lý Bayes mở rộng ta có thể ứng dụng vào

các loại ứng dụng đa dự đoán, tức là ứng dụng có thể dự đoán nhiều giả thuyết

mục tiêu.

 Text classification/ Spam Filtering/ Sentiment Analysis: Naïve Bayes cũng rất

thích hợp cho các hệ thống phân loại văn bản hay ngôn ngữ tự nhiên vì tính chính

xác của nó lớn hơn các thuật toán khác. Ngoài ra các hệ thống chống thư rác cũng

rất ưu chuộng thuật toán này. Và các hệ thống phân tích tâm lý thị trường cũng

áp dụng NBC để tiến hành phân tích tâm lý người dùng ưu chuộng hay không ưu

chuộng các loại sản phẩm nào từ việc phân tích các thói quen và hành động của

khách hàng.

 Recommendation System: Naive Bayes và Collaborative Filtering được sử

dụng rất nhiều để xây dựng cả hệ thống gợi ý, ví dụ như xuất hiện các quảng cáo

mà người dùng đang quan tâm nhiều nhất từ việc học hỏi thói quen sử dụng

24

internet của người dùng, hoặc như ví dụ đầu bài viết đưa ra gợi ý các bài hát tiếp

theo mà có vẻ người dùng sẽ thích trong một ứng dụng nghe nhạc …

2.3 Phân lớp dữ liệu RandomForest

2.3.1 Định nghĩa thuật toán Ramdomforest

Random Forests là thuật toán học có giám sát (supervised learning). Nó có thể

được sử dụng cho cả phân lớp và hồi quy. Nó cũng là thuật toán linh hoạt và dễ sử

dụng nhất. Một khu rừng bao gồm cây cối. Người ta nói rằng càng có nhiều cây thì

rừng càng mạnh. Random forests tạo ra cây quyết định trên các mẫu dữ liệu được chọn

ngẫu nhiên, được dự đoán từ mỗi cây và chọn giải pháp tốt nhất bằng cách bỏ phiếu.

Nó cũng cung cấp một chỉ báo khá tốt về tầm quan trọng của tính năng.

Random forests có nhiều ứng dụng, chẳng hạn như công cụ đề xuất, phân loại

hình ảnh và lựa chọn tính năng. Nó có thể được sử dụng để phân loại các ứng viên cho

vay trung thành, xác định hoạt động gian lận và dự đoán các bệnh. Nó nằm ở cơ sở

của thuật toán Boruta, chọn các tính năng quan trọng trong tập dữ liệu.

Với bài toán phân lớp: cho một tập dữ liệu huấn luyện

với là vector M chiều, , trong đó: gọi là

lớp, giả sử có C nhãn lớp . Ý tưởng chính của mô hình RF là

lựa chọn ngẫu nhiên 2 lần (ngẫu nhiện mẫu và ngẫu nhiện thuộc tính) trong suốt quá

trình xây dựng cây gồm có 3 pha như sau:

Pha 1: Từ dữ liệu ban đầu D, sử dụng kỹ thuật boostrap (lấy mẫu ngẫu nhiên

có hoàn lại) để tạo ra t tập dữ liệu con S = {𝑆1, 𝑆2..., 𝑆t }.

Pha 2: Trên mỗi tập dữ liệu Sj, xây dựng một cây quyết định ℎ 𝑗. Mô hình

Rừng ngẫu nhiên là mô hình . Thay vì sử dụng tất cả các biến là biến ứng

cử để lựa chọn điểm chia tốt nhất, tại mỗi nút RF chọn ngẫu nhiên một không gian

tập con M’ thuộc tính từ M thuộc tính ban đầu (M’<

định trong mô hình RF là cây quyết định không cắt nhánh.

Pha 3: RF dự đoán nhãn lớp của phần tử mới đến bằng chiến lược bình chọn

số đông của các cây quyết định.

25

Trong quá trình xây dựng các cây quyết định, RF phát triển các nút con từ một

nút cha dựa trên việc đánh giá chỉ số Gini của một không gian con M’ các thuộc tính

được chọn ngẫu nhiên từ không gian thuộc tính ban đầu. Thuộc tính được chọn để

tách nút t là thuộc tính có điểm cắt làm cực tiểu độ hỗn tạp của các tập mẫu sau khi

chia. Công thức tính chỉ số Gini cho nút t như sau:

(2.3)

trong đó là tần suất hiện của lớp

Trong nút t

Hình 2. 5:Mô hình rừng ngẫu nhiên

Gọi s là một giá trị của thuộc tính 𝑋j. Giả sử tách nút t thành 2 nút con: nút trái

𝑡L và nút phải 𝑡R tại s. Tùy thuộc vào 𝑋j ≤ s hoặc 𝑋j> s ta có 2 nút con:

(2.4) 𝑡L = {𝑋j ∈ 𝑡, 𝑋j ≤ 𝑠} 𝑣à 𝑡R = {𝑋j ∈ 𝑡, 𝑋j > 𝑠}

Khi đó, tổng độ đo chỉ số Gini của 2 nút 𝑡L và 𝑡R sau khi dùng thuộc tính 𝑋j

tách nút t tại s là:

(2.5)

Để đạt được điểm chia tốt, tại mỗi nút RF sẽ tìm tất cả các giá trị phân biệt của

tất cả n’ thuộc tính để tìm ra điểm phân tách nút t (điểm s có độ đo Gini (s, t) nhỏ

nhất). Thuộc tính chứa điểm phân tách nút t được gọi là thuộc tính tách nút t.

26

Gọi 𝐼𝑆k (𝑋j), 𝐼𝑆x lần lượt là độ đo sự quan trọng của thuộc tính 𝑋j trong một

cây quyết định Tk (k=1÷m) và trong một rừng ngẫu nhiên. Công thức tính 𝐼𝑆x (𝑋j) và

𝐼𝑆xj như sau:

(2.6)

(2.7)

Chuẩn hóa min - max để chuyển độ đo sự quan trọng thuộc tính về đoạn [0,1],

theo công thức sau:

(2.8)

Kết quả dự đoán của mô hình rừng ngẫu nhiên là kết hợp kết quả của một số

lượng lớn những cây quyết định có mối tương quan thấp (do RF lấy ngẫu nhiên mẫu

và xây 33 dựng các không gian con thuộc tính cũng ngẫu nhiên) nên RF đạt được cả

độ lệch thấp và phương sai thấp. Trong thực tế RF đã trở thành một công cụ tin cậy

cho phân tích dữ liệu chiều cao. Tuy nhiên, tiếp cận cài đặt ban đầu, RF chỉ cho kết

quả tốt trên các dữ liệu có số chiều vừa phải và giảm đáng kể hiệu năng khi xử lý dữ

liệu có số rất chiều cao cỡ hàng nghìn thuộc tính, nhiều nhiễu, dung lượng mẫu ít (bài

toán phân tích dữ liệu gene là một trường hợp cụ thể). Sự chính xác của RF phụ thuộc

vào chất lượng dự đoán của các cây quyết định và mức độ tương quan giữa các cây

quyết định. Chính vì vậy, đã có nhiều đề xuất cho việc cải tiến mô hình Rừng ngẫu

nhiên. Dưới đây sẽ trình bày tóm tắt một số phương pháp cải tiến mô hình Rừng ngẫu

nhiên.

 Các bước thực hiện của thuật toán RamdomForest:

1. Chọn các mẫu ngẫu nhiên từ tập dữ liệu đã cho.

2. Thiết lập cây quyết định cho từng mẫu và nhận kết quả dự đoán từ mỗi quyết

định cây.

27

3. Hãy bỏ phiếu cho mỗi kết quả dự đoán.

4. Chọn kết quả được dự đoán nhiều nhất là dự đoán cuối cùng.

Hình 2.6:Các bước phân lớp với Random Forest

2.3.2 Đặc điểm của Random Forest

Ưu điểm: Random forest được coi là một phương pháp chính xác và mạnh

mẽ vì số cây quyết định tham gia vào quá trình này. Nó không bị vấn đề overfitting.

Lý do chính là nó mất trung bình của tất cả các dự đoán, trong đó hủy bỏ những thành

kiến. Thuật toán có thể được sử dụng trong cả hai vấn đề phân loại và hồi quy. Random

forests cũng có thể xử lý các giá trị còn thiếu. Có hai cách để xử lý các giá trị này: sử

dụng các giá trị trung bình để thay thế các biến liên tục và tính toán mức trung bình

gần kề của các giá trị bị thiếu. Bạn có thể nhận được tầm quan trọng của tính năng

tương đối, giúp chọn các tính năng đóng góp nhiều nhất cho trình phân loại.

Nhược điểm: Random forest chậm tạo dự đoán bởi vì nó có nhiều cây quyết

định. Bất cứ khi nào nó đưa ra dự đoán, tất cả các cây trong rừng phải đưa ra dự đoán

cho cùng một đầu vào cho trước và sau đó thực hiện bỏ phiếu trên đó. Toàn bộ quá

trình này tốn thời gian. Mô hình khó hiểu hơn so với cây quyết định, nơi bạn có thể dễ

dàng đưa ra quyết định bằng cách đi theo đường dẫn trong cây.

Hạn chế: Dữ liệu huấn luyện cần được đa dạng hóa và cân bằng về số nhãn

lớp. Việc không cân bằng nhãn lớp khiến kết quả dự đoán của thuật toán có thể lệch

28

về số đông nhãn lớp. Thời gian huấn luyện của rừng có thể kéo dài tùy số cây và số

thuộc tính phân chia.

Các tính năng quan trọng: Random forest cũng cung cấp một chỉ số lựa chọn

tính năng tốt. Scikit-learn cung cấp thêm một biến với mô hình, cho thấy tầm quan

trọng hoặc đóng góp tương đối của từng tính năng trong dự đoán. Nó tự động tính toán

điểm liên quan của từng tính năng trong giai đoạn đào tạo. Sau đó, nó cân đối mức độ

liên quan xuống sao cho tổng của tất cả các điểm là 1. Điểm số này sẽ giúp bạn chọn

các tính năng quan trọng nhất và thả các tính năng quan trọng nhất để xây dựng mô

hình.

Random forest sử dụng tầm quan trọng của gini hoặc giảm tạp chất trung bình

(MDI) để tính toán tầm quan trọng của từng tính năng. Gini tầm quan trọng còn được

gọi là tổng giảm trong tạp chất nút. Đây là mức độ phù hợp hoặc độ chính xác của mô

hình giảm khi bạn thả biến. Độ lớn càng lớn thì biến số càng có ý nghĩa. Ở đây, giảm

trung bình là một tham số quan trọng cho việc lựa chọn biến. Chỉ số Gini có thể mô tả

sức mạnh giải thích tổng thể của các biến. Random Forests và cây quyết định Random

Forests là một tập hợp của nhiều cây quyết định. Cây quyết định sâu có thể bị ảnh

hưởng quá mức, nhưng Random forests ngăn cản việc lấp đầy bằng cách tạo cây trên

các tập con ngẫu nhiên. Cây quyết định nhanh hơn tính toán. Random forests khó giải

thích, trong khi cây quyết định có thể diễn giải dễ dàng và có thể chuyển đổi thành

quy tắc.

29

2.3.3 Mô hình phân lớp với Random Forest

Hình 2. 7:Mô hình phân lớp với Random Forest

2.3.4 Ứng dụng thuật toán Ramdom Forest

Thuật toán Random Forest được sử dụng trong rất nhiều lĩnh vực khác nhau,

như Ngân hàng, Thị trường chứng khoán, Y học và Thương mại điện tử. Trong Ngân

hàng, ví dụ, nó được sử dụng để phát hiện những khách hàng sẽ sử dụng dịch vụ của

ngân hàng thường xuyên hơn những người khác và trả nợ đúng hạn. Nó cũng được

sử dụng để phát hiện những khách hàng lừa đảo. Trong lĩnh vực chăm sóc sức khỏe,

nó được sử dụng để xác định sự kết hợp chính xác của các thành phần trong y học và

để phân tích lịch sử y tế của bệnh nhân. Và cuối cùng, trong thương mại điện tử được

sử dụng để xác định xem khách hàng có thực sự thích sản phẩm đó hay không.

2.4. Phân lớp dữ liệu KNN (K-nearest neighbor)

2.4.1 Định nghĩa thuât toán KNN

K-nearest neighbor là một trong những thuật toán supervised-learning đơn

giản nhất (mà hiệu quả trong một vài trường hợp) trong Machine Learning. Khi

training, thuật toán này không học một điều gì từ dữ liệu training (đây cũng là lý do

thuật toán này được xếp vào loại lazy learning), mọi tính toán được thực hiện khi nó

cần dự đoán kết quả của dữ liệu mới. K-nearest neighbor có thể áp dụng được vào cả

hai loại của bài toán Supervised learning là Classification và Regression. KNN còn

được gọi là một thuật toán Instance-based hay Memory-based learning.

30

Classifier k-Nearest Neighbors dựa trên việc học bằng sự giống nhau. Các mẫu

huấn luyện được mô tả bởi các thuộc tính số n - chiều. Mỗi mẫu đại diện cho một

điểm trong một không gian n - chiều. Vì vậy tất cả các mẫu huấn luyện được lưu trữ

trong không gian mẫu n - chiều. Khi có một mẫu chưa biết cho trước thì classifier k-

Nearest Neighbors sẽ tìm kiếm trong không gian mẫu k mẫu huấn luyện gần mẫu

chưa biết đó nhất. k mẫu huấn luyện này là k "k-Nearest Neighbors " của mẫu chưa

biết. "Độ gần" được định nghĩa dưới dạng khoảng cách Euclidean, tại đó khoảng cách

Euclidean giữa hai điểm X1 = (𝑥11, 𝑥12, ..., 𝑥1n) và X2 = (𝑥21, 𝑥22, ..., 𝑥2n) là:

(2.9)

Mẫu chưa biết được phân vào lớp phổ biến nhất trong số k láng giềng gần nhất

của nó. Khi k = 1 thì mẫu chưa biết được ấn định lớp của mẫu huấn luyện gần nhất

với nó trong không gian mẫu.

Với KNN, trong bài toán Classification, label của một điểm dữ liệu mới (hay

kết quả của câu hỏi trong bài thi) được suy ra trực tiếp từ K điểm dữ liệu gần nhất

trong training set. Label của một test data có thể được quyết định bằng major voting

(bầu chọn theo số phiếu) giữa các điểm gần nhất, hoặc nó có thể được suy ra bằng

cách đánh trọng số khác nhau cho mỗi trong các điểm gần nhất đó rồi suy ra label.

Chi tiết sẽ được nêu trong phần tiếp theo.

Trong bài toán Regresssion, đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra

của điểm dữ liệu đã biết gần nhất (trong trường hợp K=1), hoặc là trung bình có trọng

số của đầu ra của những điểm gần nhất, hoặc bằng một mối quan hệ dựa trên khoảng

cách tới các điểm gần nhất đó.

Một cách ngắn gọn, KNN là thuật toán đi tìm đầu ra của một điểm dữ liệu mới

bằng cách chỉ dựa trên thông tin của K điểm dữ liệu trong training set gần nó nhất

(K-lân cận), không quan tâm đến việc có một vài điểm dữ liệu trong những điểm gần

nhất này là nhiễu. Hình dưới đây là một ví dụ về knn trong classification với K = 1.

31

Hình 2. 8: Bản dổ của KNN nhiễu k =1

Ví dụ trên đây là bài toán Classification với 3 class: Đỏ, Lam, Lục. Mỗi điểm

dữ liệu mới (test data point) sẽ được gán label theo màu của điểm mà nó thuộc về.

Trong hình này, có một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu. Ví dụ

có một điểm màu Lục ở gần góc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu

Đỏ và Lam. Điểm này rất có thể là nhiễu. Dẫn đến nếu dữ liệu test rơi vào vùng này

sẽ có nhiều khả năng cho kết quả không chính xác.

2.4.2 Mô tả thuật toán K-NN

Các mẫu được mô tả bằng n – chiều thuộc tính số. Mỗi mẫu đại diện cho một

điểm trong một chiều không gian n – chiều. Theo cách này tất cả các mẫu được lưu

trữ trong một mô hình không gian n – chiều.

 Các bước thực hiện cảu Thuật toán K-NN được mô tả như sau:

Bước 1: Xác định số láng giềng gần nhất K.

-

- Bước 2: Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối tượng

trong training data.

- Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gần

nhất với đối tượng cần phân lớp.

- Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất đã xác định

32

- Bước 5: Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho đối

tượng cần phân lớp.

Để hiểu K-NN được dùng để phân lớp thế nào ta xem minh họa dưới đây:

Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đối

tượng cần được xác định lớp cho nó (Query point) là hình mặt cười đỏ. Nhiệm vụ

của chúng ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn

số láng giềng gần nhất với nó. Nói cách khác chúng ta muốn biết liệu Query Point sẽ

được phân vào lớp (+) hay lớp (-)

Hình 2. 9: Minh họa của KNN

Ta thấy rằng:

1- Nearest neighbor : Kết quả là + (Query Point được xếp vào lớp dấu +)

2 - Nearest neighbors : không xác định lớp cho Query Point vì số láng giềng gần

nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (không có lớp nào có số đối tượng

nhiều hơn lớp kia).vấn đề này sẽ được nói rõ cụ thể ở phần sau

5 - Nearest neighbors : Kết quả là – (Query Point được xếp vào lớp dấu – vì trong 5

láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp – nhiều hơn lớp + chỉ có 2

đối tượng).

33

2.4.3 Đặc điểm của thuật toán KNN

 Ưu điểm của KNN

- Độ phức tạp tính toán của quá trình training là bằng 0.

- Việc dự đoán kết quả của dữ liệu mới rất đơn giản.

- Không cần giả sử gì về phân phối của các class.

 Nhược điểm của KNN

- KNN rất nhạy cảm với nhiễu khi K nhỏ.

- Như đã nói, KNN là một thuật toán mà mọi tính toán đều nằm ở khâu test.

Trong đó việc tính khoảng cách tới từng điểm dữ liệu trong training set sẽ tốn

rất nhiều thời gian, đặc biệt là với các cơ sở dữ liệu có số chiều lớn và có nhiều

điểm dữ liệu. Với K càng lớn thì độ phức tạp cũng sẽ tăng lên. Ngoài ra, việc

lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN.

2.4.4 Ứng dụng thuật toán K-NN

 Trong y tế: xác định bệnh lý của người bệnh mới dựa trên dữ liệu lịch sử của

các bệnh nhân có cùng bệnh lý có cùng các đặc điểm đã được chữa khỏi trước

đây, hay xác định loại thuốc phù hợp giống ví dụ chúng tôi trình bày ở trên.

 Trong lĩnh vực ngân hàng: xác định khả năng khách hàng chậm trả các khoản

vay hoặc rủi ro tín dụng do nợ xấu dựa trên phân tích Credit score; xác định

xem liệu các giao dịch có hành vi phạm tội, lừa đảo hay không.

 Trong giáo dục: phân loại các học sinh theo hoàn cảnh, học lực để xem xem cần

hỗ trợ gì cho những học sinh ví dụ như hoàn cảnh sống khó khăn nhưng học lực

lại tốt.

 Trong thương mại điện tử: phân loại khách hàng theo sở thích cụ thể để hỗ trợ

personalized marketing hay xây dựng hệ thống khuyến nghị, dựa trên dữ liệu từ

website, social media.

 Trong kinh tế nói chung: giúp dự báo các sự kiện kinh tế trong tương lai, dự báo

tình hình thời tiết trong nông nghiệp, xác định xu hướng thị trường chứng khoán

để lên kế hoạch đầu tư thích hợp.

34

2.5. Một số thuật toán phân lớp dữ liệu khác

2.5.1 Cây quyết định ứng dụng trong phân lớp dữ liệu

Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà khoa

học trong nhiều lĩnh vực khác nhau đề xuất như mạng notron, mô hình thông kê tuyến

tính /bậc 2, cây quyết định, mô hình di truyền. Trong số những mô hình đó, cây quyết

định với những ưu điểm của mình được đánh giá là một công cụ mạnh, phổ biến và

đặc biệt thích hợp cho data mining nói chung và phân lớp dữ liệu nói riêng. Có thể

kể ra những ưu điểm của cây quyết định như: xây dựng tương đối nhanh; đơn giản,

dễ hiểu. Hơn nữa các cây có thể dễ dàng được chuyển đổi sang các câu lệnh SQL để

có thể được sử dụng để truy nhập cơ sở dữ liệu một cách hiệu quả. Cuối cùng, việc

phân lớp dựa trên cây quyết định đạt được sự tương tự và đôi khi là chính xác hơn so

với các phương pháp phân lớp khác.

2.5.2 Phân lớp với máy vector hỗ trợ (SVM)

Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là

một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương

pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SVM

dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau. Do đó SVM

là một thuật toán phân loại nhị phân. Với một bộ các ví dụ luyện tập thuộc hai thể

loại cho trước, thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại

các ví dụ khác vào hai thể loại đó. Một mô hình SVM là một cách biểu diễn các điểm

trong không gian và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các

ví dụ luyện tập tới ranh giới là xa nhất có thể. Các ví dụ mới cũng được biểu diễn

trong cùng một không gian và được thuật toán dự đoán thuộc một trong hai thể loại

tùy vào ví dụ đó nằm ở phía nào của ranh giới.

35

Chương 3: Ứng dụng phân lớp dữ liệu hoa Iris

3.1. Giới thiệu về hoa Iris và bài toán phân lớp hoa Iris

3.1.1. Giới thiệu về tập dữ liệu hoa Iris

Tập dữ liệu hoa Iris hoặc tập dữ liệu Iris của Fisher là tập dữ liệu đa biến được

giới thiệu bởi nhà thống kê và nhà sinh vật học người Anh Ronald Fisher trong bài

báo năm 1936 Việc sử dụng nhiều phép đo trong các vấn đề phân loại như một ví dụ

về phân tích phân biệt tuyến tính. Đôi khi nó được gọi là tập dữ liệu Iris của Anderson

vì Edgar Anderson đã thu thập dữ liệu để định lượng sự biến đổi hình thái của hoa

Iris của ba loài liên quan. Hai trong số ba loài được thu thập ở Bán đảo Gaspé "tất cả

từ cùng một đồng cỏ, và được chọn vào cùng một ngày và được đo cùng lúc bởi cùng

một người với cùng một bộ máy".

Bộ dữ liệu bao gồm 50 mẫu từ mỗi ba loài Iris (Iris setosa, Iris virginica và Iris

Verscolor). Bốn đặc điểm được đo từ mỗi mẫu: chiều dài và chiều rộng của đài hoa,

chiều dài và chiều rộng cánh hoa, tính bằng centimet. Dựa trên sự kết hợp của bốn

tính năng này, Fisher đã phát triển một mô hình phân biệt tuyến tính để phân biệt các

loài với nhau.

Hình 3. 1: Minh họa về iris flower dataset

36

3.1.2 Sử dụng tập dữ liệu

Dựa trên mô hình phân biệt tuyến tính của Fisher, bộ dữ liệu này đã trở

thành trường hợp thử nghiệm điển hình cho nhiều kỹ thuật phân loại thống kê trong

học máy như máy vector hỗ trợ.

Tuy nhiên, việc sử dụng tập dữ liệu này trong phân tích cụm không phổ biến,

vì tập dữ liệu chỉ chứa hai cụm có sự phân tách khá rõ ràng. Một trong những cụm

chứa Iris setosa, trong khi cụm còn lại chứa cả Iris virginica và Iris Versolor và không

thể tách rời nếu không có thông tin về loài mà Fisher sử dụng. Điều này làm cho dữ

liệu trở thành một ví dụ tốt để giải thích sự khác biệt giữa các kỹ thuật được giám sát

và không giám sát trong khai thác dữ liệu: Mô hình phân biệt tuyến tính của Fisher

chỉ có thể thu được khi biết các loài đối tượng: nhãn lớp và cụm không nhất thiết

giống nhau.

Tuy nhiên, cả ba loài Iris đều có thể tách rời trong hình chiếu trên thành phần

chính phân nhánh phi tuyến. Tập dữ liệu được xấp xỉ bởi cây gần nhất với một số

hình phạt cho số lượng nút, uốn cong và kéo dài quá mức. Các điểm dữ liệu được

chiếu vào nút gần nhất. Đối với mỗi nút, sơ đồ hình tròn của các điểm được chiếu

được chuẩn bị. Diện tích của chiếc bánh tỷ lệ thuận với số lượng điểm được chiếu.

Rõ ràng từ sơ đồ (bên dưới) rằng phần lớn tuyệt đối các mẫu của các loài Iris khác

nhau thuộc về các nút khác nhau. Chỉ một phần nhỏ Iris-virginica được trộn với Iris-

Versolor (các nút màu xanh lam hỗn hợp trong sơ đồ). Do đó, ba loài Iris (Iris setosa,

Iris virginica và Iris Verscolor) có thể được phân tách bằng các thủ tục không giám

sát trong phân tích thành phần chính phi tuyến. Để phân biệt chúng, chỉ cần chọn các

nút tương ứng trên cây chính.

3.1.3 Tập dữ liệu

Bộ dữ liệu chứa một bộ 150 bản ghi bao gồm các thuộc tính – chiều dài

và chiều rộng của đài hoa, chiểu dài và chiều rộng của cánh hoa.

Bảng 1:Thông tin loài Iris-Setosa

Thứ tự

1 Chiều dài đài hoa 5.1 Chiều rộng đài hoa 3.5 Chiều dài cánh hoa 1.4 Chiều rộng cánh hoa 0.2

37

1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 1.5 1.6 1.4 1.1 1.2 1.5 1.3 1.4 1.7 1.5 1.7 1.5 1 1.7 1.9 1.6 1.6 1.5 1.4 1.6 1.6 1.5 1.5 1.4 1.5 1.2 1.3 1.5 1.3 1.5 1.3 1.3 1.3 1.6 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 3.7 3.4 3 3 4 4.4 3.9 3.5 3.8 3.8 3.4 3.7 3.6 3.3 3.4 3 3.4 3.5 3.4 3.2 3.1 3.4 4.1 4.2 3.1 3.2 3.5 3.1 3 3.4 3.5 2.3 3.2 3.5 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1 5.7 5.1 5.4 5.1 4.6 5.1 4.8 5 5 5.2 5.2 4.7 4.8 5.4 5.2 5.5 4.9 5 5.5 4.9 4.4 5.1 5 4.5 4.4 5 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 0.2 0.2 0.1 0.1 0.2 0.4 0.4 0.3 0.3 0.3 0.2 0.4 0.2 0.5 0.2 0.2 0.4 0.2 0.2 0.2 0.2 0.4 0.1 0.2 0.1 0.2 0.2 0.1 0.2 0.2 0.3 0.3 0.2 0.6

38

1.9 1.4 1.6 1.4 1.5 1.4 3.8 3 3.8 3.2 3.7 3.3 5.1 4.8 5.1 4.6 5.3 5 0.4 0.3 0.2 0.2 0.2 0.2

45 46 47 48 49 50

Bảng 2:Thông tin loài Iris-Versicolor

1

7

3.2

4.7

1.4

2 3

6.4 6.9

3.2 3.1

4.5 4.9

1.5 1.5

4

5.5

2.3

4

1.3

5

6.5

2.8

4.6

1.5

6

5.7

2.8

4.5

1.3

7

6.3

3.3

4.7

1.6

8

4.9

2.4

3.3

1

9

6.6

2.9

4.6

1.3

10

5.2

2.7

3.9

1.4

11

5

2

3.5

1

12

5.9

3

4.2

1.5

13

6

2.2

4

1

14

6.1

2.9

4.7

1.4

15

5.6

2.9

3.6

1.3

16

6.7

3.1

4.4

1.4

17

18

5.6 5.8

3 2.7

4.5 4.1

1.5 1

19

20

21

6.2 5.6 5.9

2.2 2.5 3.2

4.5 3.9 4.8

1.5 1.1 1.8

22

23

24

6.1 6.3 6.1

2.8 2.5 2.8

4 4.9 4.7

1.3 1.5 1.2

Chiều dài đài Chiều rộng Chiều dài Chiều rộng Thứ tự hoa đài hoa cánh hoa cánh hoa

39

25

26

2.9 3

4.3 4.4

6.4 6.6

1.3 1.4

27

2.8

4.8

6.8

1.4

28

3

5

6.7

1.7

29

2.9

4.5

6

1.5

30

2.6

3.5

5.7

1

31

2.4

3.8

5.5

1.1

32

2.4

3.7

5.5

1

33

2.7

3.9

5.8

1.2

34

2.7

5.1

6

1.6

35

3

4.5

5.4

1.5

36

37

3.4 3.1

4.5 4.7

6 6.7

1.6 1.5

38

2.3

4.4

6.3

1.3

39

3

4.1

5.6

1.3

40

2.5

4

5.5

1.3

41

2.6

4.4

5.5

1.2

42

3

4.6

6.1

1.4

43

2.6

4

5.8

1.2

44

2.3

3.3

5

1

45

2.7

4.2

5.6

1.3

46

3

4.2

5.7

1.2

47

2.9

4.2

5.7

1.3

48

2.9

4.3

6.2

1.3

49

2.5

3

5.1

1.1

50

2.8

4.1

5.7

1.3

Bảng 3: thông tin Loài Iris-Virginica

3.3 2.7

6 5.1

6.3 5.8

2.5 1.9

1 2

3

5.9

7.1

2.1

3

Chiều dài đài Chiều rộng Chiều dài Chiều rộng Thứ tự hoa đài hoa cánh hoa cánh hoa

40

4 5

6.3 6.5

2.9 3

5.6 5.8

1.8 2.2

6

7.6

3

6.6

2.1

7

4.9

2.5

4.5

1.7

8

7.3

2.9

6.3

1.8

9

6.7

2.5

5.8

1.8

10

7.2

3.6

6.1

2.5

11

6.5

3.2

5.1

2

12

6.4

2.7

5.3

1.9

13

6.8

3

5.5

2.1

14

5.7

2.5

5

2

15

16

5.8 6.4

2.8 3.2

5.1 5.3

2.4 2.3

17

6.5

3

5.5

1.8

18

7.7

3.8

6.7

2.2

19

7.7

2.6

6.9

2.3

20

6

2.2

5

1.5

21

6.9

3.2

5.7

2.3

22

5.6

2.8

4.9

2

23

7.7

2.8

6.7

2

24

6.3

2.7

4.9

1.8

25

6.7

3.3

5.7

2.1

26

7.2

3.2

6

1.8

27

6.2

2.8

4.8

1.8

28

6.1

3

4.9

1.8

29

6.4

2.8

5.6

2.1

30

7.2

3

5.8

1.6

31

7.4

2.8

6.1

1.9

32

33

7.9 6.4

3.8 2.8

6.4 5.6

2 2.2

34

6.3

2.8

5.1

1.5

35

6.1

2.6

5.6

1.4

36

7.7

3

6.1

2.3

37

6.3

3.4

5.6

2.4

41

38

39

3.1 3

5.5 4.8

6.4 6

1.8 1.8

40

3.1

5.4

6.9

2.1

41

3.1

5.6

6.7

2.4

42

3.1

5.1

6.9

2.3

43

2.7

5.1

5.8

1.9

44

3.2

5.9

6.8

2.3

45

3.3

5.7

6.7

2.5

46

3

5.2

6.7

2.3

47

2.5

5

6.3

1.9

48

3

5.2

6.5

2

49

50

3.4 3

5.4 5.1

6.2 5.9

2.3 1.8

3.1.4 Định nghĩa bài toán phân lớp hoa Iris

Với 1 bộ dữ liệu đồ sộ về hoa Iris đã có về các cá thể hoa thuộc các loài Iris

cụ thể, ta không cần phải phân tích về gen hay các phân tích về sinh học phức tạp để

nhận biết ra 1 cá thể hoa đang xét thuộc loài Iris nào, bằng các dữ liệu đã có sẵn và

dựa vào các thuộc tính của cá thể, ta có thể đưa ra nhận biết nhanh chóng cá thể đó

thuộc loài hoa Iris nào bằng các tính toán số học trên máy tính (Machine Learning).

3.2. Thu thập và tiền xử lý dữ liệu

Bộ dữ liệu về hoa Iris được thu thập bởi Edgar Anderson – 1 nhà thực vật học

người mỹ - trên bán đảo Gaspé (là một bán đảo dọc theo bờ biển phía nam của sông

Saint Lawrence ở Quebec, Canada, mở rộng vào vịnh Saint Lawrence)

Sau đó bộ dữ liệu trên được Ronald Aylmer Fisher – 1 nhà thống kê người

Anh đồng thời là 1 nhà di truyền học rút gọn lại, bỏ đi các thuộc tính mang tính chất

mô tả, không đo đạt được giá trị theo số học (như thời điểm gieo trồng, thời điểm nở

hoa, màu sắc hoa, tấc độ tăng trưởng, điều kiện ánh sáng, đất nước và độ ẩm,…)

Bộ dữ liệu sau khi được rút gọn bao gồm 5 thuộc tính:

 4 thuộc tính kiểu số: chiều dài đài hoa, chiều rộng đài hoa, chiều dài cánh

hoa, chiều rộng cánh hoa (đơn vị là cm)

42

 1 thuộc tính còn lại là tên của loài hoa Iris (có 3 loài tất cả: Iris Setosa,

Iris Versicolor, Iris Virginica)

Bảng 4: tổng kết thống kê Giá trị của hoa Iris

Giá trị nhỏ nhất Giá trị lớn nhất Giá trị trung bình

chiều rộng đài hoa

7.9 5.84 chiều dài đài hoa 4.3

chiều dài cánh hoa

4.4 3.05 2.0

chiều rộng cánh hoa

6.9 3.76 1.0

2.5 1.20 0.1

Tỷ lệ phân chia cho mỗi loài trong 3 loài Iris trên là : 33,3%

3.2.1. Làm sạch dữ liệu

 Thiếu giá trị: khi xảy ra sự thiếu thông tin ở 1 thuộc tính nào đó trong 1 bản ghi

của bộ dữ liệu thu thập, khi mà tính đảm bảo số bản ghi chia đều cho 3 loài trên

đã có ( 33,3%) và số lượng bản ghi thiếu là ít ta có thể áp dụng phương pháp

loại bỏ.(thực tế trong bộ dữ liệu trên, không tồn tại giá trị thuộc tính bị thiếu hay

không được điền). Mặt khác khi cần phải điền vào các giá trị thiếu, ta có thể áp

dụng phương pháp điền tự động, thay thế các giá trị thiếu bằng giá trị trung bình

đã được thống kê ở trên

 Nhiễu dữ liệu: khi xuất hiện 1 giá trị bất ngờ nào đó, đột nhiên vượt quá các giá

trị biên đã được thống kê, ta có thể sửa lại giá trị đó thành các giá trị ở vùng

biên theo bảng thống kê ở trên

3.2.2. Chọn lọc dữ liệu

Tích hợp và dư thừa dữ liệu: do dữ liệu trên thu thập từ 1 nguồn duy nhất nên

việc tích hợp là không cần thiết, các thuộc tính của dữ liệu là độc lập nhau, không có

mối quan hệ tương quan nào, các thuộc tính đã được rút gọn chọn lọc nên không cần

việc phân tích dư thừa dữ liệu.

43

3.2.3. Chuyển đổi dữ liệu

Biến đổi dữ liệu: ta sử dụng phương pháp chuẩn hóa dữ liệu về khoảng giá trị

[0,1], phần này sẽ được nói rõ hơn ở phần sau tùy vào phương pháp khai phá dữ liệu

được lựa chọn.

3.2.4. Rút gọn dữ liệu

Như đã nói từ đầu, bộ dữ liệu đã được loại bỏ đi các thuộc tính mang tính chất

mô tả, chỉ giữ lại 1 thuộc tính mô tả duy nhất là tên loài Iris cụ thể.các thuộc tính

mang tính số học còn lại vẫn đảm bảo được tính phân loại (đã được Ronald Aylmer

Fisher – 1 nhà di truyền học người Anh – chọn lọc)

3.3. Giới thiệu về công cụ Weka, cấu hình và ứng dụng phân lớp hoa Iris

3.3.1 Khái niệm

Weka là một bộ phần mềm mã nguồn mở miễn phí khai thác dữ liệu, được

xây dựng bằng ngôn ngữ lập trình Java, theo kiến trúc hướng đối tượng, được tổ

chức thành thư viện phục vụ cho lĩnh vực học máy và khai phá dữ liệu.

Weka là phần mềm thuộc dự án phát triển của Đại học Waikato, New

Zealand, nó là tên viết tắt của Waikato Environment for Knowledge Analysis. Ngoài

khuôn khổ trường đại học, Weka được phát âm vần điệu với Mecca, đây là một loài

chim không bay với bản chất tò mò chỉ tìm thấy trên các đảo ở New Zealand, đồng

thời, loài chim này cũng chính là biểu tượng cho phần mềm Weka.

Hình 3. 2: Loài chim Mecca được chọn là biểu tượng của ứng dụng Weka

44

Weka cung cấp các thuật toán học tập mà bạn có thể dễ dàng áp dụng cho

các bộ dữ liệu (dataset). Nó cũng bao gồm một loạt các công cụ để chuyển đổi các

bộ dữ liệu như các thuật toán để phân loại và lấy mẫu mà không cần phải viết bất

kỳ mã chương trình nào.

Theo KDNuggets (2005) đánh giá, Weka là sản phẩm khai thác dữ liệu được

sử dụng nhiều nhất, nổi bật và hiệu quả nhất năm 2005.

Weka chứa một bộ sưu tập các công cụ trực quan và các thuật toán để phân

tích dữ liệu cũng như lập các mô hình dự đoán, cùng với các giao diện người dung

đồ họa để dễ dàng truy cập các chức năng này.

3.3.2 Ưu điểm của Weka

Phần mềm mã nguồn mở Weka bắt đầu phát triển mạnh mẽ vào năm 1997

và được sử dụng trong nhiều lĩnh vực ứng dụng khác nhau, đặc biệt cho mục đích

giáo dục và nghiên cứu bởi những ưu điểm sau:

 Tính khả dụng miễn phí theo Giấy phép Công cộng GNU (giấy phép cung

cấp bản quyền phần mềm miễn phí, đảm bảo cho người dùng được tự do chạy,

nghiên cứu, chia sẻ và thay đổi phần mềm).

 Được thực hiện bởi ngôn ngữ lập trình Java nên Weka có tính di động khi

nó chạy được trên hầu hết bất kỳ nền tảng điện toán hiện đại nào đã được thử

nghiệm như Linux, Windows hay hệ điều hành Macintosh.

 Tổng hợp toàn diện các kỹ thuật tiền xử lý và mô hình hóa dữ liệu.

 Giao diện đồ họa giúp người dùng dễ sử dụng.

Weka hỗ trợ một số nhiệm vụ khai thác dữ liệu tiêu chuẩn, cụ thể hơn là xử lý

trước dữ liệu, phân cụm, phân loại, hồi quy, trực quan hóa và lựa chọn tính năng. Tất

cả các kỹ thuật của Weka được dựa trên giả định rằng dữ liệu có sẵn dưới dạng một

tệp phẳng hoặc quan hệ, trong đó mỗi điểm dữ liệu được mô tả bằng một

số thuộc tính cố định (thông thường là thuộc tính số hoặc danh nghĩa, nhưng một số

loại thuộc tính khác cũng được hỗ trợ). Weka cung cấp quyền truy cập vào cơ sở dữ

liệu SQL bằng cách sử dụng Java Database Connectivity và có thể xử lý kết quả

được trả về bởi truy vấn cơ sở dữ liệu.

45

3.3.3 Những tính năng vượt trội của Weka

Như đã nói ở trên, Weka được đánh giá là sản phẩm khai thác dữ liệu nổi

bật là bởi những tính năng đặc biệt sau:

- Hỗ trợ nhiều thuật toán máy học và khai phá dữ liệu

- Được tổ chức theo dạng mã nguồn mở để người dùng dễ dàng download và

sử dụng

- Độc lập với môi trường do sử dụng các máy ảo Java (JVM –Java virtual

machine)

- Dễ sử dụng, kiến trúc dạng thư viện dễ dàng cho việc xây dựng các ứng

dụng thực nghiệm

-Giao diện đồ họa (gồm cả tính năng hiển thị hóa dữ liệu)

- Môi trường cho phép so sánh các giải thuật học máy và khai phá dữ liệu.

3.3.4 Kiến trúc thư viện Weka

Để thuận tiện cho việc sử dụng của người dùng, kiến trúc thư viện của Weka

được xây dựng với hơn 600 lớp và được tổ chức thành 10 gói (package), trong đó,

mỗi package sẽ thực hiện một nhiệm vụ chức năng riêng biệt trong quá trình khai

thác dữ liệu. Để người dùng có thể tự xây dựng ứng dụng của bản thân mình thì người

dùng có thể trực tiếp sử dụng những package này để xây dựng các chương trình.

Weka có một số lượng lớn các công cụ hồi quy và phân loại. Các gói bản địa

là các gói được bao gồm trong phần mềm Weka thực thi, trong khi các gói không

phải gốc khác có thể được tải xuống và sử dụng trong môi trường R. Weka. Trong

số các gói bản địa, công cụ nổi tiếng nhất là gói cây mô hình M5p. Một số công cụ

hồi quy phổ biến là:

 M5Rules (thuật toán M5' được trình bày dưới dạng hàm toán học không có

cây)

 DecisionStump (giống như M5' nhưng với một đầu ra số duy nhất trong

mỗi nút)

 M5P (tách miền thành các vùng nhị phân kế tiếp và sau đó phù hợp với các

mô hình tuyến tính cho mỗi nút cây)

46

 RandomForest (một số cây mô hình kết hợp)

 RepTree (một số cây mô hình kết hợp)

 ZeroR (giá trị trung bình của kết quả đầu ra)

 DecisionRules (chia tách dữ liệu thành nhiều vùng dựa trên một biến độc

lập và cung cấp một giá trị đầu ra cho mỗi phạm vi)

 LinearRegression

 Sự hồi quy vector hỗ trợ

 SimpleLinearRegression (sử dụng một biến chặn và chỉ 1 biến đầu vào cho

dữ liệu đa biến)

 MultiLayerPerceptron (mạng nơron)

3.3.5 Các môi trường chức năng chính của Weka

Hình 3. 3: môi trường chính của Weka

Bảng 5: ý nghĩa các môi trường chính trên Weka 3.8.4

Môi trường

Mô tả

Explorer là ứng dụng con cho phép thực nghiệm các nhiệm vụ khai thác dữ

liệu thường gặp như: Tiền xử lý dữ liệu, Khai thác luật kết hợp,

Phân lớp và Gom nhóm

Experimenter Môi trường cho phép tiến hành các thí nghiệm và thực hiện các

kiểm tra thống kê (statistical tests) giữa các mô hình học máy

47

KnowledgeFlow Môi trường cho phép bạn tương tác đồ họa kiểu kéo/thả để thiết

Workbench

kế các bước (các thành phần) của một thí nghiệm

được coi là ứng dụng tất cả trong một, Workbench là ứng

dụng kết hợp tất cả các ứng dụng ở bên trong nó.

Simple CLI cung cấp giao diện dòng lệnh để thực thi Weka, tính năng này

tương tự như cửa sổ Command Prompt của Windows, nó hỗ trợ

cho các hệ điều hành không có chức năng của các cửa sổ dòng lệnh,

SimpleCLI sẽ thực thi trực tiếp các lệnh của Weka mà không cần

thông qua giao diện.

 Môi trường trên thì môi trường Explorer là môi trường được sử dụng nhiều

Hình 3.3: môi trường Explorer của Weka

nhất. Trong Explorer có các chức năng chính là:

48

Bảng 6: ý nghĩa các môi trường Explorer trên Weka 3.8.4

Môi trường Mô tả

Preprocess Để chọn và thay đổi (xử lý) dữ liệu làm việc

Classify Để huấn luyện và kiểm tra các mô hình học máy (phân

lớp, hoặc hồi quy/dự đoán)

Cluster Để học các nhóm từ dữ liệu (phân cụm)

Associate: Để khám phá các luật kết hợp từ dữ liệu

Select attributes Để xác định và lựa chọn các thuộc tính liên quan (quan

trọng) nhất của dữ liệu

Visualize Để xem (hiển thị) biểu đồ tương tác 2 chiều đối với dữ

liệu

3.3.6 Định dạng dữ liệu của weka

Weka hỗ trợ khá nhiều định dạng như:

 ARFF: *.arff

 CVS files: *.cvs

 C4.5 files: *.name, *.data

 XRFF files: *.xrff

Trong đó, ARFF là định dạng chính được sử dụng phổ biến nhất trong Weka.

ARFF là định dạng được sử dụng chính trong Weka, được biểu diễn dưới

một dạng file text có thể đọc được một cách đơn giản bằng các chương trình như

notepad… mà không cần phải có chương trình chuyên dụng. Các dữ liệu trong file

là giá trị thuộc tính của các thể hiện (instance) có chung tập hợp các thuộc tính. ARFF

dễ thao tác và dễ hiểu, người dùng có thể tự tạo cho mình một file ARFF khi hiểu về

những quy định chuẩn của nó. Tuy nhiên, vì là định dạng chuyên dụng cho mỗi

chương trình Weka nên những ứng dụng khác không thể đọc được nó. Do đó, khi sử

dụng kết hợp Weka với các chương trình khác thì người dung buộc phải xây dựng

các module để chuyển kiểu dữ liệu từ ARFF sang kiểu dữ liệu tương ứng với chương

trình đó. Cấu trúc tập tin *.ARFF bao gồm các thành phần:

 Header: chứa khai báo quan hệ, danh sách các thuộc tính (tên, kiểu dữ liệu).

49

 Data: gồm nhiều dòng, mỗi dòng thể hiện giá trị của các thuộc tính cho một

% Title: Iris Plants Database

mẫu.

Chú thích

Tên của tập dữ liệu

@RELATION iris

@ATTRIBUTE sepallength

REAL

@ATTRIBUTE sepalwidth

REAL

Tên thuộc tính

@ATTRIBUTE petallength

REAL

@ATTRIBUTE petalwidth

REAL

@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris virginica}

Thuộc tính phân lớp

@DATA

5.1,3.5,1.4,0.2,Iris-setosa

4.9,3.0,1.4,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

instances

4.6,3.1,1.5,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

 Các kiểu dữ liệu được hỗ trợ trong ARFF bao gồm:

- numeric: là kiểu dữ liệu số, gồm real và integer

- nominal: là kiểu dữ liệu danh sách.

- string: là kiểu dữ liệu dạng chuỗi

- date: kiểu dữ liệu thời gian (ngày tháng năm, giờ phút giây…)

3.4. Áp dụng các thuật toán Naive Bayes, RandomForest và KNN trong phân

lớp dự đoán hoa Iris

Trong luân văn này, ta sẽ áp dụng các phương pháp phân lớp (classification)

lên tập dữ liệu hoa Iris. Các thuật toán được sử dụng gồm: Naive Bayes,

RandomForest, và K-Nearest neighbor.

Mô hình phân lớp dự đoán đề xuất trong đề tài này được hiển thị chi tiết qua

hình dưới đây:

50

Hình 3. 4 : Sơ đồ tổng thể Mô hình phân lớp dự đoán hoa Iris trong luận văn

3.4.1 Áp dụng thuật toán Naive Bayes trong phân lớp dự đoán hoa Iris

Kịch bản 1: thực nghiệm huấn luyện trong chế độ phân lớp Percentage split

để xác định tỉ lệ phân chia, Trong tập dữ liệu trên ta chia tập train (luyện tập) và tập

test (kiểm chứng) theo nguyên tắc như sau:

- Tập luyện tập: Là tập chứa 66% số liệu của bộ dữ liệu đầu vào.

- Tập kiểm chứng: Là tập chứa 34% số liệu của bộ dữ liệu đầu vào còn lại.

1) Nhấp vào nút “Choose” Lựa chọn và chọn Tập tin “Naïve Bayes” trực tuyến

trong nhóm “Bay Bayes”.

2) Nhấp vào tên của thuật toán để xem lại cấu hình thuật toán.

51

Hình 3. 5:Cấu hình tham số cho thuật toán Naive Bayes

Theo mặc định, một phân phối Gaussian được giả sử cho từng thuộc tính số.

Các phân phối này có thể thay đổi thuật toán để sử dụng công cụ ước tính Kernel với

đối số sử dụng Kernel Estimator có thể phù hợp hơn với phân phối thực tế của các

thuộc tính trong tập dữ liệu của bạn. Tuy nhiên, các thông số này có thể tự động

chuyển đổi các thuộc tính số thành thuộc tính danh nghĩa với tham số sử dụng

Supervised Discretization.

3) Nhấn vào “Ok” đây để đóng cấu hình thuật toán.

4) Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đó

bấm Start để tiến hành xây dựng mô hình và đánh giá độ chính xác. Sau chạy

thuật toán trên bộ dữ liệu Iris. Có thể thấy rằng với cấu hình mặc định, thuật

toán Naïve Bayes đạt được độ chính xác 94.1176%.

52

Hình 3. 6: Kết quả phân lớp dữ liệu cho thuật toán Naive Bayes Tập luyện tập

66% (Tập kiểm chứng 34%)

Kết quả:

- Tỷ lệ phân lớp đúng là 94.1176% (48 mẫu)

- Tỷ lệ phân lớp sai là 5.8824% (3 mẫu)

- Mức độ chính của bộ phân lớp đối với mỗi lớp a (Iris-setosa), lớp b (Iris-

versicolor) và lớp c (Iris-virginica) là:

- Ma trận Confusion thể hiện các mẫu Iris-setosa (a) phân đúng là 15, phân sai là 0.

mẫu Iris-versicolor (b) phân đúng là 18, phân sai là 1 và Iris-virginica phân đúng

là 15, phân sai là 2.

- Kịch bản 2: thực nghiệm huấn luyện trong chế độ phân Cross-validation. Tập dữ

liệu sẽ được chia đều k tập (folds) có kích thước xấp xỉ nhau, và bộ phân loại học

được sẽ được dánh giá bởi phướng pháp cross-validation. Trong thực nghiệm này

tôi xác định chọn fold=10, để đạt hiệu quả phân lớp như sau:

53

Sau chạy thuật toán trên bộ dữ liệu Iris. Có thể thấy rằng với cấu hình mặc

định, thuật toán cây quyết định đạt được độ chính xác 96%.

Hình 3. 7:Kết quả phân lớp dữ liệu cho thuật toán Naive Bayes chia tập dữ liệu

thành 10 phần (chọn fold=10)

Kết quả:

- Tỷ lệ phân lớp đúng là 96% (144 mẫu)

- Tỷ lệ phân lớp sai là 4% (6 mẫu)

- Ma trận Confusion thể hiện các mẫu Iris-setosa (a) phân đúng là 50, phân sai

là 0. mẫu Iris-versicolor (b) phân đúng là 48, phân sai là 2 và Iris-virginica

phân đúng là 46, phân sai là 4.

3.4.2 Áp dụng thuật toán RandomForest trong phân lớp dự đoán hoa Iris

Random Forest (rừng ngẫu nhiên). Là một phương pháp phân lớp và hồi quy

dựa trên việc kết hợp kết quả dự đoán của một số lượng lớn các cây quyết định. chúng

ta có thể liên tưởng tới việc bầu cử theo nguyên tắc phổ thông đầu phiếu. Nếu sử dụng

một cây quyết định chẳng khác nào việc bầu cử mà chỉ có 1 người bỏ phiếu. Việc

sinh các cây quyết định từ một mẫu dữ liệu nhằm đa dạng hoá các “phiếu bầu” (giống

như việc mọi thành phần, tầng lớp, giai cấp đều được đi bỏ phiếu) cho kết luận. Việc

54

áp dụng các kỹ thuật sinh ra các mẫu dữ liệu hay việc lựa chọn rẽ nhánh ngẫu nhiên

sẽ tạo ra các cây “dị tật” trong rừng (giống việc cho phép công dân không cần phân

biệt trình độ học vấn, sức khỏe... đi bầu cử). Càng nhiều loại hình, càng nhiều phiếu

bầu sẽ cung cấp cho chúng ta cái nhìn đa chiều, chi tiết hơn và do đó kết luận sẽ có

tính chính xác, gần với thực tế hơn. Trong thực tế RF đã trở thành một công cụ tin

cậy cho phân tích dữ liệu đặc biệt là dữ liệu tin sinh học.

Chọn thuật toán Ramdomforest:

1) Nhấp vào nút “Choose” và chọn “Ramdomforest” trong nhóm “Trees”.

2) Nhấp vào tên của thuật toán để xem lại cấu hình thuật toán.

Hình 3. 8:Cấu hình tham số cho thuật toán Ramdomforest

55

3) Sau đó nhấn vào “Ok” đây để đóng cấu hình thuật toán.

4) Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đó

bấm Start để tiến hành xây dựng mô hình và đánh giá độ chính xác. Sau chạy

thuật toán trên bộ dữ liệu Iris. Có thể thấy rằng với cấu hình mặc định, thuật

toán Ramdomforest đạt được độ chính xác 96%

Hình 3. 9: Kết quả phân lớp dữ liệu cho thuật toán Ramdomforest Tập luyện tập

66% (Tập kiểm chứng 34%)

Kết quả:

- Tỷ lệ phân lớp đúng là 96.0784% (49 mẫu)

- Tỷ lệ phân lớp sai là 3.9216% (2 mẫu)

56

Hình 3. 10:Kết quả phân lớp dữ liệu cho thuật toán Ramdomforest chia tập dữ liệu

thành 10 phần (chọn fold=10)

Kết quả:

- Tỷ lệ phân lớp đúng là 95.3333% (143 mẫu)

- Tỷ lệ phân lớp sai là 4.6667% (7 mẫu)

3.4.3 Áp dụng thuật toán KNN trong phân lớp dự đoán hoa Iris

Thuật toán hỗ trợ cả phân lớp và hồi quy. Nó cũng được gọi là KNN cho ngắn

gọn. Nó hoạt động bằng cách lưu trữ toàn bộ tập dữ liệu huấn luyện và truy vấn nó

để xác định vị trí của các mẫu đào tạo tương tự nhất khi đưa ra dự đoán. Như vậy,

không có mô hình nào ngoài tập dữ liệu huấn luyện thô và phép tính duy nhất được

thực hiện là truy vấn bộ dữ liệu huấn luyện khi yêu cầu dự đoán.

Chọn thuật toán k-Nearest Neighbors:

1) Nhấp vào nút “Choose” và chọn “IBk” trong nhóm “Lazy”.

2) Nhấp vào tên của thuật toán để xem lại cấu hình thuật toán.

57

Hình 3. 11:Cấu hình tham số cho thuật toán k-Nearest Neighbors

Theo hình 3.11 cấu hình Weka cho thuật toán k-Neares Neighbors chúng ta

được xác định giá trị tham số K (số láng giềng gần nhất) K=3 và dùng khoảng cách

Euclidean để tính khoảng cách giữa các trường hợp, điều này tốt cho dữ liệu số có

cùng tỷ lệ. Khoảng cách Manhattan là tốt để sử dụng nếu thuộc tính của bạn khác

nhau về các biện pháp hoặc loại.

3) Sau đó nhấn vào “Ok” đây để đóng cấu hình thuật toán.

4) Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đó bấm

Start để tiến hành xây dựng mô hình và đánh giá độ chính xác. Sau chạy thuật toán

trên bộ dữ liệu Iris. Có thể thấy rằng với cấu hình mặc định, thuật toán KNN đạt

được độ chính xác 96%.

58

Hình 3. 12: Kết quả phân lớp dữ liệu cho thuật toán K-NN Tập luyện tập 66% (Tập kiểm chứng 34%)

Kết quả:

- Tỷ lệ phân lớp đúng là 96.0784% (49 mẫu)

- Tỷ lệ phân lớp sai là 3.9216% (2 mẫu)

Hình 3. 13:Kết quả phân lớp dữ liệu cho thuật toán k-Nearest Neighbors chia tập

dữ liệu thành 10 phần (chọn fold=10)

Kết quả:

- Tỷ lệ phân lớp đúng là 95.3333% (143 mẫu)

- Tỷ lệ phân lớp sai là 4.6667% (7 mẫu)

59

3.5 Đánh giá mô hình phân lớp dữ liệu Hoa IRIS

3.5.1 Đánh giá hiệu năng mô hình sử dụng phương pháp đánh giá chéo (k-fold cross-validation)

Trong nghiên cứu này, ta chọn k=10 để kiểm tra, đánh giá hiệu năng phân lớp/dự

đoán của mô hình đã xây dựng. Theo phương pháp này (10-fold cross-validation), tập

dữ liệu huấn luyện được chia thành 10 con tương đối bằng nhau, mỗi phần luân phiên

được sử dụng để kiểm tra và 9 phần còn lại dùng cho tập huấn luyện.

Kết quả thực nghiệm phương pháp đánh giá chéo 10-fold cross-validation được

Bảng 7: Tổng hợp đánh giá các thuật toán chia tập dữ liệu thành 10 phần (chọn fold=10)

tổng hợp ở bảng 7 bên dưới.

Accuracy Error_ Precision Recall Confusion matrix

Rate Thuật Toán phân lớp

Naïve 96 % 4 % 0.964 0.960 Bayes

Random 95.3 % 4.6 % 0.953 0.953 Forest

KNN 95.3 % 4.6 % 0.953 0.953 (K=3)

3.5.2 Đánh giá mô hình sử dụng phương pháp Hold-out

Bên cạnh việc đánh giá hiệu năng mô hình phân lớp/dự đoán bằng phương pháp

đánh giá chéo 10-fold cross-validation; việc sử dụng bộ dữ liệu kiểm thử độc lập để

đánh giá hiệu năng mô hình giúp việc kiểm thử hiệu năng dự đoán của mô hình mang

tính chất khách quan và trung thực hơn.

Như đã đề cập ở trên, từ bộ dữ liệu hoa Iris đã thu thập trước đó, 34% dữ liệu

được lấy ngẫu nhiên để xây dựng tập dữ liệu kiểm thử độc lập (testing dataset). Qua

quá trình phân tích, đánh giá sử dụng phương pháp kiểm thử độc lập, kết quả chi tiết

60

về hiệu năng dự đoán của mô hình cho các phương pháp phân lớp được tổng hợp và

thể hiện thông quan bảng 8 bên dưới.

Bảng 8: Tổng hợp kết quả đánh giá hiệu năng phân lớp, dự đoán của mô hình bằng phương pháp kiểm thử độc lập

Accuracy Error_ Precision Recall Confusion matrix

Rate

Thuật Toán phân lớp

Naïve

Bayes 94.11 % 5.8% 0.942 0.941

Random 96.07 % 3.92% 0.965 0.961 Forest

KNN 96.07 % 3.92% 0.965 0.961 (K=3)

3.5.3 Kết luận thực nghiệm phân lớp dữ liệu IRIS

Qua kết quả phân lớp trên, ta thấy rằng cả 3 mô hình phân lớp dự đoán hoa

IRIS (dựa trên Weka và các thuật toán Naïve Bayes; Random Forest; và KNN) đều

cho đạt độ chính xác trên 95%. Điều này cho thấy các mô hình phân lớp ở trên hoàn

toàn phù hợp với bài toán dự đoán loại hoa IRIS, đặc biệt là mô hình phân lớp dự

đoán sử dụng thuật toán Naïve Bayes cho hiệu năng dự đoán cao nhất.

Ngoài ra, thông qua các kết quả nhận được từ một số mô hình phân lớp ở trên,

đặc biệt là mô hình phân lớp dựa vào thuật toán Naïve Bayes, ta có thể biết được một

loại hoa IRIS nói chung thuộc vào loài cụ thể (Setosa, Versicolor hoặc Virginica) nào

đó nhờ vào đặc trưng về chiều dài, chiều rộng của đài hoa và cánh hoa.

Về đặc điểm nhận dạng bên ngoài thông qua chiều dài, chiều rộng của đài hoa

và cánh hoa thì hầu hết các hoa IRIS có cánh hoa với chiều rộng nhỏ hơn thì thường

là loài Iris-setosa; những hoa có chiều rộng cánh hoa từ 2.0 cm trở lên thường được

nhận biết là loài Iris-Virginica.

61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

 Kết quả đạt được

Dựa vào các nghiên cứu gần đây trong thuật toán phân lớp dữ liệu, khóa luận

đã nghiên cứu, chọn lọc cũng như phát triển một số vấn đề và đạt được những kết quả

ban đầu như sau:

- Trình bày khái niệm cơ sở lý thuyết của khai phá dữ liệu và phát hiện tri thức,

các thuật toán phân lớp dữ liệu và ứng dụng.

- Tìm hiểu các bài toán phân lớp dữ liệu áp dụng cho phân lớp và dự đoán hoa

IRIS

- Sử dụng công cụ phần mềm Weka ứng dụng trong phân lớp dữ liệu hoa IRIS

bằng thuật toán Naïve Bayes, RamdomForest và K-NN

 Hướng phát triển của luận văn

Trên cơ sở các kết quả đã đạt được, có thể tiếp tục nghiên cứu một số vấn đề

như sau:

- Tìm hiểu thêm vấn đề của phân lớp dữ liệu và ứng dụng các thuật toán

- Nghiên cứu ứng dụng phần mềm Weka để tiến hành phân tích dữ liệu ứng

dụng trong các lĩnh vực cụ thể là phân lớp dữ liệu.

Mặc dù em đã rất cố gắng nhưng do thời gian và hiểu biết về lĩnh vực khai phá

dữ liệu còn hạn chế nên luận văn chắc chắn sẽ không tránh khỏi những khuyết điểm

nhất định. Trong tương lai, em sẽ cố gắng khắc phục những hạn chế, tiếp tục nghiên

cứu những vấn đề đã nêu ở trên. Rất mong nhận được ý kiến đóng góp của các quý

thầy cô và độc giả để luận văn được hoàn thiện hơn.

62

TÀI LIỆU THAM KHẢO

[1]. Đỗ Phúc (2017), Giáo trình khai phá dữ liệu, NXB Đại học Quốc gia Hồ Chí

Minh.

[2]. Nguyễn Hà Nam, Nguyễn Trí Thành, Hà Quang Thụy (2013), Giáo trình khai

phá dữ liệu, NXB Đại học Quốc gia Hà Nội.

[3]. Phan Xuân Hiếu (2013),Bài giảng môn học KPDL và kho dữ liệu, Trường

Đạihọc Công nghệ, Đại học Quốc gia Hà Nội.

[4]. Website: https://ndhcuong.wordpress.com/hoc-phan/khai-pha-du-lieu/

[5]. Website: http://archive.ics.uci.edu/ml/datasets/iris

[6]. Website: https://en.wikipedia.org/wiki/Iris_flower_data_set

[7]. Joydeep Ghosh (2003), Scalable Clustering, Chapter 10, pp. 247-278,

Formal version appears in: The Handbook of Data Mining, Nong Ye (Ed).

[8]. S. Eyheramendy, D. Lewis and D. Madigan, On the Naive Bayes Model for

Text Categorization, In Proceedings of Artificial Intelligence & Statistics 2003.

[9]. Weka 3 - Data Mining with Open Source Machine Learning Software in Java.

Available from: http://www.cs.waikato.ac.nz/ml/weka/.