Biased minimax probability machine (BMPM)

Một phần của tài liệu CNTT1002 (Trang 39 - 62)

Biased minimax probability machine cũng là mơ hình được mở rộng từ MPM bằng cách loại bỏ giả thuyết về trọng sốđối xứng cho mỗi phân lớp trong MPM. BMPM dùng

http://etrithuc.vn

để giải quyết các bài tốn phân lớp bất đối xứng, đặc biệt là trong các ứng dụng chẩn

đốn y học. Mục tiêu của bộ phân lớp kiểu này là đảm bảo độ chính xác của các lớp quan trọng càng cao càng tốt, cịn độ chính xác của các lớp ít quan trọng hơn thì chỉ cần ở mức

độ chấp nhận được.

Cơng thức của BMPM:

Trong đĩ các ký hiệu cĩ ý nghĩa giống như trên đã nĩi, là một hằng số dương xác

http://etrithuc.vn

Chương 5: Phương pháp đề nghị

5.1. Tng quan v phương pháp

Bước quan trọng đầu tiên trong việc xây dựng mơ hình dựđốn là làm sao chọn được tập giá trị đầu vào thích hợp. Hầu hết các kỹ thuật khai phá dữ liệu hiện nay đều khơng

đạt hiệu quả cao với tập dữ liệu cĩ số chiều lớn, độ chính xác và hiệu quả truy vấn giảm nhanh chĩng khi số chiều tăng lên. Ngồi ra việc thu thập dữ liệu cũng tốn nhiều thời gian, cơng sức và tiền bạc, nhưng số chiều bên trong dữ liệu cần sử dụng trên thực tế là nhỏ (ví dụ: số lượng các Gen tương ứng cho một loại bệnh là rất nhỏ). Việc chọn lựa dữ

liệu thích hợp làm đầu vào cho mơ hình dựđốn sẽ giúp đưa ra kết quả cĩ tính chính xác cao và giúp tối ưu thời gian thực hiện cơng việc.

5.1.1. Mơ t phương pháp

Theo ý tưởng trên, trong bài tốn cụ thể là chuẩn đốn bệnh ung thư, dữ liệu về bệnh nhân được trình bày dưới dạng một ma trận, trong đĩ mỗi cột là một dấu hiệu (thuộc tính) của bệnh ung thư, mỗi dịng sẽ biểu diễn những số liệu về một bệnh nhân cụ thể. Ở bước

đầu tiên, chúng ta sử dụng thuật tốn di truyền (GA) để giải quyết vấn đề tối ưu tập thuộc tính từ tập dữ liệu ban đầu. Bước thứ hai, phương pháp phân lớp MPM sẽ thực hiện phân lớp với tập thuộc tính đã được chọn lọc để đưa ra kết luận bệnh nhân đĩ cĩ khả năng bị

ung thư hay khơng?

Ở đây ta áp dụng GA như một cơng cụ tối ưu hĩa đầu vào cho quá trình phân lớp, nhằm tăng hiệu năng và tính chính xác của quá trình phân lớp. Trước tiên, GA được áp dụng để chọn ra tập con thuộc tính tốt nhất từ tập dữ liệu ban đầu. Dữ liệu của chúng ta bao gồm n cột số liệu sẽđược mơ tả dưới dạng một vector nhị phân 01110…11101 cĩ độ

dài ứng với số thuộc tính và cĩ ý nghĩa như sau: 0 là khơng chọn cột đĩ, cịn 1 là chọn cột cĩ số thứ tự tương ứng. Cách biểu diễn này sẽ mơ tả được bộ dữ liệu với số cột được lựa chọn theo một thứ tự ngẫu nhiên. Một chuỗi nhị phân được coi là một chromosome trong

http://etrithuc.vn

thuật tốn di truyền. Tiếp đĩ, tìm các chuỗi nhị phân này được thực hiện thơng qua các phép tốn của GA như chọn lọc, lai ghép và đột biến dựa trên hàm mục tiêu là MPM hay MPM dùng để tính tốn giá trị thích nghi (fitness function) cho GA. Với tập thuộc tính

được coi là tối ưu, chúng ta sẽ sử dụng phương pháp MPM để chuẩn đốn bệnh nhân đĩ thuộc về lớp bị bệnh hay khơng bị bệnh và so sánh kết quả phân lớp với kết quả thực tế

http://etrithuc.vn

5.1.2. Mơ hình bài tốn

Hình 5.1: Mơ hình kết hợp thuật tốn di truyền và phương pháp phân lớp minimax probability machine. (N<119)

5.2. Mơ t d liu s dng

Dữ liệu sử dụng để đánh giá và kiểm thử mơ hình là một bộ dữ liệu phi tuyến về bệnh ung thư. Bộ dữ liệu bao gồm 312 hàng và 120 cột, trong đĩ hàng đầu tiên là tên thuộc

Original Data Machine learning algorithm (MPM) Variable selection << search >> (Genetic Algorithm)

<< variable selection evaluator >>

(Mimimax probability machine)

http://etrithuc.vn (adsbygoogle = window.adsbygoogle || []).push({});

tính và cột cuối cùng là nhãn. Nĩ cĩ 2 lớp nhãn, ký hiệu nhãn +1 tương ứng với khơng bị

bệnh và nhãn -1 là bị bệnh ung thư.

Như vậy, bộ dữ liệu cĩ 311 phần tử và mỗi phần tử cĩ 119 thuộc tính.

Bảng 5.2. Mơ tả bảng dữ liệu sử dụng (file Test_Train.mat)

1 2 3 … 119 120 1 206 207 413 … 8309 0 2 642.48 835.28 615.65 … 329.66 1 3 587.21 786.04 380.87 … 131.73 -1 … … … … … 312 570.39 812.32 303.65 … 209.02 1

5.3. Các module trong h thng và giao din ca chương trình

Chương trình được xây dựng và chạy trên MATLAB 7.0. MATLAB (Matrix Laboratory) là một phần mềm khá mạnh trong việc giải quyết các bài tốn kỹ thuật và thống kê như xử lý tín hiệu số, hệ thống điều khiển, mơ phỏng hay mạng neuron.

5.3.1. Chi tiết các module ca Genetic Algorithm

ðể nâng cao tính chính xác của bộ phân lớp, chương trình sử dụng gĩi “Genetic Algorithm Tool” trong Matlab 7.0 để thực hiện việc tối ưu hĩa tập dữ liệu đầu vào cho bộ

http://etrithuc.vn

Hình 5.3. Giao diện của Genetic Algorithm Tool.

Dữ liệu của ta bao gồm 119 cột thuộc tính sẽ được mã hĩa ở dạng chuỗi nhị phân 0101…011 với ý nghĩa như sau: 0 là khơng chọn và 1 là chọn cột thuộc tính cĩ số thứ tự

tương ứng. Mỗi chuỗi nhị phân cĩ độ dài cố định là 119 được xem như một chromosome trong thuật tốn di truyền. Tiếp theo ta sẽ sử dụng MPM là hàm đánh giá (fitness function) để tìm ra chromosome tốt nhất ở thế hệ cuối cùng bằng cách cực tiểu hĩa tỷ lệ

lỗi.

http://etrithuc.vn Chương trình gồm các hàm sau:

- Gĩi Genetic Tool của Matlab 7.0

- function fitness: sử dụng MPM là hàm đánh giá của thuật giải di truyền. input: vector nhị phân cĩ độ dài cốđịnh 119.

output: phần trăm lỗi được theo cơng thức sau

Trong đĩ:

error: là số lỗi tìm ra bằng cách so sánh nhãn mới của tập test sau khi đưa vào bộ phân lớp MPM với nhãn ban đầu.

Thực hiện đột biến Thế hệ = 0 Tạo quần thể gồm các chromosome Xác định giá trị của hàm đánh giá với mỗi cá thể Chọn thế hệ kế tiếp Thực hiện lai ghép Chromosome tốt nhất Thế hệ tiếp theo >100 thế hệ

http://etrithuc.vn

Hình 5.4: Giá trị của hàm đánh giá tại mỗi thế hệ. Giải thích các thơng tin trên màn hình như f-count, best…

http://etrithuc.vn

Hình 5.5: Hình ảnh biểu diễn hàm đánh giá của GA tại mỗi thế hệ. Giải thích hình 5.5

http://etrithuc.vn

Hình 5.6. Kết quả quá trình tối ưu tập thuộc tính của DL ban đầu Giải thích

- function DataSelection:

input: vector nhị phân, ma trận dữ liệu ban đầu.

output: ma trận mới gồm các cột thuộc tính được chọn tương ứng với vị trí cĩ bit 1 trong chuỗi nhị phân. (adsbygoogle = window.adsbygoogle || []).push({});

5.2.2. Chi tiết các module ca minimax probability machine

Thuật tốn viết bởi Matlab về MPM được dùng để phân chia một tập dữ liệu phi tuyến thành 2 lớp. Chương trình gồm các hàm sau:

- function build_MPM_k_binclass_Lsreg: cĩ chức năng là tìm ra *aT, *b và α.

- function eval_MPM_k_binclass: dựa trên các kết quả tìm được trên để đưa ra kết luận về tập test xem khả năng chính xác là bao nhiêu.

http://etrithuc.vn

- function run: thực hiện phân lớp MPM và đưa ra tỷ lệ phân lớp chính xác của tập training và tập test.

Hình 5.7. Giao diện của bộ phân lớp minimax probability machine.

5.3. Thc nghim và phân tích kết qu

5.3.1. Phương pháp đánh giá

Các bước thực hiện quá trình đánh giá mơ hình xây dựng:

http://etrithuc.vn

- Bước 2: Thực hiện quá trình trích chọn thuộc tính bằng GA tool trong Matlab 7.0, với các tham số tùy chọn như sau:

Fitness function: @fitness. Number of variables: 119. Population type: Bit string. Population size: 20.

Selection function: Stochastic uniform.

Crossover function: Scattered – khởi tạo ngẫu nhiên một vector nhị phân. Chọn các gen mà vector cĩ giá trị là 1 từ cha thứ nhất và những gen mà vector cĩ gí trị 0 từ cha thứ hai, rồi kết hợp các gen đĩ thành con.

Ví dụ:

cha1 = [a b b d e f g h] cha2 = [1 2 3 4 5 6 7 8]

vector lai ghép ngẫu nhiên = [1 1 0 0 1 0 0 0] con = [a b 3 4 e 6 7 8]

Mutation function: Gaussian – thêm một số ngẫu nhiên vào mỗi vector đầu vào của một cá thể. Số ngẫu nhiên này được lấy từ phân bố Gauss.

- Bước 3: chạy hàm DataSelection với đầu vào là chromosome tốt nhất vừa tìm

được để sinh ra tập dữ liệu mới (outData.mat) là dữ liệu đầu vào cho bộ phân lớp MPM.

http://etrithuc.vn

- Bước 4: chạy bộ phân lớp MPM với tập dữ liệu là “outData”. Lặp lại bước 2 đến 4 nhiều lần với những điều kiện dừng ở bước 2 là “Generations” để thu được những số liệu phục vụ cho quá trình phân tích.

- Bước 5: thống kê số liệu các lần thực hiện bước 2 đến 4 và so sánh kết quả thu

được từ bước 1.

5.3.2. Phân tích kết qu

a. Kết quả thực hiện phân lớp trên bộ dữ liệu ban đầu: Test_Train(311x120) được chia thành bộ Training (218x120) và bộ Test (93x120).

Underbound on correct

classification of future data

training set accuracy test set accuracy (adsbygoogle = window.adsbygoogle || []).push({});

0.8084 98.1651 70.9677

b. Kết quả thực hiện phân lớp trên bộ dữ liệu outData (311x k) với k là số cột thuộc tính mới được tối ưu từ bộ dữ liệu ban đầu nhờ thuật tốn di truyền.

Chúng ta sử dụng điều kiện dừng cho quá trình tìm kiếm chromosome tốt nhất của thuật tốn di truyền là “Generations”.

Trường hợp 1: Generations = 30 với 15 lần chạy thử.

Number of

features best fitness

Underbound on correct classification of future data training set accuracy test set accuracy 1 72 19.355 0.7213 93.578 80.6452 2 50 22.581 0.6053 91.2844 77.4194 3 63 23.656 0.6594 93.1193 76.3441 4 55 16.129 0.6261 89.9083 83.871 5 57 20.43 0.6439 90.367 79.5699 6 54 19.355 0.6297 91.2844 80.6452 7 65 23.656 0.6575 94.0367 76.3441 8 60 18.28 0.6769 91.7431 81.7204 9 56 17.204 0.6608 93.1193 82.7957 10 57 23.656 0.6317 89.9083 76.3441 11 61 22.581 0.6123 88.9908 77.4194

http://etrithuc.vn 12 61 20.43 0.6882 94.4954 79.5699 13 51 20.43 0.6302 89.4495 79.5699 14 53 23.656 0.6534 90.8257 76.3441 15 57 21.505 0.6846 92.6606 78.4946 MAX 72 23.656 0.7213 94.4954 83.871 Trung bình 0.652086667 91.65138667 79.1398 Nhận xét: - Số chiều của tập dữ liệu mới giảm xấp xỉ 1.6 lần so với tập dữ liệu ban đầu. - Tỷ lệ phân lớp chính xác được cải thiện rõ rệt: tăng từ 70.9677 lên 79.1398. - Tuy nhiên tỷ lệ chính xác của bộ dữ liệu huấn luyện lại bị giảm: giảm từ

98.1651 xuống 91.6514.

Trường hợp 2: Generations = 45 với 15 lần chạy thử. Bảng 5.x -

Number of

features best fitness

Underbound on correct classification of future data training set accuracy test set accuracy

http://etrithuc.vn 1 52 15.054 0.6424 91.7431 84.9462 2 53 17.204 0.6588 93.1193 82.7957 3 50 11.828 0.6028 88.0734 88.172 4 59 13.978 0.6391 92.6606 86.0215 5 62 15.054 0.7077 95.8716 74.9462 6 58 16.129 0.6711 90.8257 83.671 7 57 20.43 0.6594 91.2844 78.5204 8 61 19.355 0.6317 90.367 80.6452 9 56 15.04 0.6728 91.5431 80.3061 10 59 15.054 0.6379 92.0367 81.3105 11 55 13.978 0.6361 89.4495 80.235 12 55 16.129 0.713 89.013 79.9021 13 60 18.28 0.6354 94.1902 83.2019 14 52 11.828 0.6588 93.9012 81.023 15 58 22.581 0.7102 90.102 80.2091 MAX 62 22.581 0.713 95.8716 88.172 Trung bình 0.65848 91.61205333 81.72706

Std Em tính them phương sai

Trong excel dung hàm stdev()

Hình 5.xx- Nhận xét:

http://etrithuc.vn

- Tỷ lệ phân lớp chính xác được cải thiện rõ rệt: tăng từ 70.9677 lên 81.7270. - Tuy nhiên tỷ lệ chính xác của bộ dữ liệu huấn luyện lại bị giảm: giảm từ

98.1651 xuống 91.6120.

Trường hợp 3: Generations = 60 với 15 lần chạy thử.

Số lượng

thuộc tính fitness ?? best

Underbound on correct classification of future data ?? Tỷ lệđúng của tập huấn luyện Kết quả của tập kiểm tra 1 55 13.978 0.6379 89.4495 86.0215 2 56 16.129 0.7026 92.2018 83.871 3 56 16.129 0.6361 90.8257 83.871 4 56 15.054 0.6688 91.7431 84.9462 5 55 19.355 0.6543 90.8257 80.6452 6 57 18.28 0.6597 91.2844 81.7204 7 53 18.28 0.6728 94.0367 81.7204 8 59 19.355 0.652 91.7431 80.6301 9 61 15.054 0.6796 92.2018 84.9462 10 54 19.355 0.6297 91.2844 80.6452 11 61 20.43 0.6882 94.4954 89.5609 12 52 15.024 0.6891 95.0923 80.1091 13 54 13.978 0.6557 89.9083 82.0968 14 52 19.355 0.6543 90.8257 80.6452 15 60 11.828 0.6028 88.0734 82.172 MAX 61 20.43 0.7026 95.0923 89.5609 AVERAGE 0.658906667 91.59942 82.90674667

http://etrithuc.vn Nhận xét:

- Số chiều của tập dữ liệu mới giảm xấp xỉ 2 lần so với tập dữ liệu ban đầu. - Tỷ lệ phân lớp chính xác được cải thiện rõ rệt: tăng từ 70.9677 lên 82.9067. - Tuy nhiên tỷ lệ chính xác của bộ dữ liệu huấn luyện lại bị giảm: giảm từ

98.1651 xuống 91.5994.

Trường hợp 4: Generations = 80 với 15 lần chạy thử.

Number of

features best fitness (adsbygoogle = window.adsbygoogle || []).push({});

Underbound on correct classification of future data training set accuracy test set accuracy 1 55 19.355 0.6543 90.8257 80.6452 2 63 18.28 0.682 93.1193 81.7204 3 50 16.129 0.6557 90.367 83.871 4 56 12.903 0.6229 89.4495 87.0968 5 60 13.978 0.6879 92.2018 86.0215 6 54 12.903 0.6093 89.9083 87.0968 7 65 18.28 0.6736 93.1193 81.7204 8 62 19.355 0.7009 92.2018 83.871 9 59 19.355 0.652 91.7431 80.6452 10 57 20.43 0.6594 91.2844 81.7204

http://etrithuc.vn 11 55 19.355 0.6779 91.7431 81.7204 12 52 13.978 0.6805 94.0367 83.1213 13 61 16.129 0.6259 90.8257 80.872 14 55 19.355 0.6543 90.8257 80.6452 15 56 16.129 0.7026 92.2018 83.871 MAX 65 20.43 0.7026 94.0367 87.0968 Trung bình 0.662613333 91.59021333 82.97590667 Nhận xét: - Số chiều của tập dữ liệu mới giảm xấp xỉ 1.8 lần so với tập dữ liệu ban đầu. - Tỷ lệ phân lớp chính xác được cải thiện rõ rệt: tăng từ 70.9677 lên 82.9759. - Tuy nhiên tỷ lệ chính xác của bộ dữ liệu huấn luyện lại bị giảm: giảm từ

98.1651 xuống 91.5902.

Trường hợp 5: Generations = 100 với 15 lần chạy thử.

Number of

features best fitness

Underbound on correct classification of future data training set accuracy test set accuracy 1 57 15.054 0.67 92.2018 84.9462

http://etrithuc.vn 2 59 12.903 0.6266 88.5321 87.0968 3 61 16.129 0.6259 90.8257 83.871 4 55 13.978 0.6527 89.9083 86.0215 5 56 13.978 0.6488 90.367 86.0215 6 58 11.828 0.6745 91.7431 88.172 7 62 19.355 0.7009 92.2018 80.6452 8 56 18.28 0.6307 90.8257 81.7204 9 55 18.28 0.6543 90.8257 81.7204 10 63 19.355 0.6924 92.6606 80.6452 11 58 9.6774 0.6577 91.2844 90.3226 12 58 12.903 0.6544 92.6606 87.0968 13 52 13.978 0.6805 94.0367 86.0215 14 58 17.204 0.6733 93.1193 82.7957 15 63 16.129 0.6925 94.0367 83.871 MAX 63 19.355 0.7009 94.0367 90.3226 Trung bình 0.662346667 91.68196667 84.73118667 Nhận xét: - Số chiều của tập dữ liệu mới giảm xấp xỉ 1.9 lần so với tập dữ liệu ban đầu. - Tỷ lệ phân lớp chính xác được cải thiện rõ rệt: tăng từ 70.9677 lên 84.7312.

http://etrithuc.vn

- Tuy nhiên tỷ lệ chính xác của bộ dữ liệu huấn luyện lại bị giảm: giảm từ

98.1651 xuống 91.682.

So sánh kết quả 5 trường hợp kiểm thử với điều kiện dừng là Generations tăng dần.

Nhận xét:

- Tỷ lệ phân lớp chính xác đối với bộ dữ liệu huấn luyện với tập thuộc tính mới gần như khơng thay đổi khi ta tăng dần giá trị của Generations và tỷ lệ

này nhỏ hơn so với tỷ lệ phân lớp chính xác cho bộ dữ liệu huấn luyện gốc (119 thuộc tính).

- Khi ta tăng dần giá trị của Generations, thì tỷ lệ phân lớp chính xác đối với

Một phần của tài liệu CNTT1002 (Trang 39 - 62)