TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TPHCM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ TRI THỨC
(cid:87) (cid:9) (cid:88)
NGUYỄN QUANG PHƯỚC - 0112193
NNGGHHIIÊÊNN CCỨỨUU TTHHUUẬẬTT TTOOÁÁNN PPHHÂÂNN LLỚỚPP NNHHỊỊ PPHHÂÂNN VVÀÀ ỨỨNNGG DDỤỤNNGG CCHHOO BBÀÀII TTOOÁÁNN PPRROOTTEEIINN FFOOLLDDIINNGG
LUẬN VĂN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
Ths. CHU TẤT BÍCH SAN
Niên khóa 2001 - 2005
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. Tp HCM, ngày tháng năm 2005
ThS. Chu Tất Bích San
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. ............................................................................................................................. .............................................................................................................................
Tp HCM, ngày tháng năm 2005
TS. Lê Hoài Bắc
Lời cám ơn (cid:68)(cid:69)
Sau nhiều tháng nghiên cứu và thực hiện, luận văn đã hoàn tất và đã đạt
được những kết quả nhất định.
Trước hết, em xin được bày tỏ lòng biết ơn đối với cô Chu Tất Bích
San và thày Phạm Nguyễn Anh Huy đã nhiệt tình, tận tâm hướng dẫn và chỉ
bảo cho em thực hiện đề tài luận văn tốt nghiệp này.
Em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, Trường Đại
học Khoa Học Tự Nhiên Tp HCM đã tạo điều kiện cho em thực hiện đề tài tốt
nghiệp này.
Em xin chân thành cám ơn quý thày cô trong Khoa Công Nghệ Thông
Tin đã tận tình giảng dạy, truyền đạt cho em những kiến thức quý báu trong
những năm học vừa qua.
Sau cùng, em xin chân thành cảm ơn gia đình, những người thân và bạn
bè đã giúp đỡ, động viên em trong suốt thời gian học tập và làm luận văn này.
Một lần nữa, xin chân thành cám ơn tất cả mọi người!
TpHCM, Tháng 7/2005
Sinh viên thực hiện
Nguyễn Quang Phước
MỞ ĐẦU
Trong những năm gần đây, khai thác dữ liệu đã trở thành một trong
những hướng nghiên cứu lớn nhất của lĩnh vực khoa học máy tính và công
nghệ tri thức. Khai thác dữ liệu đã và đang ứng dụng thành công vào nhiều
lĩnh vực thương mại, tài chính, thị trường chứng khoáng, y học, thiên văn,
môi trường, giáo dục, viễn thông và sinh học..v.v.
Khối lượng thông tin đã được xử lý và đã được sản sinh trong tất cả các
lĩnh vực hoạt động của loài người đã và đang tăng lên đáng kể, chúng được
lưu trữ trong các cơ sở dữ liệu tập trung hay phân tán. Trong những kho dữ
liệu này ẩn chứa một kho tàng tri thức quý báu, muốn lấy được kho báu này
chúng ta phải có một công cụ đó là các phương pháp khai thác dữ liệu.
Khai thác dữ liệu gồm nhiều hướng tiếp cận. Các kỹ thuật chính được
áp dụng trong lĩnh vự này phần lớn được kế thừa từ các lĩnh vực cơ sở dữ liệu,
máy học (machine learning), trí tuệ nhân tạo (artificial intelligence), lý thuyết
thông tin (information theory), xác suất thống kê (probability & statistics),
tính toán hiệu năng cao (high performance computing), và phương pháp tính
toán mềm (soft computing methodologies). Các bài toán chủ yếu trong khai
thác dữ liệu là khai thác chuỗi (text mining), khai thác web (web mining),
khai thác chuỗi (sequence mining), khai thác luật kết hợp (association rules
mining), lý thuyết tập thô (rough set theory), gom cụm (clustering), phân lớp
(classification)… Trong đó phân lớp là một trong các nội dung quan trọng của
khai thác dữ liệu và đây là một lĩnh vực nghiên cứu có nhiều triển vọng với
nhiều khả năng ứng dụng thực tế. Luận văn này được xây dựng dựa trên ý
tưởng cho một thuật toán giảm thiểu sự phân lớp quá khớp (overfitting) và sự
phân lớp quá khái quát (overgeneralization) của thầy Phạm Nguyễn Anh Huy
(2005). Sau đó, áp dụng thuật toán này cho bài toán protein folding, đây là
một bài toán khám phá cấu trúc 3D của protein. Cấu trúc 3D của protein được
hình thành từ cấu tạo các chuỗi amino axit, nó cung cấp những manh mối
quan trọng về các chức năng của từng protein. Vì vậy, bài toán protein folding
là một bài toán lớn và quan trọng trong ngành sinh học. Phần này sẽ được
trình bày kỹ hơn trong nội dung luận văn.
Luận văn sẽ bao gồm các phần chính như sau:
Chương 1: Giới thiệu tổng quan về bài toán phân lớp (classification)
và protein folding. Chương này sẽ giới thiệu các khái niệm về phân lớp, các
bước để giải quyết một bài toán phân lớp và trình bày vấn đề quá
khớp(overfitting) và quá khái quát (overgeneralization) trong bài toán phân
lớp. Đồng thời giới thiệu bài toán protein folding.
Chương 2 : Trình bày một số thuật toán phân lớp phổ biến hiện nay
như cây quyết định (decision trees), mạng Bayesian, mạng neural và thuật
toán Support Vector Machine (SVM).
Chương 3 : Trình bày chi tiết thuật toán phân lớp kết hợp giữa phân
lớp quá khớp với phân lớp quá khái quát của thầy Phạm Nguyễn Anh Huy.
Chương 4 : Áp dụng bài toán phân lớp cho Protein folding và đánh giá
kết quả được, so sánh kết quả đạt được so với các thuật toán phân lớp khác.
MỤC LỤC
DANH SÁCH CÁC BẢNG ........................................................................................i
DANH SÁCH CÁC HÌNH .......................................................................................iii
CHƯƠNG 1:TỔNG QUAN BÀI TOÁN PHÂN LỚPVÀ PROTEIN FOLDING ....1
1.1. BÀI TOÁN PHÂN LỚP (CLASSIFICATION).............................................2
1.1.1. Giới thiệu.............................................................................................2
1.1.2. Các bước chính để giải quyết bài toán phân lớp.................................3
1.2. OVERFITTING VÀ OVERGENERALIZATION TRONG BÀI TOÁN
PHÂN LỚP...................................................................................................6
1.3. PROTEIN FOLDING.....................................................................................7
CHƯƠNG 2: MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN.............................9
2.1. CÂY QUYẾT ĐỊNH (DECISION TREES) ...............................................10
2.1.1. Định nghĩa và thuật toán tạo cây quyết định.....................................10
2.1.2. Độ đo Entropy...................................................................................13
2.1.3. Rút trích luật phân lớp từ cây quyết định đo Entropy …..................14
2.2. MẠNG BAYESIAN....................................................................................17
2.2.1. Lý thuyết Bayes.................................................................................17
2.2.2.Thuật toán phân lớp Naive Bayes.....................................................18
2.2.3. Mạng Bayesian..................................................................................20
2.2.4.Học (huấn luyện) trên mạng Bayesian...............................................22
2.3. MẠNG NEURAL........................................................................................24
2.3.1. Mạng lan truyền tiến đa tầng.............................................................24
2.3.2. Xây dựng cấu trúc mạng...................................................................25
2.3.3. Lan truyền ngược……………….....................................................26
2.4. SUPPORT VECTOR MACHINE (SVM) ..................................................31
2.4.1 Giới thiệu SVM..................................................................................31
2.4.2. RBF Kernel.......................................................................................32
2.4.3. Tối ưu tham số...................................................................................33
CHƯƠNG 3: THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ
QUÁ KHÁI QUÁT...................................................................................................36
3.1. GIỚI THIỆU................................................................................................37
3.2. MỘT SỐ ĐỊNH NGHĨA..............................................................................38
3.2.1 Homogenous Clauses.........................................................................38
3.2.2. Mật độ của một Homogenous Clause...............................................41
3.3. CHI TIẾT THUẬT TOÁN..........................................................................41
3.3.1. Thuật toán chính................................................................................42
3.3.2. Các thuật toán hỗ trợ ........................................................................46
3.3.2.1. Thuật toán tìm các Positive Clauses....................................46
3.3.2.2. Thuật toán tìm các Homogenous Clauses ..........................48
3.3.2.3. Thuật toán mở rộng Homogenous Clause...........................50
3.3.2.4. Thuật toán gom các Homogenous Clauses..........................53
CHƯƠNG 4: CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN
PROTEIN FOLDING..........................................................................55
4.1. CÀI ĐẶT THUẬT TOÁN...........................................................................56
4.1.1. Chương trình Demo trên không gian hai chiều.................................56
4.1.2. Cài đặt thuật toán trên không gian N chiều.......................................64
4.1.2.1. Chuẩn bị dữ liệu..................................................................64
4.1.2.2. Giao diện và các chức năng của chương trình.....................65
4.2. KẾT QUẢ ĐẠT ĐƯỢC..............................................................................69
4.2.1 Nguồn dữ liệu trên web site
http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data.........................69
4.2.2. Nguồn dữ liệu trên web site
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.........71
4.3. ÁP DỤNG PHÂN LỚP CHO BÀI TOÁN PROTEIN
FOLDING...................................................................................................74
4.3.1. Bài toán Protein Folding...................................................................74
4.3.2. Mô tả cơ sở dữ liệu...........................................................................76
4.3.3. Kết quả thực hiện..............................................................................80
TỔNG KẾT...............................................................................................................85
TÀI LIỆU THAM KHẢO.........................................................................................86
DANH SÁCH CÁC HÌNH
Hình 1-1: Bước 1 - Học để xây dựng mô hình phân lớp........................................4
Hình 1-2: Bước 2 - Kiểm tra và đánh giá...............................................................5
Hình 1-3: Cấu trúc lớp hoàn toàn xoắn ốc (all- α) của protein..............................8
Hình 1-4: Cấu trúc lớp hoàn toàn hình sợi (all- β) của protein..............................8
Hình 2-1: Minh họa cây quyết định với việc phân lớp tế bào ung thư................10
Hình 2-2: Một ví dụ của mạng Bayesian.............................................................21
Hình 2-3: Mạng lan truyền hai tầng.....................................................................25
Hình 2-4: Một neural trong tầng ẩn hoặc tầng xuất.............................................28
Hình 2-5: Bộ phân lớp quá khít và bộ phân lớp tốt hơn......................................34
Hình 3-1: Minh họa định nghĩa Homogenous Clauses........................................39
Hình 3-2: Vùng A được thay thế bằng hai Homogenous Clauses A1 và A2.......40
Hình 3-3: Một tập mẫu học hai chiều...................................................................43
Hình 3-4: Các Positive Clauses tìm được ở bước 1.............................................43
Hình 3-5: Các Homogenous Clauses tìm được ở bước 2.....................................44
Hình 3-6: Các Homogenous Clauses được mở rộng ở bước 3............................45
Hình 3-7: Một ví dụ Positive Clauses với hai ngưỡng khoảng cách....................48
Hình 3-8: Các Homogenous Clauses cho mỗi Positive Clauses..........................50
Hình 3-9: Các Homogenous Clauses sau khi được mở rộng...............................53
Hình 3-10: Minh họa việc gom các Homogenous Clauses..................................54
Hình 4-1: Giao diện chương trình Demo.............................................................56
Hình 4-2: Giao diện chương trình sau khi nhập dữ liệu.......................................60
Hình 4-3: Giao diện chương trình sau khi tìm các Positive Clauses....................61
Hình 4-4: Giao diện chương trình sau khi tìm các Homogenous Clauses...........62
Hình 4-5: Giao diện chương trình sau khi mở rộng Homogenous Clauses.........63
Hình 4-6: Giao diện chương trình phân lớp cho dữ liệu N chiều.........................65
Hình 4-7: Giao diện chương trình sau khi đã học xong tập mẫu học...................67
Hình 4-8: Giao diện chương trình sau khi đã kiểm tra và đánh giá xong tậpmẫu
thử……………………………………………………………………………….68
Hình 4-9: Biểu đồ so sánh kết quả..…………………………………………….71
Hình 4-10: Các bậc cấu trúc khác nhau của phân tử protein……………………75
Hình 4-11: Biểu đồ so sánh kết quả phân lớp cấu trúc Protein............................84
Bảng 4-12: Kết quả phân lớp protein của thuật toán SVM và NN......................84
DANH SÁCH CÁC BẢNG
Bảng 2-: Thuật toán phát sinh cây quyết định......................................................12
Bảng 2-2 : Bảng ngẫu nhiên cho mỗi luật............................................................15
Bảng 2-3 : Thuật giải lan truyền ngược...............................................................31
Bảng 3-1: Thuật toán chính..................................................................................42
Bảng 3-2: Thuật toán tìm các Positive Clauses..............................................47
Bảng 3-3: Thuật toán tìm các Homogenous Clauses cho mỗi Positive Clauses..49
Bảng 3-4: Thuật toán mở rộng Homogenous Clause C.......................................52
Bảng 3-5: Thuật toán gom các Homogenous Clauses.........................................54
Bảng 4-1: Ví dụ một tập mẫu hai chiều...............................................................59
Bảng 4-2: Mô tả các tập dữ liệu trên
websitehttp://www.csie.ntu.edu.tw/~cjlin/papers/guide/data/ ............................69
Bảng 4-3: Kết quả phân lớp các tập dữ liệu trên
websitehttp://www.csie.ntu.edu.tw/~cjlin/papers/guide/data/ ............................70
Bảng 4-4: Kết quả phân lớp theo thuật toán SVM của Cjlin ..............................71
Bảng 4-5: Kết quả của quá trình học và dự đoán lớp cho tập dữ liệu trên website:
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/ .........................74
Bảng 4-6: Kết quả phân lớp protein vào lớp all-α ..............................................81
Bảng 4-7: Kết quả phân lớp protein vào lớp all-β...............................................81
Bảng 4-8: Kết quả phân lớp protein vào lớp α /β ..............................................82
Bảng 4-9: Kết quả phân lớp protein vào lớp α +β .............................................82
Bảng 4-10: Kết quả phân lớp protein của thuật toán phân lớp điều chỉnh tính quá
khớp và quá khái quát dữ liệu..............................................................................83
TỔNG QUAN
CHƯƠNG 1:
TỔNG QUAN
BÀI TOÁN PHÂN LỚP
VÀ PROTEIN FOLDING
1
TỔNG QUAN
1.1. BÀI TOÁN PHÂN LỚP (CLASSIFICATION)
1.1.1. Giới thiệu
Phân lớp (classification) là một tiến trình xử lý nhằm xếp các mẫu dữ
liệu hay các đối tượng vào một trong các lớp đã được định nghĩa trước. Các
mẫu dữ liệu hay các đối tượng được xếp về các lớp dựa vào giá trị của các
thuộc tính (attributes) cho một mẫu dữ liệu hay đối tượng. Sau khi đã xếp tất
cả các đối tượng đã biết trước vào các lớp tương ứng, lúc này mỗi lớp được
đặc trưng bởi tập các thuộc tính của các đối tượng chứa trong lớp đó. Ví dụ:
phân lớp tế bào để xác định tế bào ung thư, giả sử mỗi tế bào có ba thuộc tính
là màu sắc, đuôi và nhân, được biểu diễn tế bào(màu sắc, đuôi, nhân) và ta đã
xếp được ba tế bào vào lớp “tế bào ung thư”, ba tế bào này có giá trị thuộc
tính như sau: tế bào1(tối, 2, 2), tế bào2(tối, 2, 1), tế bào3 (tối, 3, 2). Khi xem
xét một tế bào mới có thuộc tính (tối, 3, 1) ta có thể kết luận nó bị ung thư hay
không bằng cách xác định một lớp mà tế bào này thuộc về, nếu tế bào này
thuộc về lớp “tế bào ung thư” thì tế bào này có thể bị ung thư, ngược lại tế
bào này có thể không bị ung thư.
Phân lớp còn được gọi là phân lớp có giám sát (supervised
classification), là một trong những lĩnh vực phổ biến nhất của học máy
(machine learning) và khai thác dữ liệu (data mining). Nó giải quyết việc xác
định những quy tắc giữa số lượng biến số độc lập và kết quả đạt được hay một
biến số xác định phụ thuộc trong tập dữ liệu được đưa ra. Tổng quát, đưa ra
một tập mẫu học (xi1, xi2, …., xik, yi), i=1,….,N, nhiệm vụ là phải ước lượng
được một bộ phân lớp hay một mô hình xấp xỉ một hàm y = f(x) chưa biết mà
phân lớp chính xác cho bất kỳ mẫu nào thuộc tập các mẫu học. Có nhiều cách
để biểu diễn một mô hình phân lớp và có rất nhiều thuật toán giải quyết nó.
Các thuật toán phân lớp tiêu biểu bao gồm như mạng neural, cây quyết định,
2
TỔNG QUAN
suy luận quy nạp, mạng Beyesian, Support Vector Machine…. Tất cả các
cách tiếp cập này xây dựng những mô hình đều có khả năng phân lớp cho một
mẫu mới chưa biết dựa vào những mẫu tương tự đã được học.
Bài toán phân lớp có thể xử lý thông tin được thu thập từ mọi lĩnh vực
hoạt động của con người và thế giới tự nhiên được biểu diễn dưới dạng các
bảng. Bảng này bao gồm các đối tượng và các thuộc tính. Các phần tử trong
bảng là các giá trị xác định các thuộc tính (attributes hay features) của các đối
tượng. Trong đó số cột chính là số thuộc tính của các đối tượng, mỗi cột là
một thuộc tính và số dòng chính là số đối tượng chứa trong dữ liệu này. Mọi
dữ liệu được biểu diễn dưới các dạng khác có thể được chuyển thành dạng
bảng như trên để thực hiện quá trình phân lớp. Bài toán phân lớp gồm các
bước như sau:
1.1.2. Các bước chính để giải quyết bài toán phân lớp
Phân lớp dữ liệu gồm hai bước xử lý chính:
Bước 1: Học (training), mục đích của bước này là xây dựng một mô
hình xác định một tập các lớp dữ liệu. Mô hình này được xây dựng bằng cách
phân tích các bộ dữ liệu của một cơ sở dữ liệu, mỗi bộ dữ liệu được xác định
bởi giá trị của các thuộc tính. Giả sử mỗi bộ dữ liệu đã thuộc về một trong các
lớp đã đựơc định nghĩa trước, điều này được xác định bởi một trong các thuộc
tính, gọi là thuộc tính phân lớp. Trong ngữ cảnh của bài toán phân lớp, mỗi bộ
dữ liệu được xem như là một mẫu, một ví dụ, hay một đối tượng. Những bộ
dữ liệu được phân tích để xây dựng mô hình phân lớp được lấy từ trong tập
dữ liệu học hay dữ liệu huấn luyện (training data set). Những bộ dữ liệu riêng
lẻ tạo thành tập dữ liệu huấn luyện còn gọi là những mẫu huấn luyện (training
samples) và được chọn ngẫu nhiên từ một kho các mẫu. Bước này được xem
3
TỔNG QUAN
là học có giám sát, ngược lại với học có giám sát là học không có giám sát
(unsupervised learing), tiêu biểu là bài toán gom cụm (clustering) trong đó
các lớp mà các mẫu huấn luyện thuộc về là không biết trước và số lớp dữ liệu
cũng không được biết trước.
Hình 1-1: Bước 1 - Học để xây dựng mô hình phân lớp
Mô hình được đưa ra sau khi đã phân tích xong tập dữ liệu huấn luyện
thường có dạng là những quy tắc phân lớp, cây quyết định hay các công thức
toán học. Ví dụ, hình 1.1 có một cơ sở dữ liệu về thông tin khách hàng, một
mô hình phân lớp (hay luật phân lớp) được xây dựng sau quá trình học ở
bước 1 có thể xác định những khách hàng tin cậy và những khách hàng bình
thường của một cửa hàng. Luật phân lớp này có thể được sử dụng để phân
4
TỔNG QUAN
loại các mẫu dữ liệu liệu trong tương lai, cũng như nó cung cấp một tri thức
hữu ích chứa trong cơ sở dữ liệu.
Bước 2 : Kiểm tra và đánh giá, bước này sử dụng mô hình phân lớp đã
được xây dựng ở bước 1 vào việc phân lớp.
Hình 1-2: Bước 2 - Kiểm tra và đánh giá
Đầu tiên, đánh giá độ chính xác của mô hình hay bộ phân lớp này, bằng
cách sử dụng một tập các mẫu đã được phân lớp để thử (test) gọi là bộ thử
(test set). Những mẫu này được chọn ngẫu nhiên và độc lập với các mẫu đã
được học ở bước 1 gọi là mẫu thử (test sample). Độ chính xác của một mô
hình phân lớp dựa trên bộ thử là tỷ lệ những mẫu thử được phân lớp đúng
bằng mô hình phân lớp đó. Nghĩa là với mỗi mẫu thử, so sánh lớp đúng mà
mẫu thử đó thuộc về với lớp mà mô hình phân lớp này dự đoán cho mẫu thử
đó. Lưu ý, nếu độ chính xác của mô hình này dựa trên tập dữ liệu huấn luyện,
5
TỔNG QUAN
thì mô hình này được đánh giá là tối ưu, nó phân lớp đúng hoàn toàn trên các
mẫu đã được học, trong trường hợp này, mô hình hướng tới sự quá khít
(overfitting) của dữ liệu. Vì vậy phải sử dụng một bộ dữ liệu liệu thử. Nếu độ
chính xác của một mô hình được xem xét có thể chấp nhận được thì mô hình
đó được dùng để phân lớp cho các bộ dữ liệu hoặc các đối tượng trong tương
lai. Ví dụ, mô hình phân lớp được xây dựng trong bước 1 bằng cách phân
tích dữ liệu của các khách hàng đã biết, được dùng để dự đoán sự “đánh giá”
các khách hàng mới trong tương lai ở hình 1-2.
1.2. OVERFITTING VÀ OVERGENERALIZATION TRONG BÀI
TOÁN PHÂN LỚP
Trong những năm gần đây, có rất nhiều thuật toán cải tiến cho bài toán
phân lớp nhưng chưa có một thuật toán nào hay một hệ thống phân lớp nào có
khả năng phân lớp chính xác tuyệt đối cho các mẫu hay các đối tượng mới (là
những mẫu chưa được học). Độ chính xác của các thuật toán phân lớp chỉ đạt
được ở một mức độ nhất định đối với tập mẫu thử. Độ chính xác này có thể
gần như tuyệt đối hay thấp phụ thuộc vào sự trùng hợp của tập mẫu thử với
tập mẫu đã được học. Gốc của vấn đề này là tính quá khớp (overfitting) và
quá khái quát (overgeneralization) của các thuật toán phân lớp này. Một số
thuật toán đưa ra mô hình phân lớp rất phức tạp để có thể phân lớp chính xác
cho các mẫu học nhưng không chắc rằng mô hình này có thể phân lớp chính
xác cho các mẫu mới, đây chính là sự quá khớp. Rõ hơn, thuật toán mang tính
quá khớp dữ liệu nghĩa là mô hình của thuật toán này đưa ra phân lớp rất tốt
cho những mẫu dữ liệu đã biết nhưng không thể phân lớp chính xác cho các
mẫu dữ liệu mới chưa được biết trước. Sự quá khái quát xuất hiện khi hệ
thống sử dụng dữ liệu sẵn có và cố gắng phân tích cho số lượng lớn dữ liệu
6
TỔNG QUAN
với các luật quá khái quát. Cả hai vấn đề này có thể là nguyên nhân của độ
chính xác phân lớp không tốt. Đây là lĩnh vực nghiên cứu của các thuật toán
thống kê, như mạng Neural cây quyết định, Support Vector Machine.
1.3. PROTEIN FOLDING
Protein folding là bài toán tìm kiếm cấu trúc 3D cho một protein, cũng
được gọi là trạng thái tự nhiên của nó. Một cấu trúc 3D của một protein được
tạo thành từ các chuỗi axit amin của nó, mỗi axit amin là một hợp chất hữu
cơ. Có 20 loại axit amin khác nhau, được đặt tên là A, C, G, T,… và một
protein được xem như là một chuỗi các axit amin (ví dụ : AGGTC….). Vì
vậy, bài toán protein folding là tìm ra cách mà một chuỗi axit amin (cấu trúc
1D) này xoắn vào trạng thái tự nhiên (cấu trúc 3D) của nó. Bài toán protein
folding là một lĩnh vực nghiên cứu rộng từ cấu trúc 3D của protein sẽ cung
cấp những manh mối quan trọng về chức năng của một protein, trong khi
những chức năng này không thể tìm hiểu được nhanh chóng và dễ dàng qua
các phương pháp thực nghiệm .
Trong quá trình tìm kiếm cấu trúc 3D của protein phải dựa vào một
bước là tìm cấu trúc 2D, đây là hình dạng bên trong chuỗi axit amin con của
protein, những hình dạng này là một hình xoắn ốc (gọi là α-helix) hoặc một
hình sợi (gọi là β-strand). Một protein được phân loại vào một trong bốn lớp
cấu trúc, phụ thuộc vào thành phần cấu trúc phụ đó là : hoàn toàn xoắn ốc (gọi
là all-α), hoàn toàn hình sợi (gọi là all-β), α /β, α +β. Hình dưới đây minh họa
hình dạng hai lớp cấu trúc all- α và all- β.
7
TỔNG QUAN
Hình 1-3 : Cấu trúc lớp hoàn toàn xoắn ốc (all- α) của protein
Hình 1-4 : Cấu trúc lớp hoàn toàn hình sợi (all- β) của protein
Trong đề tài này, phân lớp cấu trúc protein dựa vào sự tổng hợp các
axit amin (Amino Acid Composition - ACC), ACC là một vector 20 chiều
tương ứng với 20 loại axit amin khác nhau, vector này chỉ rõ tỷ lệ của mỗi
loại axit amin trong sự tổng hợp của 20 loại axit amin khác nhau. Mỗi protein
sẽ được sắp xếp vào một trong bốn lớp cấu trúc all-α, all-β, α /β, α +β.
8
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
CHƯƠNG 2
MỘT SỐ THUẬT TOÁN
PHÂN LỚP PHỔ BIẾN
9
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
2.1. CÂY QUYẾT ĐỊNH (DECISION TREES)
2.1.1. Định nghĩa và thuật toán tạo cây quyết định
Một cây quyết định là một cấu trúc cây, trong đó mỗi node trong biểu
thị cho một phép phân nhánh tương ứng cho một thuộc tính, mỗi nhánh biểu
thị cho một kết quả của một phép thử, các node lá biểu thị cho lớp hoặc các
phân bố lớp. Node trên cùng trong một cây được gọi là gốc. Minh họa cho cây
quyết định, hình 2-1 lấy lại ví dụ phân lớp tế bào ung thư với node trong
được biểu diễn bằng hình chữ nhật, node lá được biểu diễn bằng hình ellipse .
Hình 2-1 : Minh họa cây quyết định với việc phân lớp tế bào ung thư
Để phân lớp một mẫu chưa biết, những giá trị thuộc tính của mẫu đó
được thử ngược lại trên cây quyết định. Một đường dẫn từ gốc đến một node
lá là cơ sở cho việc dự đoán lớp của một mẫu. Cây quyết định có thể dễ dàng
chuyển đổi sang một tập các luật phân lớp.
10
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
Cơ sở toán học của cây quyết định là thuật toán tham lam (greedy
algorithm), thuật toán này đã xây dựng cây quyết định đệ quy từ trên xuống
dưới, theo phương pháp chia để trị. Thuật toán phát sinh cây quyết định dựa
vào dữ liệu học như sau:
Input : những mẫu học được biểu thị bằng những thuộc tính riêng biệt,
một tập các thuộc tính đặc trưng và danh sách các thuộc tính.
Output : một cây quyết định.
1) Khởi tạo một node N;
2) if tất cả các mẫu đều thuộc vào cùng một lớp C then
3) return node N, được xem là một node lá và đặt tên là lớp C;
4) if danh sách thuộc tính là rỗng then
5) return node N, là một node lá được đặt tên lớp là lớp chung nhất
trong các mẫu ; //đây là sự biểu quyết đa số
6) Chọn thuộc tính thử, là một thuộc tính trong danh sách thuộc tính mà
có độ đo cao nhất;
8) Với mỗi giá trị ai đã biết của thuộc tính thử
7) Đặt tên node N với tên của thuộc tính thử;
9) Tạo ra một nhánh từ node N cho điều kiện thuộc tính thử = ai ;
10) Đặt Si là một tập các mẫu lấy trong các mẫu ban đầu với thuộc
tính thử = ai;
11) if Si là rỗng then
11
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
12) Tạo ra một node lá trên cây quyết định, được đặt tên lớp là
lớp chung nhất của hầu hết các mẫu ;
13) else thêm vào một node là cây kết quả của thuật toán tạo cây với
tham số đầu vào(Si, danh sách thuộc tính , thuộc tính thử)
// một node cũng có cấu trúc cây.
Bảng 2-1: Thuật toán phát sinh cây quyết định
Đây cũng là cách xây dựng cây quyết định của thuật toán nổi
tiếng ID3 (Quinlan 1986), theo thuật toán này :
+ Cây khởi đầu là một node đơn biểu thị cho các mẫu học [bước 1)]
+ Nếu tất cả các mẫu đều thuộc cùng một lớp thì node này trở thành
node lá và được đặt tên là tên của lớp các mẫu thuộc về. [bước 2) và 3)]
+ Ngược lại, thuật toán sử dụng một độ đo Entropy hay còn gọi là độ
đo thông tin là một heuristic lựa chọn thuộc tính có khả năng phân chia cao
nhất các mẫu vào các lớp khác nhau [bước 6)], độ đo này sẽ được trình bày
trong phần 2.1.2. Thuộc tính này trở thành thuộc tính thử hay thuộc tính quyết
định [bước7)]. Trong thuật toán này tất cả các thuộc tính đều có giá trị rời rạc.
+ Một nhánh được tạo ra cho mỗi giá trị đã biết của thuộc tính thử và
các mẫu được phân chia tương ứng [bước 8) - 10)]
+ Thuật toán sử dụng quá trình đệ quy tương tự để hình thành nên cây
quyết định cho các mẫu tại mỗi bước phân chia. Mỗi lần, một thuộc tính xuất
hiện tại mỗi node nó không cần xác định bất kỳ node con cháu nào [bước
13)].
+ Sự phân chia đệ quy chỉ dừng khi thỏa một trong các điều kiện sau:
12
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
1. Tất cả các mẫu đã cho thuộc cùng một lớp [bước 2), 3)], hoặc
2. Không còn lại thuộc tính nào để các mẫu có thể phân chia
được nữa [bước )]. Trong trường hợp này, sử dụng sự biểu quyết đa
số [bước5)], kéo theo sự biến đổi node được đưa ra thành node lá và đạt
tên là tên lớp chung nhất trong các mẫu, hoặc
3. Không còn mẫu nào trong nhánh mà có thuộc tính thử =ai
[bước11)]. Trong trường hợp này, một node lá được tạo ra với lớp
chung nhất trong các mẫu [bước 12] .
2.1.2. Độ đo Entropy
Độ đo thông tin được dùng để chọn thuộc tính thử tại mỗi node trong
cây. Độ đo này được xem như là độ đo lựa chọn thuộc tính hay độ đo khả
năng của sự phân chia. Thuộc tính có độ đo thông tin cao nhất (hay sự giảm
thiểu Entropy lớn nhất) được chọn là thuộc tính thử cho node hiện hành, thuộc
tính này làm giảm thiểu những thông tin cần thiết để phân lớp cho các mẫu
trong kết quả của những phần phân chia(gồm các mẫu có cùng giá trị thuộc
tính thử). Đây là cách tiếp cận lý thuyết thông tin tối giản việc thử cần thiết
để phân lớp các đối tượng và đảm bảo một cây đơn giản được tạo thành .
Cho S là một tập gồm s mẫu dữ liệu , giả sử có m lớp riêng biệt Ci,
i=1…m, gọi si là số mẫu trong tập S mà thuộc lớp Ci, thông tin cần thiết để
m
phân lớp các mẫu đã cho được xác định bởi công thức:
i log2(pi) (2.1)
i 1 =
I(s1,s2 ,..., sm) = - ∑ p
Trong đó, pi là tỷ lệ các mẫu thuộc lớp Ci , pi= si / s.
Giả sử thuộc tính A có v giá trị {a1, a2 ,..., av}, thuộc tính A có thể chia
tập S thành v tập con {S1, S2, …, Sv}, trong đó Sj gồm các mẫu trong tập S mà
13
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
có giá trị thuộc tính A là ai. Nếu A được chọn là thuộc tính thử (thuộc tính tốt
nhất để phân chia) thì những tập con Si tương ứng với các nhánh được hình
thành từ node chứa tập S. Đặt sij số mẫu thuộc lớp Ci mà chứa trong tập con
v
mj
j
s
s 1
Sj thì Entropy của thuộc tính A trong các tập con cho bởi công thức:
++ ... s
j 1 =
v
j
s mj
s 1
I(s1j,…, smj) (2.2) E(A) = ∑
++ ... s
j 1 =
được xem như là trọng lượng của tập con Toán hạng ∑
thứ j bằng số mẫu trong tập con mà thuộc tính A có giá trị bằng aj chia cho
tổng số mẫu chứa trong tập S. Hàm Enropy xác định tính không thuần khiết
của một tập con các mẫu dữ liệu, vì vậy phải giảm Entropy trên giá trị đã biết
của thuộc tính A.
Gain(A) = I(s1,s2 ,..., sm) – E(A) (2.3)
Thuật toán này xác định độ đo thông tin cho mỗi thuộc tính, thuộc tính
có độ đo thông tin cao nhất sẽ được chọn làm thuộc tính thử của tập S. Node
A được tạo ra và đặt tên là tên thuộc tính, các nhánh được tạo ra cho mỗi giá
trị của thuộc tính này và các mẫu được chia ra như đã trình bày.
2.1.3. Rút trích luật phân lớp từ cây quyết định
Tri thức trên cây quyết định có thể được rút trích và biểu diễn thành
một dạng luật phân lớp IF - THEN. Khi đã xây dựng được cây quyết định, ta
có thể dễ dàng chuyển cây quyết định này thành một tập các luật phân lớp
tương đương, một luật tương đương với một đường đi từ gốc đến node lá.
Sau khi thu được một tập các luật phân lớp từ cây quyết định, cần phải
tiến hành rút gọn các luật dư thừa nếu có. Một phương pháp đơn giản sử dụng
14
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
các phép thử thống kê để loại bỏ các luật không cần thiết, phương pháp này
bao gồm các bước như sau:
1) Loại bỏ các tiền đề không cần thiết để đơn giản hóa các luật
+ Xây dựng một bảng ngẫu nhiên cho mỗi luật có chứa nhiều hơn
một tiền đề
Các tổng biên C1 C2
x1 x2 R1T= x1+x2 R1
x3 x4 R2T= x3+x4 R2
Các tổng biên C1T= x1+x3 C2T= x2+x4 T= x1+x2+x3+x4
Bảng 2-2 : Bảng ngẫu nhiên cho mỗi luật
Trong đó:
- R1 và R2 biểu diễn các trạng thái boolean của một tiền đề đối
với các kết luận C1 và C2 (C2 là phủ định của C1).
- x1, x2, x3, x4 biểu diễn tần xuất của từng cặp tiền đề - kết luận
- R1T, R2T, C1T, C2T là tổng biên của các dòng và các cột .
- T là tổng tất cả các tần xuất của bảng
+ Kiểm chứng sự độc lập của kết quả đối với một tiền đề bằng một
trong các phép thử sau:
- Phép thử “Khi bình phương” nếu tần xuất mong đợi >10
- Phép thử “Fisher” nếu tần xuất mong đợi <5.
- Phép thử “Yates” nếu tần xuất mong đợi thuộc [5,10]
Chi tiết phương pháp kiểm sự độc lập, cho một bảng ngẫu nhiên
gồm r dòng và cột:
15
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
• Tính các tổng biên.
• Tính tổng tần xuất T của bảng.
iT
R
C
Tính các tần xuất mong đợi cho mỗi ô theo công thức:
iT * T
2χ
ej =
dựa vào tần xuất • Chọn phép thử cần sử dụng để tính
≤
mong đợi cao nhất m, m>10 phép thử “Khi bình phương”,
2χ
5 ≤ m 10 phép thử Yates, m<5 phép thử Fisher.
e i
(
2)
theo phép thử tương ứng: • Tính
x =2χ ∑ − i e i
x i
(|
−
Phép thử “Khi bình phương”
2)5.0| e − i e i
Phép thử Yates =2χ ∑
2χ
• Tính bậc tự do df = (c-1)*(r-1)
và df đã • Sử dụng một bảng “Khi bình phương” với
tính, để xác định xem liệu các kết quả có độc lập với tiền đề tại
mức ý nghĩa đã chọn không.
2χ
Giả sử mức ý nghĩa α =0.05
2 0χ
> thì giữ lại tiền đề này vì kết luận phụ Nếu
thuộc vào nó.
2χ ≤
2 0χ
Nếu thì loại bỏ tiền đề này vì kết luận không
phụ thuộc vào nó.
2) Loại bỏ các luật không cần thiết để rút gọn tập luật
16
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
2.2. MẠNG BAYESIAN
Bayesian là phương pháp phân lớp dựa vào thống kê. Ta có thể dự đoán
xác suất của các lớp trong tập dữ liệu, dựa vào xác suất này có thể xếp các
mẫu vào các lớp riêng biệt. Thuật toán phân lớp Bayesian giả thiết rằng giá trị
các thuộc tính của một lớp độc lập với giá trị của các thuộc tính khác, giả
thiết này còn được gọi là lớp độc lập có điều kiện, nó làm đơn giản các tính
toán sau này. Mạng Bayesian là một đồ thị, trên đồ thị cho phép biểu diễn mối
quan hệ giữa các thuộc tính.
2.2.1. Lý thuyết Bayes
Cho X là một mẫu dữ liệu chưa được phân lớp, gọi H là các giả thiết
nào đó sao cho mẫu X thuộc về một lớp xác định C. Vấn đề phân lớp là xác
định P(H|X), là xác suất giả thiết H được chọn với mẫu dữ liệu X cho trước .
P(H|X) gọi là xác suất đến sau hay xác suất hậu nghiệm, đây là xác suất
cần tính vì nó thể hiện độ tin cậy hay khả năng đối với phân lớp tương ứng
với giả thiết H sau khi có mẫu dữ liệu X. Trái lại, P(H) gọi là xác suất đến
trước hay xác suất tiên nghiệm, là xác suất giả thiết H đúng, trước khi có tập
các mẫu dữ liệu. Có thể thấy rằng, xác suất hậu nghiệm P(H|X) phản ánh sự
ảnh hưởng của mẫu dữ liệu X lên giả thiết H. Ví dụ có tập dữ liệu về trái cây
với các thuộc tính là màu sắc và hình dạng, nếu X là một mẫu có màu đỏ,
hình tròn và H là giả thiết X là trái cà chua thì P(H|X) là xác suất X là trái cà
chua khi biết X có các thuộc tính màu đỏ và hình tròn. Còn P(H) là xác suất
xuất hiện trái cà chua, không quan tâm đến mẫu X.
Tương tự, P(X|H) cũng là xác suất hậu nghiệm, cho biết khả năng mẫu
dữ liệu X thuộc về phân lớp của giả thiết H. Với ví dụ trên P(X|H) là xác suất
X có màu đỏ và hình tròn khi biết X là trái cà chua. P(X) được tính theo công
17
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
thức xác suất đầy đủ, là xác suất mà mẫu X xảy ra, không cần biết thuộc về
phân lớp nào. P(X|H) được xem là xác suất tiên nghiệm vì phải xác định
trước. Trong ví dụ P(X) là xác suất một mẫu X lấy từ trong tập dữ liệu có màu
đỏ và hình tròn.
Các xác suất P(X), P(H) và P(X|H) có thể ước lượng dựa vào thống kê
(
|
)
XHP
(
|
)
=
HXPHP ) ( XP (
)
tập dữ liệu. Lý thuyết Bayes ra công thức tính xác suất P(H|X) như sau:
2.2.2.Thuật toán phân lớp Naive Bayes
Một ứng dụng mang tính thực tiễn của lý thuyết Bayes là thuật toán
phân lớp Naive Bayes. Bộ phân lớp Naive Bayes hoạt động theo các bước
sau:
1) Mỗi mẫu dữ liệu được biểu diễn bằng một vector đặc trưng n chiều,
X=(x1, x2, …, xn) tương ứng với n giá trị của n thuộc tính A1, A2, …, An .
2) Giả sử có m lớp C1, C2, …, Cm , lấy một mẫu dữ liệu X chưa biết
thuộc lớp nào. Thuật toán phân lớp sẽ dự đoán X thuộc về lớp có xác suất hậu
nghiệm cao nhất với điều kiện biết trước X. Đó là bộ phân lớp Naive Bayes
xếp một mẫu X vào lớp Ci nếu và chỉ nếu :
P(Ci|X) > P(Cj|X) với i ≠ j và 1 ≤ i , j ≤ m
i
i
(
|
)
XCP i
(
|
)
=
CXPCP ) ( ( XP
)
Như vậy, P(Ci|X) là cực đại, theo công thứ Bayes thì:
3) P(X) là không đổi với tất cả các lớp, vì vậy muốn P(Ci|X) cực đại thì
P(X|Ci) và P(Ci) cực đại. Nếu xác suất P(Ci) không biết thì thường cho xác
18
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
suất xuất hiện các lớp là như nhau P(C1) = P(C2)= … = P(Cm) và vì vậy
P(X|Ci)P(Ci). Xác suất P(C1) được ước lượng bằng công thức P(C1) = P(X|Ci) là cực đại. Ngược lại xác suất P(Ci) đã biết trước thì cực đại Si , S
trong đó Si là số mẫu trong tập dữ liệu học thuộc về lớp Ci, S là tổng số mẫu
4) Cho các tập dữ liệu với nhiều thuộc tính, thì rất tốn kém để tính
học.
P(X|Ci), để giảm tốn kém này, thuật toán phân lớp Naïve Bayes đưa ra giả
định “lớp độc lập có điều kiện”. Nó cho rằng giá trị của các thuộc tính độc lập
có điều kiện với nhau, không có sự phụ thuộc liên hệ giữa các thuộc tính, vì
n
P(x k
|
Ci)
vậy :
∏
k 1 =
P(X|Ci) =
Các xác suất P(x1|Ci), P(x2|Ci), …, P(xk|Ci) được ước lượng dựa vào
ik
tập dữ liệu học. Trong đó:
i
S , Sik là số mẫu trong S
a) Nếu Ak có giá trị rời rạc, thì P(xk|Ci)=
tập dữ liệu học thuộc lớp Ci có giá trị thuộc tính Ak bằng xk và Si tổng
số mẫu học thuộc lớp Ci.
b) Nếu Ak có giá trị liên tục, thì thuộc tính được giả định có dạng
2
(
)
x
−
Ci
Ci µ− σ 2 2
i
i
i
k
CxP k
e
(
|
)
xg (
,
)
, σµ C C
=
=
i
1 2 σπ C
phân phối chuẩn Gaussian như sau:
19
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
i
i
kxg (
,
)
, σµ C C
Trong đó,
iCµ và
là hàm mật độ Gaussian cho thuộc iCσ lần lượt là kỳ vọng và phương sai các giá trị tính Ak, còn
của thuộc tính Ak của các mẫu học thuộc lớp Ci.
5) Để phân lớp cho một mẫu X, P(X|Ci)P(Ci) được ước lượng cho mỗi
lớp Ci. Mẫu X được xếp vào lớp Ci nếu và chỉ nếu:
i ≠ P(X|Ci)P(Ci) > P(X|Cj)P(Cj) với 1 ≤ j ≤ m, j
Nói cách khác X được xếp vào lớp Ci nếu P(X|Ci)P(Ci) cực đại.
2.2.3. Mạng Bayesian
Thuật toán phân lớp Naïve Bayes đưa ra giả định “lớp độc lập có điều
kiện”, nghĩa là giá trị của các thuộc tính độc lập với nhau, giả định này làm
đơn giản việc tính toán. Khi giả định này đúng thì bộ phân lớp Naïve Bayes
có độ chính xác cao nhất so với các bộ phân lớp khác (cây quyết định, mạng
neural,…). Tuy nhiên trong thực tế lại tồn tại sự phụ thuộc lẫn nhau của các
giá trị. Mạng Bayes chỉ rõ sự phân bố xác suất có điều kiện, nó cho phép “lớp
độc lập có điều kiện” định nghĩa giữa các tập con của các giá trị. Nó thiết lập
một đồ thị biểu diễn các mối liên hệ của các giá trị.
Mạng Bayesian được xác định bởi hai thành phần. Thành phần thứ nhất
là một đồ thị có hướng không chu trình, trong đó mỗi đỉnh biểu diễn cho một
biến ngẫu nhiên và mỗi cung biểu diễn một sự phụ thuộc xác suất. Nếu một
cung được vẽ từ đỉnh Y đến đỉnh Z, thì Y gọi là đỉnh cha hay đỉnh kề trước
của Z, còn Z gọi là đỉnh con của Y. Trên đồ thị, mỗi biến không phụ thuộc
vào điều kiện đỉnh con của nó, giá trị của các biến có thể là rời rạc hoặc liên
tục, nó tương ứng với các thuộc tính trong dữ liệu.
Thành phần thứ hai định nghĩa một mạng Bayesian bao gồm một bảng
xác suất có điều kiện cho mỗi biến. Bảng xác suất có điều kiện cho một biến
20
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
Z xác định rõ phân phối có điều kiện P(Z|Y), với Y là đỉnh cha của Z. Một ví
dụ đơn giản như sau:
Hình 2-2: Một ví dụ của mạng Bayesian
Xác suất chung của bất kỳ bộ dữ liệu (z1, …, zn) tương ứng với các biến
hay các thuộc tính Z1, …, Zn được tính bởi công thức:
21
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
n
i|Yi)
i 1 =
P(z1, …, zn) = ∏ P(z
Trong đó Yi là đỉnh cha của zi trong đồ thị mạng Bayesian và giá trị của
P(zi|Yi) tương ứng với các giá trị trong bảng xác suất có điều kiện của Zi.
Một node trong mạng Bayesian có thể được chọn là một node kết quả,
biểu diễn cho một thuộc tính phân lớp, có thể có nhiều hơn một node kết quả.
Những giải thuật suy diễn để học có thể áp dụng mạng Bayesian này. Quá
trình phân lớp hay nói đúng hơn là việc trả ra tên của một lớp, có thể trả ra
một phân phối xác suất cho thuộc tính phân lớp, tức là dự đoán xác suất cho
mỗi lớp.
2.2.4. Học (huấn luyện) trên mạng Bayesian
Trong việc học hay huấn luyện trên mạng Bayes, một số trường hợp có
khả năng học . Cấu trúc của mạng có thể được cho trước hoặc được suy luận
từ dữ liệu . Các biến trong mạng có thể thấy hoặc ẩn trong toàn bộ hoặc trong
một số mẫu học. Trường hợp dữ liệu ẩn được xem như là hay dữ liệu không
đầy đủ.
Nếu như cấu trúc mạng được biết trước và các biến nhìn thấy thì việc
học trên mạng là tường minh. Nó bao gồm việc tính toán các giá trị trong
bảng xác suất có điều kiện của các biến tương tự như việc tính các xác suất
trong thuật toán Beyesian (mục 2.2.2).
Khi cấu trúc mạng được cho trước và một số giá trị bị ẩn thì phương
pháp Gradient được sử dụng để huấn luyện mạng Bayesian. Một đối tượng
học những giá trị của bảng xác suất có điều kiện. Cho S là một tập gồm s mẫu
học X1,…,Xs gọi wijk là một giá trị trong bảng xác suất có điều kiện của biến
Yi bằng yij có đỉnh cha là Ui =uik. Wijk được xem như trọng số, trọng số này
22
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
được khởi tạo bằng giá trị xác suất ngẫu nhiên. Phương pháp giảm Gradient
thực hiện bằng thuật toán leo đồi tham lam (greedy hill-climbing), tại mỗi
bước lặp, trong số được cập nhật và cuối cùng tiến một giải pháp tối ưu cục
bộ. Mục đích của phương pháp này là làm cực đại xác suất P(S|H), điều này
được thực hiện bằng gradient của lnP(S|H) đã làm cho vấn đề trở nên đơn
giản hơn. Với cấu trúc mạng cho trước và giá trị wijk được khởi tạo, giải thuật
như sau:
s
ik
j
i
d
ln
)
|
)
( YP i
=
XuUyi =
∂
=
∑
ijk
jk
, wi
( | HSP w ∂
d
1 =
ik
i
j
d
YP ( i
,
|
)
=
XuUyi =
1) Tính gradients: với mỗi i, j, k tính :
Xác suất được tính cho mỗi mẫu học Xd lấy
ik
i
j
d
YP ( i
,
|
)
=
XuUyi =
trong tập S. Khi các biến được biểu diễn bằng Yi và Ui là ẩn với một số mẫu
có thể được tính từ những Xd thì xác suất tương ứng
biến dễ dàng thấy của mẫu dữ liệu, sử dụng thuật giải suy diễn trên mạng
Bayesian.
2) Cập nhật trọng số trong giải thuật giảm gradient: các trọng số
ln
|
)
∂
ijk
ijk
w
w
l )(
←
+
ijk
( w
HSP ∂
được cập nhật bởi công thức:
ln
)
∂
Với (l) biểu diễn mức độ học (learning rate) biểu thị khích thước
HSP ( | ijkw ∂
được tính ở bước trước. Mức độ học được đặt là của bước. Và
một hằng số nhỏ.
ijk = 1.0 với mọi
j
3) Trung bình hóa lại trọng số: bởi vì những trọng số wijk là những
giá trị xác suất nên chúng nằm trong khoảng [0…1.0] và ∑ w
23
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
i, k. Những tiêu chuẩn này đạt được bằng cách trung bình hóa trọng số sau khi
cập nhật trọng số ở bước trên.
2.3. MẠNG NEURAL
Mạng neural ban đầu được đề cập bởi các nhà tâm lý học và sinh học,
họ đã cố gắng phát triển và mô phỏng mạng neural vào máy tính. Mạng neural
là một tập hợp các biến nhập /xuất liên kết với nhau, mỗi liên kết được kết
hợp với một trọng số. Một thuật giải học mạng neural phổ biến là giải thuật
lan truyền ngược. Trong quá trình học và phân tích, mạng học bằng cách điều
chỉnh trọng số để có thể dự đoán được lớp cho các mẫu đầu vào. Lợi thế của
mạng neural là nó có thể chấp nhận được dữ liệu có độ nhiễu cao và có thể
phân lớp cho các mẫu chưa được học. Ngoài ra, một số giải thuật đã và đang
được phát triển để rút trích những luật trong mạng neural, vì vậy mạng neural
được ứng dụng trong phân lớp khai thác dữ liệu.
2.3.1. Mạng lan truyền tiến đa tầng
Thuật giải lan truyền ngược trước tiên thực hiện việc học trên mạng lan
truyền tiến đa tầng. Ví dụ mạng lan truyền tiến hai tầng ở hình 2-3, các biến
nhập tương ứng với các thuộc tính của mỗi mẫu học. Các biến nhập được
chuyển đồng thời vào một tầng tạo thành tầng nhập, trọng số đầu ra của các
biến này được chuyển đồng thời vào tầng thứ hai giống như những neural, gọi
là tầng ẩn. Trọng số đầu ra của tầng ẩn này có thể là đầu vào của một tầng ẩn
khác và cứ tiếp tục như vậy. Số tầng ẩn là bất kỳ, tuy nhiên trong thực tiễn,
thường chỉ sử dụng một tầng ẩn. Trọng số đầu ra của tầng ẩn cuối cùng là đầu
vào của tầng xuất, tầng này đưa ra sự dự đoán các mẫu cho trước. Các đơn vị
(neural) trong các tầng ẩn được xem như các đơn vị đầu ra, mạng đa tầng ở
24
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
hình 2-3 có hai tầng chứa các đơn vị đầu ra vì vậy gọi nó là mạng hai tầng,
tương tự mạng chứa hai tầng ẩn gọi là mạng ba tầng, v.v…Gọi là mạng lan
truyền tiến vì trong mạng không có trọng số của một đơn vị nào quay lại làm
đầu vào hay đầu ra của một tầng trước.
Hình 2-3: Mạng lan truyền hai tầng
Mạng đa tầng lan truyền tiến là một hàm tuyến tính, các đơn vị ẩn được
đưa ra đủ để ước lượng một hàm bất kỳ.
2.3.2. Xây dựng cấu trúc mạng
Trước khi bắt đầu học (huấn luyện) mạng, người dùng phải quyết định
cấu trúc mạng bằng việc chỉ rõ số lượng biến đầu vào của tầng nhập, số lượng
tầng ẩn (có thể hơn một), số lượng neural (đơn vị) trong mỗi tầng ẩn và số
lượng neural trong tầng xuất.
Việc chuẩn hóa giá trị biến đầu vào cho mỗi giá trị thuộc tính trong tập
mẫu học sẽ làm tăng tốc độ học và phân tích. Điển hình, giá trị biến đầu vào
được chuẩn hóa sao cho rơi trong khoảng [0… 1.0]. Những thuộc tính có giá
trị rời rạc có thể được mã hóa sao cho chỉ có một đơn vị đầu vào cho mỗi
vùng giá trị. Ví dụ, nếu vùng giá trị của thuộc tính A là {a0, a1, a2} thì chúng
25
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
ta có thể cho ba đơn vị đầu vào đại diện cho thuộc tính A, gọi I0, I1, I2 là các
đơn vị đầu vào, mỗi đơn vị được khởi tạo bằng 0, nếu A = a0 thì I0=1, nếu A =
a1 thì I1=1, và tương tự như thế. Một đơn vị đầu ra có thể đại diện cho hai lớp
(giá trị bằng 0 đại diện cho một lớp, bằng 1 đại diện cho một lớp khác)
Không có quy tắc rõ ràng nào quy định số lượng tốt nhất các neural của
tầng ẩn. Xây dựng mạng là một sự thử nghiệm bởi quá trình xử lý sai số và
có thể ảnh hưởng đến độ chính xác của kết quả học trên mạng. Giá trị khởi tạo
của các trọng số có thể ảnh hưởng đến độ chính xác của kết quả. Mỗi lần,
mạng được học và kết quả của nó chưa thể chấp nhận được thì lặp lại quá
trình học với một cấu trúc mạng khác hoặc khởi tạo các trọng số với giá trị
khác.
2.3.3. Lan truyền ngược
Lan truyền ngược là quá trình xử lý tập các mẫu học được lặp đi lặp lại
nhiều lần, mỗi bước lặp so sánh các lớp mà mạng neural dự đoán cho mỗi
mẫu với các lớp chính xác của các mẫu. Với mỗi mẫu học, các trọng số được
điều chỉnh sao cho cực tiểu sai số trung bình-bình phương(phương sai) của
lớp được dự đoán và lớp thực sự. Sự điều chỉnh các trọng số này được thực
hiện ở bước quay ngược lại tức là bước từ tầng xuất quay ngược qua các tầng
ẩn đến tầng ẩn đầu tiên. Mặc dù không chắc chắn nhưng hầu hết các trọng số
đều hội tụ về một giá trị và quá trình học hết thúc. Thuật toán lan truyền
ngược gồm các bước như sau:
Khởi tạo các trọng số: Các trọng số trong mạng được khởi tạo giá trị
ngẫu nhiên trong khoảng từ -1.0 đến 1.0 hoặc từ -0.5 đến 0.5. Mỗi neural
được kết hợp với một định hướng (bias), giá trị định hướng này được khởi tạo
giống như các trọng số.
26
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
Với mỗi mẫu học X được xử lý theo các bước sau:
Lan truyền tiến các đầu vào: trong bước này, mạng đầu vào và đầu ra
của mỗi neural trong tầng ẩn và tầng xuất được tính toán. Đầu tiên mẫu học
được đưa vào tầng nhập của mạng. Mạng đầu vào cho mỗi neural trong các
tầng ẩn và tầng xuất được tính toán như là một ánh xạ của các biến đầu vào
(hình 2-4). Đầu vào của một neural là đầu ra của những neral ở tầng trước nối
đến nó. Để tính toán mạng đầu vào của neural thì mỗi đầu vào của nó được
cộng dồn bởi trọng số tương ứng. Cho một neural j ở trong tầng ẩn hay tầng
j
i
j
I
Ow ij
=
+
θ
∑
i
xuất thì mạng đầu vào Ij của j là :
Trong đó wij là trọng số của liên kết từ neural i ở tấng trước đến neural
j, Oi là đầu ra của neural i từ tầng trước và jθ là định hướng của neural. Sự
định hướng này có tác dụng như là một ngưỡng, nó làm thay đổi cách hoạt
động của neural.
Mỗi neural ở trong tầng ẩn hay tầng xuất có một mạng đầu vào của nó
và áp dụng một hàm kích hoạt đến nó (hình 2-4), hàm này là hàm logistic
hoặc hàm simoid. Cho mạng đầu vào Ij của neural j thì đầu ra Oj của neural j
j
O
=
jI
1
e
1 +
được tính như sau:
Hàm này được xem như là một hàm nén (squashing), vì nó ánh xạ một
miền đầu vào rộng lớn lên một vùng nhỏ hơn trong khoảng từ 0 đến 1. Hàm
logistic là một hàm không tuyến tính (phi tuyến) và có khả năng phân loại,
cho phép thuật giải lan truyền ngược mô hình theo bài toán phân lớp là tuyến
tính liên tục.
27
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
Hình 2-4 : Một neural trong tầng ẩn hoặc tầng xuất
Sai số lan truyền ngược: sai số được lan truyền ngược bởi quá trình
cập nhật trọng số và định hướng làm sai số trong việc dự đoán của mạng. Cho
neural j trong tầng xuất, sai số Errj được tính bởi:
Errj = Oj(1 - Oj)(Tj - Oj)
Với Oj là giá trị thực sự của đầu ra của neural j,và Tj là đầu ra đúng dựa
trên lớp đã biết của mẫu học được cho, Oj(1 - Oj) là đạo hàm của hàm logistic.
Để tính độ sai số của tầng ẩn với neural j, tổng các sai số của trọng số
của các neural trong tầng kế tiếp liên kết đến neural j được tính trước. Sai số
j
j
j
k
jk
Err
O
1(
O
)
Err
w
=
−
∑
k
của tầng ẩn với neural j là:
Trong đó wik là trọng số của liên kết từ neural j đến neural k trong tầng
kế tiếp, và Errk là sai số của neural k
Trọng số và định hướng được cập nhật đã làm sai số lan truyền. Trọng
số được cập nhật bởi công thức sau, với ∆wij là phần thay đổi trong trọng số
wij.
28
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
∆wij = (l)ErrjOj
wij = wij +∆wij
Biến l biểu thị khả năng học hay mức độ học, là một hằng số có giá trị
trong khoảng 0 và 1. Học lan truyền ngược sử dụng phương pháp giảm
gradient để kiếm ra một tập trọng số mà có thể mô hình hóa bài toán phân lớp
cho trước sao cho cực tiểu sai số bình phương-trung bình giữa lớp được mạng
dự đoán và lớp thực sự của mẫu học đã cho. Mức độ học ngăn không cho sa
lầy vào cực tiểu cục bộ trong không gian quyết định nghĩa là các trọng số xuất
hiện để hội tụ, nhưng nó không phải là giải pháp tốt nhất và đi tới khám phá
cực tiểu toàn cục. Nếu mức độ học quá nhỏ thì việc học tiến triển rất chậm.
Nếu mức độ học quá lớn thì các giải pháp không thỏa đáng. Một kinh nghiệm
là cho mức độ học l=t với t là số lần lặp đi lặp lại trên tập dữ liệu học cho tới
lúc này.
jθ∆ là phần thay
jθ .
Sự định hướng được cập nhật theo công thức sau, với
jErr
)(=∆θ j l
j
∆
j = θθ
∆+
j θ
đổi trọng
Điều kiện kết thúc: Quá trình học mạng được bắt đầu với các giá trị
trọng số tùy ý và tiến hành lặp đi lặp lại. Mỗi lần lặp được gọi là một thế hệ.
Trong mỗi thế hệ mạng điều chỉnh các trọng số sao cho sai số giảm dần và
quá trình học kết thúc khi:
+ Tất cả ∆wij ở thế hệ trước nhỏ hơn một ngưỡng xác định nào đó
hoặc
+ Tỷ lệ các mẫu bị phân lớp sai ở thế hệ trước nhỏ hơn một ngưỡng
nào đó hoặc
29
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
+ Lặp đủ số lượng thế hệ xác định trước.
Trong thực tế, có khi phải trải qua hàng trăm ngàn thế hệ thì các trọng
số mới có thể hội tụ. Tóm tắt thuật giải lan truyền ngược cho mạng neural học
để phân lớp được trình bày như sau:
Input: tập các mẫu học, mức độ học l, một mạng đa tầng
1) Khởi tạo tất cả các trọng số và định hướng trong mạng;
Output: một mạng neural đã được học để phân lớp cho các mẫu
2) While điều kiện kết thúc chưa thỏa {
3) for với mỗi mẫu X trong tập các mẫu học {
//lan truyền tiến các đầu vào
j
i
I
Ow ij
=
+
θ j
4) for với mỗi neural j của tầng ẩn hoặc tầng xuất
∑
i
5) ; // tính mạng đầu vào cho neural j
j
O
=
6) for với mỗi neural j của tầng ẩn hoặc tầng xuất
jI
1
e
1 +
; //tính mạng đầu ra cho neural j 7)
//Sai số lan truyền ngược
8) for với mỗi neural j trong tầng xuất
9) Errj = Oj(1 - Oj)(Tj - Oj) ; //tính sai số
j
j
k
jk
j
Err
O
1(
Err
w
=
10) for với mỗi neural j trong tầng ẩn
∑− ) O
k
11) ; //tính sai số
12) for với mỗi trọng số wij trong mạng {
13) ∆wij = (l)ErrjOj ; //độ tăng trọng số
14) wij = wij +∆wij; } //cập nhật trọng số
15) for với mỗi định hướng iθ trong mạng {
30
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
jErr
)(=∆θ l j
j
j j ∆+=∆ θθθ
16) ; //độ tăng định hướng
17) ; } //cập nhật định hướng
18) }
19) }
Bảng 2-3 : Thuật giải lan truyền ngược
2.4. SUPPORT VECTOR MACHINE (SVM)
2.4.1 Giới thiệu SVM
SVM là một phương pháp mới để phân lớp dữ liệu. Nó dễ sử dụng hơn
mạng neural, tuy nhiên nếu không sử dụng nó chính xác thì dễ bị bỏ qua một
số bước đơn giản nhưng cần thiết, dẫn đến kết quả không được thỏa mãn.
Mục đích của phương pháp SVM là phát sinh ra một mô hình từ tập mẫu học,
mô hình này có khả năng dự đoán lớp cho các mẫu thử. SVM tìm ra một hàm
quyết định phi tưyến trong tập mẫu học bằng cách ánh xạ hoàn toàn các mẫu
học vào một không gian đặc trưng kích thước lớn có thể phân lớp tuyến tính
và phân lớp dữ liệu trong không gian này bằng cách cực đại khoảng cách lề
(geometric margin) và cực tiểu lỗi học cùng một lúc. Vấn đề tối ưu chủ yếu
n
t ww
C
+
i
ξ
∑
min w ξ,
i
1 2
i
1
=
t
[ xwy
b
]
,0
i
,...,1
+
1 −≥
≥
=
là:
i
i
, ξξ i i
±
phụ thuộc vào: n
i
1 tùy theo x Trong đó xi là mẫu học thứ i trong tập mẫu học, yi =
thuộc lớp nào, ở đây giả sử chỉ có hai lớp + và -, n là số lượng các mẫu học
31
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
trong tập mẫu học, C là một tham số điều chỉnh sự cân bằng giữa khoảng cách
iξ là lỗi học của mẫu thứ i.
lề và lỗi học,
n
n
(
,
x
)
−
α i
xKyy j
i
i
j
j
∑
∑
max iα
1 2
i
1
i
,
j
αα i 1
=
=
n
y
0,0
, iC
1
,...,
α
=
≤
α
≤
=
i
i
i
Vấn đề này tương ứng với một hàm kernel như sau:
∑
i
1
=
phụ thuộc vào: n
iα biểu thị sự phụ thuộc của mẫu thứ i vào giới hạn C, và K(xi, xj)
Với
là hàm kernel trong trường hợp phân lớp phi tuyến (không tuyến tính). Có
một số hàm kernel cơ bản sau đây:
T xj
+ Tuyến tính: K(xi, xj) = xi
T xj + r)d , γ >0
+ Đa thức: K(xi, xj) = (γxi
+ Hàm vòng RBF (Radial Basic Function) : K(xi, xj) = exp(-γ||xi - xj||2)
, γ>0
T xj + r)
+ Hàm chữ S Sigmoid: K(xi, xj) = tanh(γxi
2.4.2. RBF Kernel
Khi sử dụng SVM, ta cần phải chọn một hàm kernel và một tham số C.
Thông thường hàm RBF kernel được chọn đầu tiên vì nhiều lý do. Hàm phi
tuyến RBF kernel ánh xạ tập mẫu học vào một không gian có kích thước rộng
lớn, vì vậy nó không giống với hàm kernel tuyến tính, nó có thể áp dụng cho
trường hợp mối quan hệ giữa lớp và thuộc tính là phi tuyến. Hơn nữa hàm
~ C
kernel tuyến tính là một trường hợp đặc biệt của hàm RBF kernel nên hàm
γ). Ngoài ra hàm sigmoid kernel cũng thực hiện giống như
kernel tuyến tính với tham số sẽ thực hiện giống như hàm RBF kernel với
các tham số (C,
32
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
hàm RBF kernel với một tham số đích xác. Lý do thứ hai là số lượng siêu
tham số (siêu biến) tức là tham số ảnh hưởng đến độ phức tạp của mô hình
được chọn lựa. Hàm kernel đa thức có nhiều siêu biến hơn hàm RBF kernel.
≤
Cuối cùng là hàm RBF kernel có độ phức tạp ít hơn. Một điểm quan trọng là:
0 < Kij
T xj + r >1) và bằng không với (γxi
γxi
định, vô cực với ( 1, điều này trái ngược với hàm kernel đa thức có giá trị không xác T xj + r<1) khi độ đo d
lớn. Ngoài ra phải chú ý rằng hàm kernel không thể tính phải tích vô hướng
của hai vector.
2.4.3. Tối ưu tham số
Có hai tham số khi sử dụng hàm RBF kernel là C và γ. C và γ là tốt
nhất hay tối ưu cho mỗi bài toán thì chưa được biết trước, vì vậy phải tìm
kiếm các tham số tối ưu này. Mục đích là nhận ra (C, γ) tốt nhất để mà bộ
phân lớp có thể dự đoán chính xác lớp cho các mẫu chưa biết. Chú ý rằng nó
có thể không hữu ích để đạt được độ chính xác học cao, nghĩa là bộ phân lớp
dự đoán chính xác những mẫu dữ liệu học đã biết lớp trước. Vì vậy một cách
thông thường là chia tập mẫu dữ liệu học thành hai phần, một phần được xem
như không biết trong quá trình học của bộ phân lớp. Sau đó, sự dự đoán chính
xác trên phần này có thể chính xác hơn tương ứng với việc thực hiện phân lớp
trên dữ liệu chưa biết. Một phiên bản cải tiến của thủ tục này là “giao hiệu
suất” (cross - validation).
Trong v-nhóm cross-validation, đầu tiên chia tập mẫu học thành v tập
con bằng nhau. Lần lượt mỗi tập con sẽ được thử với bộ phân lớp được học
trên v-1 tập con còn lại. Theo cách đó, mỗi mẫu trong tập các mẫu học được
dự đoán một lần, như vậy độ chính xác cros-validation là tỷ lệ phần trăm các
mẫu dữ liệu được phân lớp chính xác.
33
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
a) dữ liệu học và bộ phân lớp quá khít b) áp dụng bộ phân lớp quá khít
trên dữ liệu thử
c) dữ liệu học và bộ phân lớp tốt hơn d) áp dụng bộ phân lớp tốt hơn
trên dữ liệu thử
Hình 2-5 : Bộ phân lớp quá khít và bộ phân lớp tốt hơn
34
MỘT SỐ THUẬT TOÁN PHÂN LỚP PHỔ BIẾN
Thủ tục cross-validation có thể ngăn ngừa vấn đề quá khớp
(overfitting). Ví dụ ở hình 2-5 minh họa bài toán phân lớp nhị phân (hình tam
giác và hình tròn), hình tam giác và hình tròn tô đen là dữ liệu học, hình tam
giác và hình tròn trắng là dữ liệu thử. Độ chính xác trên các mẫu thử mà bộ
phân lớp dự đoán ở hình 2-5 a) và b) là chưa thỏa mãn vì nó quá trên khít dữ
liệu học. Một hướng khác, bộ phân lớp ở hình 2-5 c) và d) không quá khớp
trên dữ liệu học đưa ra cross-validation tốt hơn cũng như độ chính xác của các
mẫu thử cao hơn.
Một lưới tìm kiếm (grid search) trên C và γ sử dụng cross-validation
được dùng, về cơ bản các cặp (C, γ) đã được thử và một trong số chúng đã
làm cho cross-validation tối ưu, và cặp (C, γ) này được chọn lọc. Chúng ta
thấy rằng nếu C và γ là dẫy tăng số mũ là một phương pháp tốt để tạo ra
tham số tốt, ví dụ C=2-5, 2-3, …, 215, γ= 2-15, 2-13 ,…, 23.
Trong một số trường hợp phương pháp SVM thì bất lợi và kết quả khó
chấp nhận. Thông thường phương pháp SVM phân lớp tốt với dữ liệu không
có nhiều thuộc tính, nếu gặp phải dữ liệu có hàng ngàn thuộc tính thì phải
chọn ra nhóm thuộc tính với số lượng vừa phải để áp dụng cho SVM.
35
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
CHƯƠNG 3
THUẬT TOÁN PHÂN LỚP
ĐIỀU CHỈNH SỰ QUÁ KHỚP
VÀ QUÁ KHÁI QUÁT
36
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
3.1. GIỚI THIỆU
Hầu hết các thuật toán phân lớp đều tập trung vào việc học quy nạp để
làm giảm thiểu lỗi phân lớp cho tập mẫu học. Theo cách này, các thuật toán
phân lớp hy vọng sẽ có một độ chính xác cao trong việc dự đoán lớp cho các
mẫu dữ liệu mới cần được xác định lớp. Vì vậy chúng dễ mắc phải vấn đề quá
khớp hoặc quá khái quát dữ liệu.
Các thuật toán cây quyết định như ID3, C4.5 đã có kết quả tốt đối với
những tập dữ liệu tương đối nhỏ. Nhưng khi áp dụng cho các cơ sở dữ liệu
lớn hoặc cơ sở dữ liệu của thế giới thực thì chúng gặp phải những hạn chế.
Hạn chế đầu tiên là tất cả các mẫu học phải được lưu trong bộ nhớ, nhưng
trong lĩnh vực khai thác dữ liệu, các tập mẫu học chứa hàng triệu mẫu rất phổ
biến. Vì vậy phải chuyển đổi các mẫu học giữa bộ nhớ chính và bộ nhớ cache
với bô nhớ phụ. Hoặc phải chia tập mẫu học thành các tập con và xây dựng
từng cây quyết định cho mỗi tập con. Bộ phân lớp của từng cây quyết định sẽ
được kết hợp lại nên hiệu quả của cây quyết định sẽ không còn cao như đối
với tập mẫu nhỏ. Hạn chế thứ hai, cây quyết mang tính quá khớp dữ liệu, vì
trong khi xây dựng cây quyết định, tại bước đặt tên lớp cho node lá nếu tất cả
các node thuộc cùng một lớp thì node lá được đặt tên là lớp đó. Ngược lại đã
hết thuộc tính thử và các mẫu không thuộc cùng một lớp thì node lá được đặt
tên là lớp mà nhiều mẫu thuộc về nhất. Như vậy, lớp này đúng với dữ liệu học
nhưng khi dự đoán cho các mẫu mới thì chưa chắc đã chính xác.
Đối với mạng neural, tiêu biểu là thuật giải lan truyền ngược, mục đích
của thuật giải không phải là nhớ tất cả các mẫu học mà xây dựng một mạng
đa tầng để phân lớp cho các mẫu mới. Trong mạng đa tầng có rất nhiều trọng
số, việc học quá nhiều trên các tầng ẩn của mạng có thể dẫn đến mất sự khái
37
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
quát hóa dữ liệu, vì mạng thực hiện một đường biên phân lớp phức tạp cho
những mẫu học đặc biệt mà không chú ý đến những thuộc tính chung.
Sau đây là một phương pháp phân lớp dựa trên sự điều chỉnh để tránh
được sự quá khớp dữ liệu đồng thời cũng tránh được sự quá khái quát dữ liệu,
phương pháp này được thầy Phạm Nguyễn Anh Huy đề xuất. Phương pháp
này thực hiện bằng cách cân bằng hai tính chất quá khớp và quá khái quát dữ
liệu trên tập mẫu học được cho. Theo phương pháp này, mỗi mẫu được xem
như một điểm trong không gian n chiều, với n là số thuộc tính của mẫu dữ
liệu. Một lớp được đại diện bằng một số vùng chứa các mẫu thuộc cùng một
lớp trong không gian n chiều này. Để tránh khỏi sự quá khớp và quá khái quát
thì độ lớn của các vùng này không được quá nhỏ cũng không quá lớn mà phụ
thuộc vào mật độ của các mẫu học chứa trong nó. Sau khi đã xác định được
các vùng này, muốn phân lớp cho một mẫu mới thì dựa vào vị trí của mẫu này
trong không gian n chiều, nếu mẫu này thuộc vào một trong các vùng vừa
được xác định thì nó thuộc cùng một lớp với các mẫu trong vùng đó.
3.2. MỘT SỐ ĐỊNH NGHĨA
Phần này sẽ định nghĩa cho một số thuật ngữ được dùng trong thuật
toán phân lớp điều chỉnh sự quá khớp và quá khái quát (quá rộng), đồng thời
trình bày ý tưởng của thuật toán này. Đây là cơ sở cho sự nghiên cứu và phát
triển bài toán phân lớp điều chỉnh hai tính chất nói trên.
3.2.1 Homogenous Clauses
Cho một tập dữ liệu, gồm nhiều mẫu mà mỗi mẫu chỉ thuộc về một
trong hai lớp, giả sử hai lớp này là positive và negative. Ánh xạ toàn bộ tập
mẫu này vào không gian n chiều, với n là số thuộc tính của tập dữ liệu, mỗi
mẫu được xem như một điểm trong không gian. Vị trí của một mẫu trong
38
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
không gian này được xác định bởi giá trị các thuộc tính của nó. Ví dụ, trong
không gian hai chiều, vị trí của một mẫu được xác định bởi tọa độ x và y, x
tương ứng với giá trị thuộc tính thứ nhất, y tương ứng với giá trị thuộc tính
thứ hai. Homogenous Clauses là các vùng trong không gian này, sao cho mỗi
vùng chỉ chứa các mẫu thuộc cùng một lớp positive hoặc negative, các mẫu
này phải tập trung đều và không thể chia nhỏ vùng này ra được. Các
Homogenous Clauses được xác định bởi tập dữ liệu học, sau đó sử dụng
chúng để phân lớp cho các mẫu dữ liệu mới. Một mẫu dữ liệu mới được phân
lớp bẳng cách xét xem vị trí của nó trong khong gian có thuộc một trong các
Homogenous Clauses hay không.
Ví dụ, hình 3-1 sau đây minh họa định nghĩa về Homogenous Clauses,
giả sử các mẫu chỉ có hai thuộc tính nên được biểu diễn trên mặt phẳng hai
chiều X-Y. Trong hình này, vùng A không phải là Homogenous Clause còn
vùng B là một Homogenous Clause. Ví dụ này chỉ chứa các mẫu thuộc cùng
một lớp, được biểu thị là những hình tròn nhỏ.
Hình 3-1: Minh họa định nghĩa Homogenous Clauses
39
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Vùng B là một Homogenous Clause vì các mẫu chứa trong nó là đồng
nhất và phân bố đều. Như vậy, những mẫu chưa được phân lớp mà chứa trong
không gian B có khả năng được xác định chính xác lớp mà nó thuộc về, đó là
lớp của các mẫu được biểu thị bằng các hình tròn nhỏ trong vùng B của hình
3-1 ở trên.
Vùng A ở hình trên không phải là một Homogenous Clause, bởi vì các
điểm trong vùng A phân bố không đều, vẫn còn vùng trống trong không gian
này. Vùng trống này nằm ở góc trái trên và phía dưới của vùng A. Vùng A có
thể được chia thành những vùng nhỏ hơn sao cho các điểm trong đó đồng nhất
và phân bố đều, xem hình sau:
Hình 3-2: Vùng A được thay thế bằng hai Homogenous Clauses A1 và A2
Việc phân lớp dựa vào các Homogenous Clauses có thể đạt được độ
chính xác cao, nếu các mẫu dữ liệu chứa trong chúng đồng nhất và phân bố
đều. Trong hình 3-2 ở trên, vùng A được thay thế bằng hai vùng nhỏ hơn
nhưng các điểm chứa trong chúng thì đồng nhất hơn, gọi là A1 và A2. Hai
vùng này là hai Homogenous Clauses. Trong vùng A1 và A2, các điểm đồng
40
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
nhất và phân bố đều hơn các điểm trong vùng A ban đầu. Vùng A1 và vùng
A2 bây giờ không còn những khoảng trống.
3.2.2. Mật độ của một Homogenous Clause
Mật độ là số lượng những vật chứa trong một diện tích không gian. Mật
độ nói lên mức độ nhiều và khoảng cách sát nhau của các vật trong một không
gian chứa chúng. Tương tự như vậy đối với Homogenous Clause, mật độ của
một Homogenous Clause là tỷ lệ giữa số lượng mẫu dữ liệu chứa trong nó với
diện tích không gian của nó. Mật độ của một Homogenous Clause quyết định
Homogenous Clause đó sẽ được mở rộng như thế nào. Nếu một Homogenous
Clause có mật độ cao thì vùng mở rộng của nó sẽ lớn, ngược lại thì vùng mở
rộng của nó nhỏ hơn. Trong ứng dụng ta cho Homogenous Clause là hình tròn
đối với các mẫu dữ liệu hai chiều, và là hình cầu nếu các mẫu dữ liệu có nhiều
chiều (n chiều). Và mật độ của một Homogenous Clause là số mẫu dữ liệu có
trong Homogenous Clause này. Trong minh họa của hình 3-2 thì các
Homogenous Clauses A1, A2 và B có mật độ lần lượt là 4, 7 và 10.
3.3. CHI TIẾT THUẬT TOÁN
Phần này sẽ trình bày chi tiết thuật toán điều chỉnh sự quá khớp và quá
khái quát dữ liệu. Thuật toán này sử dụng những ý tưởng được trình bày ờ
phần 3.2 làm cơ sở cho thuật toán xác định và mở rộng các Homogenous
Clauses. Phần này được chia thành hai phần nhỏ: phần một trình bày thuật
toán chính cho quá trình xác định mở rộng các Homogenous Clauses, phần
hai sẽ trình bày một số thuật toán hỗ trợ cho thuật toán chính mở rộng các
Homogenous Clauses này. Trong đề tài này chỉ nghiên cứu bài toán phân lớp
nhị phân nên các mẫu dữ liệu chỉ thuộc một trong hai lớp positive và
41
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
negative. Giả thiết các Homogenous Clauses chỉ chứa các mẫu thuộc lớp
positive.
3.3.1. Thuật toán chính
Đây là thuật toán học, mục đích của thuật toán này là xác định các
Homogenous Clauses của tập dữ liệu học, sau đó dựa vào mật độ của từng
Homogenous Clause mà mở rộng nó với kích thước lớn hay nhỏ tùy thuộc độ
lớn của mật độ. Tóm tắt thuật toán này như sau:
Input: tập dữ liệu học
Output: một sự phân lớp phù hợp (tức là các Homogenous Clauses đã được
mở rộng dùng để dự đoán lớp cho các mẫu mới)
Bước 1: Tìm các Positive Clauses
Bước 2: For với mỗi Positive Clauses P Do
Tìm các Homogenous clauses
Bước 3: For với mỗi Homogenous Clauses C Do
+ Tìm mật độ của C, gọi là D
+ Mở rộng C dựa trên mật độ D của nó
Bảng 3-1: Thuật toán chính
Theo thuật toán này, bước 1 tìm các Positive Clauses, một Positive
Clause là một vùng chứa các mẫu thuộc lớp positive, các mẫu này có thể phân
bố không đều và trong Positive Clauses còn chứa các khoảng trống. Trong
ứng dụng, Positive Clause được xem là hình chữ nhật đối với dữ liệu có hai
thuộc tính và là hình hộp đối với dữ liệu có n thuộc tính (n>2). Giả sử, cho
một tập dữ liệu hai chiều (nghĩa là mỗi mẫu có hai thuộc tính), gồm các mẫu
42
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
đã được phân lớp như sau, mẫu dấu “+” thuộc lớp positve, mẫu dấu “-” thuộc
lớp negative. Dựa vào giá trị hai thuộc tính của các mẫu ta được sự phân bố
của chúng trên mặt phẳng, chiều ngang đại diện cho thuộc tính thứ nhất, chiều
dọc đại diện cho thuộc tính thứ hai, ta có hình minh họa như sau:
Hình 3-3: Một tập mẫu học hai chiều
Sau bước 1 tìm các Positive Clauses, có được hai Positive Clauses được
biễu diễn bằng hai hình chữ nhật như sau:
Hình 3-4 : Các Positive Clauses tìm được ở bước 1
Mục đích của việc tìm các Positive Clauses là gom các điểm thuộc lớp
positive thành các nhóm dựa vào sự phân bố của chúng trong không gian dữ
43
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
liệu. Trong thực tế, các đối tượng thuộc cùng một lớp thường có một số thuộc
tính tương tự nhau, vì vậy chúng thường gom thành từng nhóm trong không
gian biểu diễn cho tập dữ liệu. Việc tìm các Positve Clauses đã thu hẹp không
gian dữ liệu chứa các đối tượng cần quan tâm, nghĩa là xác định được các
vùng mà các điểm positive có thể xuất hiện, các điểm positive không thể nằm
ngoài các vùng này được. Nếu thuật toán dừng ở đây thì sẽ mắc phải vấn đề
quá khái quát dữ liệu. Nghĩa là nếu dùng các Positive Clauses để dự đoán lớp
cho các mẫu dữ liệu mới thì xảy ra hiện tượng, dự đoán chính xác cho các
mẫu positive nhưng cũng có nhiều mẫu negative bị dự đoán thành positive.
Vì vậy, phải thực hiện một bước tiếp theo là tìm các Homogenous
Clauses, tức là tìm các vùng chỉ chứa các điểm positive mà trong đó các điểm
này phân bố đều và sát nhau. Nếu một điểm positive không nằm gần bất kỳ
một điểm positive khác thì Homogenous Clause chứa điểm này chỉ có duy
nhất một điểm positive. Do đó mỗi Homogenous Clause phải hoàn toàn nằm
trong một Positive Clause. Một Positive Clause có thể chứa một hoặc nhiều
Homogenous Clauses. Ví dụ, tìm các Homogenous Clauses cho hai Positive
Clauses trong hình 3-4 ở trên, các Homogenous Clauses được biểu diễn bằng
các hình tròn.
Hình 3-5: Các Homogenous Clauses tìm được ở bước 2
44
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Nhưng nếu sử dụng các Homogenous Clauses vừa tìm được ở bước 2
để phân lớp cho các mẫu mới thì thuật toán rơi vào trường hợp quá khớp dữ
liệu. Bởi vì các điểm positive chứa trong các Homogenous Clauses này phân
bố quá sát nhau, hay nói cách khác các Homogenous Clauses này quá hẹp chỉ
chứa chính xác các điểm positive trong tập mẫu học mà không có khả năng
chứa thêm các điểm positive mới chưa được học.
Như vậy, cần phải có một bước hiệu chỉnh tính quá khớp dữ liệu của
các Homogenous Clauses sao cho cũng không mắc phải tính quá khái quát dữ
liệu như ở bước 1. Bước này thực hiện bằng cách mở rộng các Homogenous
Clauses dựa vào mật độ của chúng. Các Homogenous Clauses sau khi được
mở rộng là những hình đồng dạng với các Homogenous Clauses ban đầu và
tâm của chúng thì không thay đổi chỉ có kích thước bán kính được tăng lên.
Mật độ của một Homogenous Clause càng lớn thì kích thước bán kính tăng
càng nhiều. Ví dụ, mở rộng các Homogenous Clauses trong hình 3-5 ở trên,
được kết quả như sau:
Hình 3-6: Các Homogenous Clauses được mở rộng ở bước 3
Các Homogenous Clauses sau khi được mở rộng là kết quả cuối cùng
của thuật toán phân lớp điều chỉnh sự quá khớp và quá khai quát dữ liệu. Việc
45
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
sử dụng các Homogenous Clauses này để phân lớp cho các tẫp dữ liệu mới
hay các tập dữ liệu trong tương lai có thể đạt kết quả cao. Bởi vì các
Homogenous Clauses này đã giảm được tính quá khớp dữ liệu của các
Homogenous Clauses trước khi mở rộng và cũng giảm được tính quá khái
quát dữ liệu của các Positive Clauses. Chi tiết từng bước sẽ được trình bày
trong phần tiếp theo sau.
3.3.2. Các thuật toán hỗ trợ
3.3.2.1. Thuật toán tìm các Positive Clauses
Thuật toán tìm các Positive Clauses được tóm tắt như sau:
Input: tập dữ liệu học, gồm các mẫu positive và các mẫu negetive
Output: các Positive Clauses
1) Xác định một ngưỡng khoảng cách Threshold.
2) Chọn ngẫu nhiên N mẫu positive.
3) For i=1 to N Do{
4) Chọn ngẫu nhiên một mẫu positive m trong tập dữ liệu học
5) If mẫu m chưa thuộc vào một Positive Clauses nào then{
6) Tạo ra một Positive Clause K
7) For với mỗi mẫu j của tập dữ liệu học Do{
8) If mẫu j là positve và j chưa thuộc Positive Clause nào Then{
9) Tính khoảng cách DC cách từ m đến j
46
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
10) If DC < Threshold Then{
11) Cho j vào Positive Clause K
12) Đánh dấu j đã thuộc vào một Positive Clause
13) } } }
14) Tăng K lên một
15) } }
//Duyệt lại xem còn mẫu positive nào chưa thuộc bất kỳ một Positive
Clauses nào
16) For với mỗi mẫu i của tập dữ liệu học Do{
17) If i là positive và i chưa thuộc bất kỳ Positive Clauses Then{
18) Tạo ra một Positive Clause K
29) For với mỗi mẫu j của tập dữ liệu học Do{
20) If j là positive và j chưa thuộc một Positive Clauses Then{
21) Tính khoảng cách DC từ i đến j
22) If DC < Threshold Then{
23) Cho j vào Positive Clause K
24) Đánh dấu j đã thuộc vào một Positive Clause
25) } } }
26) Tăng K lên một
27) } }
Bảng 3-2: Thuật toán tìm các Positive ClausesThuật toán chính
47
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Theo thuật toán này, tìm được K Positive Clauses. Ban đầu phải chọn
một ngưỡng khoảng cách, khoảng cách từ tâm của một Positive Clause đến tất
cả các điểm trong nó phải nhỏ hơn ngưỡng khoảng cách này. Tiếp theo, chọn
ngẫu nhiên N mẫu positive, các mẫu này được dùng làm tâm cho các Positive
Clauses. Với mỗi mẫu trong N mẫu positive được chọn làm tâm cho mỗi
Positive Clause, xét tất cả các mẫu positive trong tập dữ liệu, nếu mẫu nào có
khoảng cách đến tâm nhỏ hơn một ngưỡng khoảng cách cho trước thì xét nó
thuộc Positive Clauses chứa tâm đó. Mỗi mẫu positive chỉ thuộc vào duy nhất
một Positive Clause. Sau khi xét hết N mẫu làm tâm cho Positive Clauses mà
vẫn còn mẫu positive trong tập dữ liệu chưa thuộc vào bất kỳ một Positive
Clauses thì chọn chính mẫu đó làm tâm cho một Positive Clause mới và xác
định các mẫu thuộc Positive Clause này. Tương tự như vậy cho đến khi tất cả
các mẫu positive đều thuộc về một trong các Positive Clauses. Hình 3-7, cùng
một tập dữ liệu với hai ngưỡng khoảng cách khác nhau thì kết quả tìm được
các Positive Clauses cũng khác nhau.
Hình 3-7: Một ví dụ Positive Clauses với hai ngưỡng khoảng cách
3.3.2.2. Thuật toán tìm các Homogenous Clauses
Sau khi tìm được tất cả các Positive Clauses cho tập dữ liệu học, tiếp
48
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
tục tìm các Homogenous Clauses cho mỗi Positive Clause. Thuật toán tìm tất
cả các Homogenous clauses cho mỗi Positive Clause như sau:
Input: Positive Clause C
Output: Các homogenous Clauses có trong C
1) Chọn ngẫu nhiên N mẫu positive trong C.
2) For với mỗi mẫu positive X vừa mới được chọn Do{
3) If X chưa thuộc bất kỳ Homogenous Clauses nào Then{
4) Đặt một ngưỡng H = khoảng cách nhỏ nhất giữa hai mẫu positive
5) Do{
6) Tạo một vùng E với tâm là X và bán kính là H
7) If E nằm hoàn toàn trong C Then H = H*2
8) Else thoát khỏi vòng lặp
9) }While (true)
10) } }
//Duyệt lại dữ liệu xem còn mẫu nào chưa thuộc Homogenous Clauses
11) For với mỗi mẫu i trong C Do{
12) If i chưa thuộc Homogenous Clauses nào Then {
13) Đặt X = mẫu i và quay lại bước 2)
14) } }
Bảng 3-3: Thuật toán tìm các Homogenous Clauses
cho mỗi Positive Clauses
49
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Theo thuật toán này, mỗi Positive Clause được phân ra thành các
Homogenous Clauses, bằng cách sử dụng một khoảng cách cực tiểu, H, giữa
hai mẫu positve trong tập dữ liệu, để khởi tạo một vùng ban đầu của
Homogenous Clause. Nếu những vùng này không đụng vào biên của Positive
Clause chứa chúng thì chúng được mở rộng với bán kính gấp đôi, H*2, và cứ
tiếp tục như vậy. Quá trình mở rộng các vùng này chỉ dừng khi một trong các
Homogenous Clause đụng vào biên của Positive Clause chứa chúng. Nếu
ngay trong lần mở rộng đầu tiên mà Homogenous Clause đụng vào biên của
Positive Clause chứa nó thì Homogenous Clause này chỉ chứa duy nhất một
mẫu positive. Ví dụ, tìm các Homogenous Clauses cho mỗi Positive Clauses
trong ví dụ ở trên.
Hình 3-8: Các Homogenous Clauses cho mỗi Positive Clauses
3.3.2.3. Thuật toán mở rộng Homogenous Clause
Một Homogenous Clauses được mở rộng bằng cách giữ nguyên tâm và
tăng bán kính dựa vào mật độ của nó. Công thức tăng bán kính cho mỗi
Homogenous Clauses như sau:
50
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
G
C
R
R
C
RF
*
R
=
+
− 2
1 D
Trong đó: + RC là bán kính của Homogenous Clause C ban đầu.
+ RF là bán kính của Homogenous Clause sau khi được mở
rộng F.
+ RG là bán kính của không gian G bao phủ C, không gian G
là một hình đồng dạng với Homogenous Clause C và có
bán kính gấp đôi bán kính của C.
+ D là mật độ của C.
Việc tăng bán kính của một Homogenous Clauses C được thực hiện
như sau: Ban đầu xác định một vùng G là một hình đồng dạng với
Homogenous Clause C và có bán kính gấp đôi bán kính của C. RC được tăng
lên trong khoảng từ RC đến RG, mỗi lần tăng một khoảng = RF - RC, sau mỗi
lần tăng RC được gán bằng RF, quá trình tăng bán kính dừng khi Homogenous
Clause F chứa điểm negative hoặc diện tích của F lớn hơn D* hệ số hoặc
RF>RG. Hệ số này là mức độ mở rộng của Homogenous Clauses, mặc định hệ
số này bằng một. Trước khi dừng cần kiểm tra, nếu RC=RG thì tiếp tục mở
rộng một lần nữa với mật độ D phải tính lại theo Homogenous Clauses C mới
và RG = RG*2.
Chi tiết thuật toán mở rộng một Homogenous Clause C dựa trên mật độ
D của nó, được mô tả như sau:
51
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Input: Homogenous Clause C và mật độ D của nó
Output: Homogenous Clause sau khi mở rộng F
Bước 1: Tìm không gian G bao phủ C, với bán kính gấp đôi bán kính của C.
G phải cùng hình dạng với C và có trọng tâm là trọng tâm của C.
G
C
R
R
C
RF
*
R
=
+
− 2
1 D
Bước 2: Mở rộng C dựa vào D và G theo công thức
Bước 3: Dừng, nếu F chứa bất kỳ mẫu negative nào hoặc diện tích của F >
hệ số*D hoặc bán kính của F > bán kính của G. Ngược lại gán bán kính của
C = bán kính của F và quay lại bước 2.
Bước 4: Nếu bán kính RC=RG thì quay lại bước 1, ngược lại thì tiếp tục thực
hiện bước 5
Bước 5: Trả về C, nếu F chứa bất kỳ mẫu negative nào hoặc diện tích của F
> hệ số*D
Bảng 3-4: Thuật toán mở rộng Homogenous Clause C
Hình 3-9 sau đây minh học cho việc mở rộng các Homogenous
Clauses, hình a) là các Homogenous Clauses trước khi được mở rộng, hình b)
là các Homogenous Clauses được mở rộng với hệ số bằng 2, hình c) là các
Homogenous Clauses được mở rộng với hệ số bằng 5.
52
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Hình 3-9: Các Homogenous Clauses sau khi được mở rộng
3.3.2.4. Thuật toán gom các Homogenous Clauses
Các homogenous Clauses sau khi được xác định cho mỗi Positive
Clauses hay sau khi được mở rộng, thường sẽ gặp phải trường hợp một
Homogenous Clause chứa trong một Homogenous Clauses khác và một
Homogeous Clause chứa các mẫu, nhưng toàn bộ các mẫu này đã chứa trong
các Homogenous Clauses khác. Vì vậy cần loại bỏ các Homogenous Clauses
không cần thiết này để nâng cao tốc độ tính toán cũng như giảm dung lương
bộ nhớ phải lưu trữ chúng.
Thuật toán gom các Homogenous Clauses như sau:
53
THUẬT TOÁN PHÂN LỚP ĐIỀU CHỈNH SỰ QUÁ KHỚP VÀ QUÁ KHÁI QUÁT
Input: Tập các Homogenous Clauses
Output: Tập các Homogenous Clauses đã được gom
Bước 1: Kiểm tra xem có Homogenous Clause nào nằm trong một
Homogenous Clause khác thì hủy nó.
Bước 2: For với mỗi Homogenous Clauses C Do
Nếu tất cả các mẫu trong C đã thuộc vào các Homogenous
Clauses khác thì hủy C.
Bước 3: Return tập Homogenous Clauses còn lại sau khi hủy
Bảng 3-5: Thuật toán gom các Homogenous Clauses
Minh họa sau cho thấy việc gom các Homogenous clauses, hình bên
trái là các Homogenous Clauses trước khi gom, hình bên phải là các
Homogenous sau khi gom.
Hình 3-10: Minh họa việc gom các Homogenous Clauses
54
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
CHƯƠNG 4
CÀI ĐẶT THUẬT TOÁN
VÀ ÁP DỤNG CHO BÀI
TOÁN PROTEIN FOLDING
55
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
4.1. CÀI ĐẶT THUẬT TOÁN
4.1.1. Chương trình Demo trên không gian hai chiều
Dựa trên thuật toán điều chỉnh sự quá khớp và quá khái quát dữ liệu
trên mặt phẳng hai chiều, chương trình demo đã được cài đặt bằng ngôn ngữ
Java, công nghệ Applet trên môi trường JBuider8. Sau khi được biên dịch
chương trình có thể chạy trực tiếp bằng trình duyệt Internet Explorer, giao
diện như sau:
Hình 4-1: Giao diện chương trình Demo
Trên giao diện này, bao gồm các thành phần như sau:
+ Textbox Threshold : nhập giá trị ngưỡng khoảng cách sử dụng
trong thuật toán tìm các Positive Clauses.
+ Textbox Coefficient : nhập giá trị cho hệ số sử dụng ở thuật toán
mở rộng Homogenous Clauses.
56
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
+ Button Positive Clauses: tìm các Positive Clauses.
+ Button Homogenous: tìm các Homogenous Clauses.
+ Button Expand: mở rộng các Homogenous Clauses.
+ Tọa độ ở góc trái thanh Status: vị trí con trỏ chuột trên màn hình,
gốc tọa độ (0,0) là góc trái dưới của nàm hình.
Trong mặt phẳng hai chiều của giao diện này:
+ Chiều ngang biểu diễn giá trị thuộc tính thứ nhất.
+ Chiều dọc biểu diễn cho giá trị thuộc tính thứ hai.
+ Mỗi ô vuông nhỏ sẽ đại diện cho một mẫu.
Chương trình này sử dụng minh họa cho thuật toán, để đơn giản chỉ xét
trường hợp giá trị thuộc tính nguyên dương, giá trị nhỏ nhất là 0 được tính từ
góc trái dưới của màn hình. Thông tin mỗi mẫu gồm có giá trị hai thuộc tính
và một lớp mà mẫu này thuộc về, giả sử lớp positive hoặc negative. Cách
nhập dữ liệu cho chương trình như sau:
+ Di chuyển con trỏ chuột trên giao diện sao cho con số ở góc trái dưới
của giao diện hiển thị đúng với giá trị hai thuộc tính của mẫu.
+ Click trái chuột: đặt một mẫu positive tại vị trí con trỏ chuột, biểu thị
bằng dấu “+“.
+ Click phải chuột: đặt một mẫu negative tại vị trí con trỏ chuột, biểu
thị bằng dấu “-“.
Sau khi đã nhập thông tin của tất cả các mẫu cho chương trình thực
hiện lần lượt các bước sau:
+ Click button Positive Clauses: kết quả là các Positive Clauses được
biểu thị bằng các hình chữ nhật.
57
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
+ Click button Homogenous: kết quả là các Homogenous Clauses
cho mỗi Positive Clauses, được biểu thị bằng các hình tròn bên trong hình chữ
nhật.
+ Click button Expand: kết quả là các Homogenous Clauses đã được
mở rộng.
Kết quả có được là các Homogenous Clauses đã được mở rộng, biểu thị
là các hình tròn màu đỏ. Từ đây, muốn dự đoán lớp cho một mẫu mới, ta chỉ
việc di chuyển con trỏ chuột trên màn hình giao diện tương tự như khi nhập
dữ liệu, sao cho con số ở góc trái dưới màn hình bằng với giá trị hai thuộc
tính của mẫu cần dự đoán lớp, nếu con trỏ chuột nằm trong vùng hình tròn
biểu thị cho Homogenous Clauses thì mẫu này thuộc lớp positive ngựơc lại
mẫu này thuộc lớp negative.
Ví dụ, ta có tập mẫu như sau:
58
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Mẫu Thuộc tính 1
Thuộc tính 2
Lớp
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22
9 10 11 11 11 11 12 12 13 13 15 15 16 16 17 17 17 18 18 19 19 20
8 6 8 7 6 5 7 6 7 5 7 6 8 4 7 6 5 7 6 7 5 6
negative positive negative positive positive positive positive positive negative negative negative negative positive positive positive positive positive negative positive positive negative positive
Bảng 4-1: Ví dụ một tập mẫu hai chiều
Bước 1: Sau khi nhập toàn bộ dữ liệu trên vào chương trình, mẫu
positive là dấu “+”, mẫu negative là dấu “-”, màn hình giao diện như sau:
59
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Hình 4-2: Giao diện chương trình sau khi nhập dữ liệu
Bước 2: Với giá trị Threshold =3, click button Positive Clauses ta sẽ có
các Positive Clauses là các hình chữ nhật trong giao diện của chương trình
như sau:
60
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Hình 4-3: Giao diện chương trình sau khi tìm các Positive Clauses
Chương trình đã tìm được 4 Positive Clauses.
Bước 3: Click button Homogenous để tìm các Homogenous Clauses
cho mỗi Positive Clauses, kết quả tìm được như sau:
61
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Hình 4-4: Giao diện chương trình sau khi tìm các Homogenous Clauses
Bước 4: Mở rộng các Homogenous Clauses, chọn hệ số Coefficient =4,
sau đó click button Expand. Kết quả của bước này như sau:
62
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Hình 4-5: Giao diện chương trình sau khi mở rộng Homogenous Clauses
Ta đã có các Homogenous Clauses được mở rộng, biểu diễn bằng các
hình tròn, các hình tròn này dùng để dự đoán lớp cho các mẫu mới. Giả sử,
bây giờ ta cần dự đoán lớp cho hai mẫu sau y1 (12, 5) và y2 (14, 6), ta thấy y1
nằm trong vòng tròn lớn nhất bên trái, nên y1 được dự đoán thuộc lớp
positive. Còn mẫu y2 (14, 6) không nằm trong bất kỳ một vòng tròn nào nên
dự đoán lớp cho mẫu y2 thuộc về là negative.
63
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
4.1.2. Cài đặt thuật toán trên không gian N chiều
Thuật toán phân lớp cho các mẫu có n thuộc tính đã được cài đặt bằng
ngôn ngữ Java. Chương trình này yêu cầu dữ liệu phải theo đúng dịnh dạng
được trình bày ở phần 3.5.1 và chương trình sẽ thực hiện các chức năng được
trình bày ở phần 3.5.2.
4.1.2.1. Chuẩn bị dữ liệu
Để có thể sử dụng chương trình cho việc phân lớp và dự đoán thì dữ
liệu sau khi thu thập phải chuyển đổi cho đúng định dạng của chương trình
như sau:
+ Mỗi tập dữ liệu phải lưu trữ trên file có dạng *.TXT.
+ Mỗi mẫu dữ liệu thuộc 1 dòng.
+ Mỗi dòng gồm giá trị của n thuộc tính dạng số nguyên dương hay số
thực dương (n>0) và lớp mà mẫu dữ liệu trên dòng này thuộc về (ký hiệu là
dấu “+” nếu mẫu thuộc lớp positive, ký hiệu là dấu “-” nếu mẫu thuộc lớp
negative).
Ví dụ cách tổ chức dữ liệu trong file, giả sử file này được đặt tên là
DataSet.TXT , như sau :
14.1 0.7 7.4 5.4 5.4 4.0 1.3 5.4 8.7 6.7 3.4 1.3 +
12.5 0.7 8.3 2.1 4.2 6.9 1.4 5.6 10.4 9.0 2.1 6.9 +
19.0 0.7 4.9 5.6 7.0 11.3 1.4 1.4 7.0 6.3 3.5 4.2 +
20.4 0.7 4.1 2.0 2.7 13.6 3.4 5.4 8.2 7.5 3.4 2.0 -
11.0 0.0 3.9 9.1 3.9 7.1 7.1 5.8 12.3 12.3 1.9 1.3 -
12.5 0.0 6.6 3.7 10.3 8.1 2.9 6.6 7.4 4.4 2.9 3.7 -
64
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
4.1.2.2. Giao diện và các chức năng của chương trình
Sau khi đã có tập dữ liệu đã được chuẩn hóa và tổ chức trên file như đã
trình bày ở trên, ta sẽ sử dụng tập dữ liệu này cho chương trình, chương trình
có giao diện như sau:
Giá trị của hệ số Giá trị ngưỡng khoảng cách
Chọn file chứa tập mẫu học Tên file chứa tập mẫu học và tập mẫu thử
Chọn file chứa tập mẫu thử
Độ chính xác chương trình dự đoán cho tập mẫu thử
Hình 4-6: Giao diện chương trình phân lớp cho dữ liệu N chiều
Bước 1: Training data
Click button Browse ở trên để chọn file chứa tập mẫu học, file này có
dạng *.TXT. Sau đó click button “Training” để cho chương trình bắt đầu học
trên tập mẫu học, kết thúc quá trình học chương trình tìm được các
Homogenous Clauses đã được mở rộng, mỗi Homogenous Clause được lưu
trữ bằng một tâm là một mẫu học và một bán kính là một số thực. Chương
trình lưu các Homogenous Clauses này vào một file có tên là
Expanding.TXT, cấu trúc file này như sau:
+ Cột đầu tiên là số thứ tự của các Homogenous Clauses.
65
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
+ Cột thứ hai là tâm của Homogenous Clause, nó là số thứ tự của mẫu
học được chọn làm tâm trong tập mẫu học.
+ Cột thứ ba là một số thực chỉ kích thước của bán kính của
Homogenous Clause,
Ví dụ một file Expand.TXT:
1.1706077890859463 1 0
4.532 2 1
1.1706077890859463 3 2
5.0 4 8
20 3.454 5
Sau khi chương trình học xong, sẽ xuất hiện dòng chữ “Finished”
như hình minh họa sau đây:
…
66
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Hình 4-7: Giao diện chương trình sau khi đã học xong tập mẫu học
Bước 2: Testing data
Sau khi chương trình đã học xong trên tập mẫu học, click button
Browse để chọn file chứa tập mẫu thử, cấu trúc của file chứa tập mẫu thử
hoàn toàn giống như cấu trúc của file chứa tập mẫu học, các mẫu thử phải có
cùng số thuộc tính với các mẫu đã được học. Sau đó click button Testing để
kiểm tra và đánh giá độ chính xác của chương trình. Xác định độ chính xác
bằng cách so sánh lớp của các mẫu thử đã được chương trình dự đoán với lớp
chính xác của các mẫu thử. Độ chính xác này được hiện thị ở textbox
Accuracy của giao diện.
Đồng thời chương trình cũng lưu một file Result.TXT để mô tả sự so
sánh lớp được dự đoán của các mẫu thử và lớp chính xác của chúng. Cấu trúc
của file này như sau: dòng đầu tiên lưu ngưỡng khoảng cách, giá trị hệ số và
độ chính xác, dòng thứ hai mô tả tiêu đề của từng cột, cột đầu tiên là số thứ tự
của các mẫu thử trong file chứa tập mẫu thử, cột thứ hai là lớp chính xác của
67
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
các mẫu thử thuộc về và cuối cùng là cột thứ ba lưu lớp mà chương trình dự
đoán cho các mẫu thử. Xem hình minh họa và một đoạn đầu của file
Result.TXT sau đây:
Threshold 1.02 Coefficient 100 Accuracy 93.33%
num trust predict
1 + +
2 + +
3 + +
4 + +
5 - -
6 + +
…
Hình 4-8: Giao diện chương trình sau khi đã kiểm tra và đánh giá xong tập mẫu thử
68
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
4.2. KẾT QUẢ ĐẠT ĐƯỢC
Những ý tưởng và chi tiết của thuật toán điều chỉnh sự quá khớp và
khái quát dữ liệu, đã được trình bày ở trên, để kiểm tra độ chính xác của thuật
toán chương trình đã chạy thử một số tập dữ liệu có uy tín và ghi nhận lại các
kết quả đạt được. Các nguồn dữ liệu được lấy chủ yếu từ 2 web site:
http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data và
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/. Sau khi cho
chương trình chạy với các tập dữ liệu trên hai nguồn này đã đạt được kết quả
rất tốt.
4.2.1 Nguồn dữ liệu trên web site
http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data
Các tập dữ liệu của website này bao gồm như sau:
STT Tên tập dữ liệu Số mẫu Số thuộc tính Số lớp
1 Train_1 3089 4 2
Test_1 4000 4 2
2 Train_2 391 20 3
3 Train_3 1243 21 2
Test_3 41 21 2
Bảng 4-2: Mô tả các tập dữ liệu trên website http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data/
(cid:153) Tập dữ liệu Train_1 và Test_1 có được từ Jan Conrad thuộc Đại học
Uppsala, Thụy Điển. Trong hai tập dữ liệu này các mẫu thuộc một trong hai
lớp 0.0 và 1.0, vì vậy phải chuyển lớp 0.0 thành lớp negative (-) và lớp 1.0
thành lớp positive (+), sau đó lưu thành file Train_1.TXT và Test_1.TXT với
cấu trúc như đã trình bày ở trên. Cho chương trình học trên tập dữ liệu
69
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Train_1 và thử bằng tập dữ liệu Test_1 thì kết quả đạt được là 95.63% với
ngưỡng khoảng cách bằng 3 và hệ số bằng 1000. Cũng với bộ dữ liệu và
ngưỡng khoảng cách nhưng tăng hệ số bằng 900000 thì độ chính xác là
95.97%.
(cid:153) Tập dữ liệu Train_2 do Cory Spencer thuộc Đại học Simon Fraser,
Canada cung cấp, có ba lớp là “+1”, “+2” và “+3”. Chuyển lớp “+1” thành
lớp positive và hai lớp “+2”, “+3” thành lớp negative, sau đó lưu lại thành file
Train_2.TXT với cấu trúc file như đã trình bày ở trên. Dùng Train_2 làm dữ
liệu học đồng thời làm dữ liệu thử thì kết quả đạt được là 100% với ngưỡng
khoảng cách và hệ số tùy ý. Sau đó, đổi lại lớp “+2” thành lớp positive còn
lớp “+1” và “+3” thành lớp negative thì kết quả vẫn đạt 100%.
(cid:153) Tập dữ liệu Train_3 và Test_3 chỉ có hai lớp là “-1” và “+1”,
chuyển lớp “+1” thành lớp positive(+) và lớp “-1” thành negative(-). Tương
tự như trên, lưu thành hai file theo đúng cấu trúc qui định ban đầu. Sau đó
dùng tập Train_3 làm tập dữ liệu học cho chương trình và tập Test_3 làm tập
dữ liệu thử thì kết quả đạt được là 100%, bất kể ngưỡng khoảng cách và hệ
số. Bảng tóm tắt sau đây cho thấy độ chính xác của thuật toán phân lớp này.
Hệ số Độ chính xác
Tập dữ liệu học Tập dữ liệu thử Ngưỡng khoảng cách
Train_1 Test_1 3 900,000 95.97%
Train_2 Train_2 tùy ý tùy ý 100%
Train_3 Test_3 tùy ý tùy ý 100%
Bảng 4-3: Kết quả phân lớp các tập dữ liệu trên website http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data/
Cũng trên các tập dữ liệu này, Chih-Wei Hsu, Chih-Chung Chang, và
Chih-Jen Lin (http://www.csie.ntu.edu.tw/~cjlin/papers/guide) sử dụng thuật
toán phân lớp Support Vector Machine thì kết quả đạt được như sau:
70
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Tập dữ liệu học Tập dữ liệu thử Độ chính xác
Train_1 Test_1 96.9%
Train_2 Train_2 85.2%
Train_3 Test_3 87.8%
Bảng 4-4: Kết quả phân lớp theo thuật toán SVM của Cjlin
So sánh kết quả của chương trình phân lớp theo thuật toán điều chỉnh
sự quá khớp và quá khái quát dữ liệu với hệ thống phân lớp theo thuật toán
SVM của Cjlin trên cùng một số tập dữ liệu, được mô tả như sau:
100.0%
95.0%
Độ chính xác của thuật toán SVM của Cjlin
90.0%
85.0%
80.0%
75.0%
Độ chính xác của thuật toán điều chỉnh sự quá khớp và quá khái quát dữ liệu
Train_2
Train_1 và Test_1
Train_3 và Test_3
Hình 4-9: Biểu đồ so sánh kết quả
4.2.2. Nguồn dữ liệu trên web site
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary
Các tập dữ liệu thứ hai được sử dụng để đánh giá thuật toán được lấy từ
website : http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/. Một
số tập dữ liệu được lấy như a1a, a2a, a3a, a4a, a5a, a6a, a7a, w1a, w2a, w3a,
w4a, w5a và w6a. Các tập dữ liệu này chỉ có hai lớp, sau chuyển đổi các tập
dữ liệu này đúng cấu trúc như đã trình bày ở trên, lấn lượt cho chương trình
71
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
học một tập dữ liệu và lấy các tập còn lại làm dữ liệu thử thì kết quả đạt được
như sau:
Số thuộc tính 119 Số mẫu 1605 Độ chính xác a1a Tập dữ liệu Học a1a
119 2265 Thử a2a 91.39%
a2a Tập dữ liệu Số thuộc tính Số mẫu Độ chính xác
119 2265 Học a2a
119 1605 Thử a1a 98,69%
Số thuộc tính 122 Số mẫu 3185 Độ chính xác
a3a Tập dữ liệu a3a c ọ H
ử h T
122 122 122 122 4781 6414 11220 16100 a4a a5a a6a a7a 90,17% 86,47% 82,17% 79,99%
Số mẫu a6a Tập dữ liệu Số thuộc tính Độ chính xác
122 11220
a6a c ọ H
ử h T
122 122 122 122 3185 4781 6414 16100 a3a a4a a5a a7a 96,14% 96,03% 95,95% 89,71%
72
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Số thuộc tính 122 Số mẫu 16100 Độ chính xác
a7a Tập dữ liệu a7a c ọ H
ử h T
a3a a4a a5a a6a 122 122 122 122 3185 4781 6414 11220 94,98% 94,92% 94,92% 96,95%
ử h T
w1a Tập dữ liệu Học w1a w2a w3a w4a w5a w6a Số thuộc tính 300 300 300 300 300 300 Số mẫu 2477 3470 4912 7366 9888 17188 Độ chính xác 85,97% 85,40% 85,08% 84,64% 84,18%
ử h T
w2a Tập dữ liệu Học w2a w1a w3a w4a w5a w6a Số thuộc tính 300 300 300 300 300 300 Số mẫu 3470 2477 4912 7366 9888 17188 Độ chính xác 85,99% 85,91% 85,43% 84,09% 84,38%
ử h T
w4a Tập dữ liệu Học w4a w1a w2a w3a w5a w6a Số thuộc tính 300 300 300 300 300 300 Số mẫu 7366 2477 3470 4912 9888 17188 Độ chính xác 85,79% 86,57% 86,16% 85,41% 84,83%
73
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
ử h T
w5a Tập dữ liệu Học w5a w1a w2a w3a w4a w6a Số thuộc tính 300 300 300 300 300 300 Số mẫu 9888 2477 3470 4912 7366 17188 Độ chính xác 85,79% 86,57% 86,16% 86,14% 84,93%
Bảng 4-5: Kết quả của quá trình học và dự đoán lớp cho tập dữ liệu trên website: http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/
4.3. ÁP DỤNG PHÂN LỚP CHO BÀI TOÁN PROTEIN FOLDING
4.3.1. Bài toán Protein Folding
Ngày nay, các nhà sinh vật học đã xác định được rằng cơ sở vật chất
chủ yếu của sự sống gồm hai loại hợp chất hữu cơ là protein và axit nucleic.
Protein là hợp phần cấu tạo chủ yếu của chất nguyên sinh và là thành phần
chức năng trong cấu tạo của các enzim và hoocmon, đóng vai trò xúc tác và
điều hòa. Protein thuộc loại đại phân tử, có kích thước và khối lượng lớn.
Phân tử protein lớn nhất dài 0,1 micromet, khối lượng phân tử có thể tới 150
triệu đơn vị cacbon. Protein là chất cao phân tử được cấu tạo theo nguyên tắc
đa phân, mà đơn phân là axit amin. Mỗi phân tử protein gồm trung bình 100 –
30000 phân tử axit amin liên kết với nhau. Các axit min liên kết với nhau
bằng liên kết peptit, tạo nên chuỗi polypeptit. Có hơn hai mươi loại axit amin
khác nhau, được đặt tên là A, C, G, T,… đã tạo ra vô số loại protein khác
nhau ở số lượng, thành phần, trật tự sắp xếp các axit amin. Protein có bốn bậc
cấu trúc cơ bản.
• Cấu trúc bậc một là thứ tự sắp xếp các axit amin trong chuỗi
polypeptit.
74
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
• Cấu trúc bậc hai do chuỗi polypeptit bậc một xoắn hình lò xo hay
hình xoắn ốc, giữa các vòng xoắn có các liên kết hydro làm cho cấu trúc
protein được bền vững.
• Cấu trúc bậc ba chuỗi polypeptit xoắn hình lò xo uốn vòng trong
không gian, nhờ cấu trúc bậc ba mà protein thường có dạng hình cầu, giữa
các vòng uốn cũng có các liên kết hydro làm cho cấu trúc protein được
bền vững hơn.
• Cấu trúc bậc bốn gồm nhiều cấu trúc bậc ba kết hợp lại.
Hình 4-10: Các bậc cấu trúc khác nhau của phân tử protein
a) Cấu trúc bậc một c) Cấu trúc bậc ba
b) Cấu trúc bậc hai d) Cấu trúc bậc bốn
75
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Cấu trúc của protein được sử dụng trong dự đoán và phân lớp cho
protein, nên còn được gọi là phân lớp cấu trúc protein. Phân lớp protein sẽ hỗ
trợ cho việc xác định chức năng của protein dễ dàng và nhanh chóng hơn.
Protein folding là bài toán phân lớp cấu trúc không gian ba chiều của protein.
Một protein được xếp vào một trong bốn lớp cấu trúc, phụ thuộc vào thành
phần cấu trúc phụ đó là : hoàn toàn xoắn ốc (gọi là all-α), hoàn toàn hình sợi
(gọi là all-β), α /β, α +β. Trong những năm gần đây có rất nhiều sự nghiên cứu
về bài toán phân lớp cấu trúc protein, nhưng đến nay nó vẫn là một bài toán
mở. Ngày nay bài toán này được tiếp cận bởi nhiều hướng khác nhau và nó
được chia thành các nhiệm vụ nhỏ hơn như dự đoán cấu trúc bậc hai, xác định
lớp cấu trúc, dự đoán bề mặt tiếp xúc…
Trong đề tài này, phân lớp cấu trúc protein dựa vào sự tổng hợp các axit
amin (Amino Acid Composition - ACC), ACC là một vector 20 chiều tương
ứng với 20 loại axit amin khác nhau, vector này chỉ rõ tỷ lệ của mỗi loại axit
amin trong sự tổng hợp của 20 loại axit amin khác nhau. Sử dụng hệ thống
phân lớp đã được cài đặt theo thuật toán điều chỉnh sự quá khớp và quá khái
quát dữ liệu để phân lớp và dự đoán cho một số protein trong một số tập dữ
liệu về protein. Qua đó đánh giá được thuật toán đồng thời có thể áp dụng cho
việc phân lớp cấu trúc protein trong thực tế.
4.3.2. Mô tả cơ sở dữ liệu
Để đánh giá thuật toán chính xác và khách quan, phải chương trình đã
sử dụng một số dữ liệu phổ biến và uy tín. Vì vậy, trong phần này sẽ sử dụng
cơ sở dữ liệu lấy từ website http://www.nersc.gov/~cding/protein. Trong cơ
sở dữ liệu này gồm 12 tập dữ liệu về 6 lĩnh vực, mỗi lĩnh vựcgồm 2 tập dữ
liệu, 1 tập dữ liệu học và 1 tập dữ liệu thử. Sáu lĩnh vực đó là:
76
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Amino Acids Composition (tổng hợp axit amin): gồm hai tập dữ liệu,
tập dữ liệu học có 605 mẫu, tập dữ liệu thử có 385 mẫu. Mỗi mẫu là một
vector 22 chiều, trong đó 20 chiều đầu tiên tương ứng với 20 loại axit amin
khác nhau, chiều thứ 21 là chiều dài của protein và chiều cuối cùng là lớp mà
Năm mục còn lại là Predicted secondary structure (dự đoán cấu trúc
mẫu đó thuộc về. Vì vậy xem như mỗi mẫu có 21 thuộc tính.
bậc hai), Polarity (khả năng phân cực của protein), Polarizability (tình trạng
phân cực của protein), Hydrophobicity (tính chống thấm nước), và Van der
Waals volume. Trong đó mỗi mục có một tập dữ liệu học gồm 605 mẫu và
một tập dữ liệu thử gồm 385 mẫu. Khác với mục Amino Acids Composition,
mỗi mẫu trong năm mục này là một vector 23 chiều. Trong 23 chiều này có
20 chiều là 20 mươi axit amin, một chiều là thuộc tính riêng của từng mục,
một chiều là chiều dài của protein và một chiều cuối cùng là lớp mà mẫu đó
thuộc về. Vì vậy xem như mỗi mẫu có 22 thuộc tính.
Đây là cơ sở dữ liệu đa lớp của protein mà hệ thống phân lớp là nhị
phân. Vì vậy cần phải chuyển đổi cơ sở dữ liệu. Thay vì phân lớp một lần cho
các mẫu protein trong mỗi mục, khi đó các mẫu thuộc về một trong bốn lớp
all-α, all-β, α /β hoặc α +β còn đối với hệ thống phân lớp nhị phân thì mỗi tập
dữ liệu được chuyển thành bốn tập dữ liệu tương đương. Tập dữ liệu tương
đương thứ nhất, lớp all-α chuyển thành positive các lớp còn lại chuyển thành
negative. Tập dữ liệu tương đương thứ hai, lớp all-β chuyển thành positive
các lớp còn lại chuyển thành negative. Tập dữ liệu tương đương thứ ba, lớp
α/β chuyển thành positive các lớp còn lại chuyển thành negative. Tập dữ liệu
tương đương thứ tư, lớp α+β chuyển thành positive các lớp còn lại chuyển
thành negative.
77
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Tập dữ liệu tương đương thứ nhất dùng để dự đoán lớp all-α, tập dữ
liệu tương đương thứ hai dùng để dự đoán lớp all-β, tập dữ liệu tương đương
thứ ba dùng để dự đoán lớp α /β , tập dữ liệu tương đương thứ tư dùng để dự
đoán lớp α +β.
Toàn bộ các tập dữ liệu học và dữ liệu thử của cơ sở dữ liệu đều phải
chuyển đổi như vậy, và được lưu trữ trong bốn thư mục tương đương với 4
tập dữ liệu tương đương. Mỗi tập dữ liệu chứa trong một file, như vậy có tất
cả 48 file, mỗi thư mục chứa 12 file. Trong mỗi file dữ liệu được lưu trữ theo
định dạng như sau: mỗi dòng là một mẫu protein, mỗi thuộc tính trong một
mẫu là một số thực cách nhau một số khoảng trắng và cuối dòng có ký kiệu
“+” nếu mẫu trên dòng đó thuộc lớp positive, có ký hiệu “-”, nếu mẫu trên
dòng đó thuộc lớp negative.
Ví dụ một tập dữ liệu gốc như sau:
78
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
14.1 0.7 7.4 5.4 … 1.3 2.7 149 2lhb
(cid:198) all-α
12.5 0.7 8.3 2.1 … 1.4 2.8 144 3sdha
(cid:198) all-α
19.0 0.7 4.9 5.6 … 2.8 0.7 142 1flp
(cid:198)all-α
20.4 0.7 4.1 2.0 … 1.4 2.0 147 2hbg
(cid:198)all-α
11.0 0.0 3.9 9.1 … 1.3 1.9 154 2mge
(cid:198)all-α
4.2 2.3 5.6 4.2 … 1.4 3.8 213 6fabl
(cid:198)all-β
2.9 1.9 4.4 5.8 … 1.9 4.4 206 1fc2d
(cid:198)all-β
2.2 2.2 5.6 5.1 … 1.7 0.6 178 3cd4
(cid:198)all-β
4.5 1.1 1.7 9.6 … 1.7 1.1 177 1cid
(cid:198)all-β
8.1 0.5 9.4 1.8 … 1.8 5.2 383 1cgt3
(cid:198)α /β
7.6 2.0 9.9 2.5 … 2.5 7.6 353 6taa1
(cid:198)α /β
6.0 2.5 6.0 5.0 … 4.0 4.2 402 1ppi1
(cid:198)α /β
8.1 1.1 9.5 2.8 … 5.0 4.8 357 1amg1
(cid:198)α /β
6.2 3.1 7.3 5.2 … 0.0 8.3 96 1gmpa
(cid:198)α+β
6.5 0.0 8.4 2.8 … 2.8 6.5 107 1bsaa
(cid:198)α+β
10.7 0.0 8.9 8.9 … 1.8 5.4 56 1pga
(cid:198)α+β
11.5 0.0 6.4 15 .… 0.0 5.1 78 2ptl
(cid:198)α+β
…
Trong tập dữ liệu gốc, mỗi mẫu có một cái tên. Tùy theo tập dữ liệu
này là tập dữ liệu học hay tập dữ liệu thử mà dựa vào file list_train.html hay
list_test.html trong cùng website với các tập dữ liệu, để lấy một con số chỉ
mục. Có được số chỉ mục, vào file classnames.html để lấy tên lớp mà mẫu
protein đó thuộc về. Ví dụ, xét xem lớp của mẫu có tên là “2lhb” trong tập dữ
liệu học, có số chỉ mục là 1, trong file classnames1 là lớp“Alpha” (all-α).
list_train.html classnames.html
1 Alpha; Globin-like 2 Alpha; Long alpha-hairpin 3 Alpha; Cytochrome c 4 DNA-binding 3-helical bundle 20 Beta; Immunoglobulin-like beta-sandwich 46 A/B; beta/alpha (TIM)-barrel 1 2lhb 1 3sdha 1 1flp 1 2hbg 2 1isca1 3 1ccr
79
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Sau đó chuyển tập dữ liệu gốc thành các các tập dữ liệu tương đương
như sau:
14.1 0.7 7.4 5.4 … 1.3 2.7 149 -
14.1 0.7 7.4 5.4 … 1.3 2.7 149 +
12.5 0.7 8.3 2.1 … 1.4 2.8 144 -
12.5 0.7 8.3 2.1 … 1.4 2.8 144 +
19.0 0.7 4.9 5.6 … 2.8 0.7 142 -
19.0 0.7 4.9 5.6 … 2.8 0.7 142 +
20.4 0.7 4.1 2.0 … 1.4 2.0 147 -
20.4 0.7 4.1 2.0 … 1.4 2.0 147 +
11.0 0.0 3.9 9.1 … 1.3 1.9 154 -
11.0 0.0 3.9 9.1 … 1.3 1.9 154 +
4.2 2.3 5.6 4.2 … 1.4 3.8 213 +
4.2 2.3 5.6 4.2 … 1.4 3.8 213 -
2.9 1.9 4.4 5.8 … 1.9 4.4 206 +
2.9 1.9 4.4 5.8 … 1.9 4.4 206 -
2.2 2.2 5.6 5.1 … 1.7 0.6 178 +
2.2 2.2 5.6 5.1 … 1.7 0.6 178 -
4.5 1.1 1.7 9.6 … 1.7 1.1 177 +
4.5 1.1 1.7 9.6 … 1.7 1.1 177 -
8.1 0.5 9.4 1.8 … 1.8 5.2 383 -
8.1 0.5 9.4 1.8 … 1.8 5.2 383 -
7.6 2.0 9.9 2.5 … 2.5 7.6 353 -
7.6 2.0 9.9 2.5 … 2.5 7.6 353 -
6.0 2.5 6.0 5.0 … 4.0 4.2 402 -
6.0 2.5 6.0 5.0 … 4.0 4.2 402 -
8.1 1.1 9.5 2.8 … 5.0 4.8 357 -
8.1 1.1 9.5 2.8 … 5.0 4.8 357 -
6.2 3.1 7.3 5.2 … 0.0 8.3 96 -
6.2 3.1 7.3 5.2 … 0.0 8.3 96 -
6.5 0.0 8.4 2.8 … 2.8 6.5 107 -
6.5 0.0 8.4 2.8 … 2.8 6.5 107 -
10.7 0.0 8.9 8.9 … 1.8 5.4 56 -
10.7 0.0 8.9 8.9 … 1.8 5.4 56 -
11.5 0.0 6.4 15 .… 0.0 5.1 78 -
11.5 0.0 6.4 15 .… 0.0 5.1 78 -
…
…
Đây là hai tập dữ liệu tương đương thứ nhất và thứ hai, tập dữ liệu
tương đương thứ ba và thứ tư tương tự chuyển đổi như vậy.
4.3.3. Kết quả thực hiện
Sau khi đã chuyển đổi tất cả các tập dữ liệu học và dữ liệu thử của cơ
sở dữ theo đúng định dạng như đã trình bày ở trên, tiến hành phân lớp và dự
đoán cấu trúc lớp cho các mẫu protein. Đầu tiên sử dụng thư mục chứa các
tập dữ liệu tương đương thứ nhất để phân lớp và dự đoán cho các protein có
cấu trúc hoàn toàn xoắn (all-α), kết quả như sau:
80
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
stt Tập dữ liệu Ghi chú
Phân lớp all-α Số mẫu thử
Số thuộc tính Số mẫu học
1 Composition 605 385 Độ chính xác 87.27% 21
2 Hydrophobicity 605 385 86.75% 22
3 Polarity 605 385 87.27% 22
4 Polarizability 605 385 86.75% 22
5 Secondary 605 385 87.23% 22
Kết quả không phụ thuộc vào ngưỡng khoảng cách và hệ số
6 Volume 605 385 87.01% 22
Trung bình 87.05%
Bảng 4-6: Kết quả phân lớp protein vào lớp all-α
Tương tự như vậy, sử dụng thư mục chứa các tập dữ liệu tương đương
thứ hai để phân lớp và dự đoán cho các protein có cấu trúc hoàn toàn hình sợi
(all-β), kết quả như sau:
Phân lớp all-β
stt Tập dữ liệu Ghi chú
Số mẫu học Số mẫu thử Số thuộc tính
1 Composition 605 385 Độ chính xác 74.81% 21
2 Hydrophobicity 605 385 74.55% 22
3 Polarity 605 385 73.51% 22
4 Polarizability 605 385 74.29% 22
5 Secondary 605 385 72.21% 22
6 Volume 605 385 74.29% 22
Kết quả không phụ thuộc vào ngưỡng khoảng cách và hệ số
Trung bình 73.94%
Bảng 4-7: Kết quả phân lớp protein vào lớp all-β
Tương tự như vậy, đối với hai lớp α /β v2 α +β thì kết quả như sau:
81
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
Phân lớp α /β
stt Tập dữ liệu Ghi chú
Số mẫu học Số mẫu thử Số thuộc tính
1 Composition 605 Độ chính xác 71.43% 21 385
2 Hydrophobicity 605 71.17% 22 385
3 Polarity 605 70.13% 22 385
4 Polarizability 605 70.13% 22 385
5 Secondary 605 66.75% 22 385
Kết quả không phụ thuộc vào ngưỡng khoảng cách và hệ số
6 Volume 605 71.43% 22 385
Trung bình 70.17%
Bảng 4-8: Kết quả phân lớp protein vào lớp α /β
Phân lớp α +β
stt Tập dữ liệu Ghi chú
Số mẫu học Số mẫu thử Số thuộc tính
1 Composition 605 Độ chính xác 91.95% 21 385
2 Hydrophobicity 605 91.69% 22 385
3 Polarity 605 91.95% 22 385
4 Polarizability 605 91.95% 22 385
5 Secondary 605 91.17% 22 385
Kết quả không phụ thuộc vào ngưỡng khoảng cách và hệ số
6 Volume 605 91.95% 22 385
Trung bình 91.78%
Bảng 4-9: Kết quả phân lớp protein vào lớp α +β
Trung bình độ chính xác được thể hiện ớ bảng sau:
82
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
stt Tập dữ liệu all-α all-β α/β α/β TBình
1 2 3 4 5 6 87.27% 74.81% 71.43% 91.95% 91.17 87.23 91.69 86.75 91.95 87.27 91.95 87.01 91.95 86.75 72.21 74.55 73.51 74.29 74.29 66.75 71.17 70.13 71.43 70.13 81.37% 79.34 81.04 80.72 81.17 80.78
Composition Secondary struc. Hydrophobicity Polarity Volume Polarizability
Bảng 4-10: Kết quả phân lớp protein của thuật toán phân lớp điều chỉnh
tính quá khớp và quá khái quát dữ liệu
Trên cùng cơ sở dữ liệu này Chris H.Q.Ding và Inna Dubchak (http://www.nersc.gov/~cding/protein) sử dụng thuật toán SVM và mạng Neural (NN) để phân lớp cấu trúc protein thì đạt kết quả như sau:
Stt Lĩnh vực
1 SVM Ind-Test 44.9% NN Ind_Test 20.5% Composition
2 3 4 5 6 35.6 36.5 32.9 35.0 32.9 18.3 14.2 11.1 13.4 13.2 Secondary struc. Hydrophobicity Polarity volume Polarizability
Bảng 4-11: Kết quả phân lớp protein của thuật toán SVM và NN
83
CÀI ĐẶT THUẬT TOÁN VÀ ÁP DỤNG CHO BÀI TOÁN PROTEIN FOLDING
90.0%
80.0%
Đ? chính xác c?a thu?t toán Neural Network
70.0%
60.0%
50.0%
Đ? chính xác c?a thu?t toán SVM
40.0%
30.0%
20.0%
10.0%
0.0%
1
2
3
4
5
6
Đ? chính xác c?a thu?t toán đi?u ch?nh s? quá kh?p và quá khái quát d? li?u
Hình 4-9: Biểu đồ so sánh kết quả phân lớp cấu trúc Protein
84
TỔNG KẾT
TỔNG KẾT
KẾT LUẬN
Đã cài đặt thử nghiệm được thuật toán phân lớp điều chỉnh sự quá khớp và
quá khái quát dữ liệu dựa trên định nghĩa về mật độ của tập Homogenous
Clauses. Chương trình demo trên mặt phẳng hai chiều với giao diện rõ ràng minh
họa tốt cho thuật toán. Chương trình phân lớp dữ liệu n chiều đã đạt đựơc kết
quả tốt trên một số nguồn dữ liệu.
Thử nghiệm với nhiều tập dữ liệu lớn thuộc 2 website
http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data và
http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary. Và đã đạt được
kết quả rất tốt.
Ứng dụng thuật toán vào bài toán protein folding và đã dạt được kết quả
khá tốt.
HƯỚNG PHÁT TRIỂN
Nâng cao độ chính xác bằng cách tìm ra một hàm mật độ thích hợp cho
các Homogenous Clauses.
Nâng cao tốt độ xử lý bằng cách dùng kỹ thuật xử lý song song, ví dụ
moblie agent…
Thuật toán điều chỉnh sự quá khớp và quá khái quát không chỉ sử dụng
cho bài toán phân lớp mà có thể sử dụng cho nhiều lĩnh vực khác.
Phát triển thuật toán cho việc phân lớp đa lớp, bằng cách tìm các
Homogenous Clause cho tất cảc các lớp.
85
TỔNG KẾT
TÀI LIỆU THAM KHẢO
[1] Nguyễn Đình Thúc, Mạng Nơron_ Phương pháp và ứng dụng, Nhà xuất
bản giáo dục, 200.
[2] Jiawei Han and Micheline Kamber, Data Mining: Concepts and Techniques
[3] Olivia Parr Rud, Data Mining Cookbook, Willey Computer publishing,
Sons inc.
[4] Ming Syan Chen, Data Mining: An Overwiew Database Perspective,
National Taiwan Univ, Taipei, Taiwan, ROC.
[5] David Hand, Hekki Mannila and Padhraic Smyth, Principles of Datamining.
[6] Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin, A Practical Guide to
Support Vector Classification,Information Engineering, National Taiwan,
University, Taipei 106, Taiwan.
[7] Zerrin Isik, Berrin Yanikoglu, Ugur Sezerman, Protein Structural Class
Determination Using Support Vector Machines, Sabanci University, Tuzla,
Istanbul, Turkey 34956.
[8] Hyunsoo Kim and Haeun Park, Protein Secondary Structure Prediction
Based on an Improved Support Vector Machines Approach, September
2002.
[9] Hyunsoo Kim and Haeun Park, Prediction of Protein Relative Solvent
Accessibility with Support Vector Machine and long-range Interaction 3D
Local Descriptor.
[10] Website: http://www.csie.ntu.edu.tw/~cjlin/papers/guide/data
[11] Website: http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/
86