Với kết quả thu được qua mô hình ở trên, ta có được bộ thuộc tính tốt nhất. Để tìm được bộ thuộc tính tối ưu nhỏ hơn nữa, luận văn đề xuất phương án như sau:
Bước 1: Tiến hành chạy tiếp nhiều lần trên bộ dữ liệu đó để lấy ra x bộ thuộc tính có độ phù hợp cao nhất. Mỗi lần đều thực hiện kiểm chứng chéọ Ký hiệu bộ có số thuộc tính ít nhất là c. Mỗi bộ đều có độ phù hợp tương ứng, ký hiệu là fi với i = 1, . . , x
Bước 2: Tính trọng số của cột thứ j theo công thức sau:
Ở đây j = 1, 2,…., n. Với n là số cột của bảng dữ liệu ban đầu Giá trị của k là: k=1 nếu cột thứ j của bộ thuộc tính thứ i được
chọn; ngược lại k=0 nếu cột đó không được chọn. Bước 3:
Dựa vào giá trị trọng số của các cột vừa tính được, sắp xếp chỉ số các cột theo giá trị giảm dần của trọng số từ lớn xuống nhỏ, được một dãy (*) gồm n phần tử, ký hiệu là g1, g2, . . . , gn
Lấy ra m tập con, ký hiệu là (**) của dãy (*). Mỗi tập con có số phần tử khác nhau, ký hiệu số phần tử của mỗi dãy tcz (z=1,2,..,m) là . Nếu xét các tập con theo đúng thứ tự như (**) thì với y = 1,2,3…,m-1. Dãy tc1
gồm b phần tử đầu tiên, dãy tc2 gồm b phần tử của dãy tc1 và thêm a phần tử kế tiếp nữa, số phần tử của các dãy sau cũng tính tương tự. Chú ý . Giá trị của a, b là bao nhiêu tùy vào bộ số liệu ban đầu của bài toán.
43
Bước 4: Lại tiến hành như phần 2, tức là:
Xây dựng mạng nơron để huấn luyện cho m bộ . Mỗi bộ có mạng nơron riêng phù hợp với nó. Chúng chỉ khác nhau số nơron lớp vàọ
Tiến hành kiểm tra từ 10 – 50 lần cho mỗi bộ trên.
Bước 5: Lập bảng so sánh giá trị trung bình và độ lệch chuẩn của các bộ cột trên qua các lần thực nghiệm kiểm trạ Từ đó rút ra nhận xét bộ cột nào cho kết quả tối ưu nhất.
Trên đây là hướng đề xuất để tìm ra bộ thuộc tính tối ưu nhỏ nhất, cách làm này mục đích là để hạn chế số lượng thuộc tính đầu rạ Tìm bộ thuộc tính có số lượng ít hơn bộ thuộc tính tìm được qua hệ thống được mô tả ở phần 4.2 và 4.3 mà vẫn đảm bảo được mục tiêu của bài toán. Cũng với ý tưởng này chúng ta có thể làm một cách tổng quát, đó là: hạn chế số lượng thuộc tính đầu ra sau giai đoạn đột biến, tức là ép số thuộc tính theo tỷ lệ cho trước. Cụ thể ta thực hiện như sau:
Giả sử sau giai đoạn đột biến, quần thể có một lượng cá thể nhất định, số lượng này là cho trước hay sau mỗi thế hệ số lượng cá thể trong quần thể không đổi là ụ Tương ứng có u bộ thuộc tính sau phép toán đột biến.
Mỗi bộ thuộc tính được đại diện bởi chuỗi nhị phân 0 và 1, ký hiệu là Ai ( i =1, 2, …, u). Tổng các phần tử 0, 1 trong chuỗi này là n, tức là bằng số thuộc tính của bộ dữ liệu ban đầụ Thiết lập mảng Bi lưu các vị trí mà giá trị tại đó 1 của Aị Mỗi mảng có ki
phần tử (i =1, 2, . . , u).
a1 a2 a3 a4 a5 . . . an-1 an
1 0 1 0 1 . . . 1 1
Chuỗi nhị phân Ai đại diện cho bộ thuộc tính thứ i
1 2 3 . . . t-1 t
a1 a3 a5 . . . an-1 an
Mảng Bi có ki phần tử (ki = t)
Giả sử số thuộc tính mong muốn ở đầu ra của hệ thống là p, với p nhỏ hơn ki. Thì với mỗi bộ thuộc tính sau giai đoạn đột biến, phải bỏ bớt đi ki – p thuộc tính. Để làm được việc này, ta sinh ngẫu nhiên ki – p lần số tự nhiên trong khoảng (1, ki). Giả sử trong
44
một lần sinh, được số nguyên là q, (1≤ q ≤ ki ), thì xóa đi phần tử thứ q mảng B và thay vào đó là vị trị cuối cùng của mảng nàỵ Còn với chuỗi nhị phân A, thay giá trị của vị trí thứ q của chuỗi này từ 1 thành 0. Lặp lại quá trình này cho đến khi số phần tử của mảng B là p thì dừng lạị
1 2 3 . . . q . . . t-1 t
a1 a3 a5 . . . az . . . an-1 an
Xóa đi phần tử thứ q là az và thay vào đó là phần tử cuối cùng an
1 2 3 . . . q . . . t-1
a1 a3 a5 . . . an . . . an-1
Cuối cùng chúng ta so sánh kết quả tìm được của hướng cải tiến đề xuất này với kết quả thu được của phương pháp học máy trong phần 4.2, 4.3. Rút ra kết luận xem hướng cải tiến mà luận văn đưa ra có khả thi và thu được kết quả có tốt hay không. Chương 5 tiếp theo luận văn trình bày kết quả thực nghiệm chạy trên bộ dữ liệu thực tế và sẽ trả lời cho chúng ta biết câu hỏi vừa đặt ra ở trên.
45
Chương 5: Kết quả thực nghiệm