ĐẠ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 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 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. @RELATION iris @ATTRIBUTE sepallength REAL @ATTRIBUTE sepalwidth REAL @ATTRIBUTE petallength REAL @ATTRIBUTE petalwidth REAL @ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris virginica} @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 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 [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/.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
Môi trường
Mô tả
Chú thích
Tên của tập dữ liệu
Tên thuộc tính
Thuộc tính phân lớp
instances
TÀI LIỆU THAM KHẢO