Tải bản đầy đủ
1 Quá trình khai phá dữ liệu và giải thuật di truyền (GA)

1 Quá trình khai phá dữ liệu và giải thuật di truyền (GA)

Tải bản đầy đủ

Khai phá dữ liệu (Data Mining-DM) là một khái niệm ra đời vào những năm
cuối của thập kỷ 80. Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông
tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, khai
phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm
ra các mẫu hình có tính chính quy (regularities) trong tập dữ liệu.
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát
hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để chỉ
toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn. Trong đó, khai
phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc
biệt để chiết xuất ra các mẫu (pattern) (hay các mô hình) từ dữ liệu.
Có nhiều kỹ thuật khác nhau được sử dụng để khai phá dữ liệu nhằm thực
hiện hai chức năng mô tả và dự đoán. Với mỗi chức năng thì có các kỹ thuật DM
tương ứng với nó. Không có kỹ thuật nào tốt để áp dụng chung cho mọi trường hợp.
Kỹ thuật khai phá dữ liệu mô tả có nhiệm vụ mô tả các tính chất hoặc các
đặc tính chung của dữ liệu trong CSDL hiện có. Một số kỹ thuật khai phá trong
nhóm này là: phân cụm dữ liệu, tổng hợp, trực quan hoá, phân tích sự phát triển và
độ lệch,…
Kỹ thuật khai phá dữ liệu dự đoán có nhiệm vụ đưa ra các dự đoán dựa vào
việc suy diễn trên CSDL hiện thời. Một số kỹ thuật khai phá trong nhóm này là:
phân lớp, hồi quy, cây quyết định, thống kê, mạng nơron, luật kết hợp,….
Một số kỹ thuật phổ biến thường được sử dụng để khai phá dữ liệu hiện nay
bao gồm:
1.Cây quyết định
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp
và dự báo. Các đối tượng dữ liệu được phân thành các lớp. Các giá trị của đối tượng

9

dữ liệu chưa biết sẽ được dự đoán, dự báo. Tri thức được rút ra trong kỹ thuật này
thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với NSD.
2.Phân lớp dữ liệu và hồi quy
Mục tiêu của phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu.
Quá trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu.
Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình chấp
nhận được.
Phương pháp hồi quy tương tự như phân lớp dữ liệu. Nhưng khác ở chỗ nó
dùng để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá trị
rời rạc.
3.Phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong
tập dữ liệu vào các cụm, sao cho những đối tượng thuộc cùng một lớp là tương
đồng nhau.
4.Khai phá luật kết hợp
Mục tiêu của phương pháp này là phát hiện và đưa ra mối liên hệ giữa các
giá trị dữ liệu trong CSDL. Đầu ra của giải thuật luật kết hợp là tập luật kết hợp tìm
được. Phương pháp khai phá luật kết hợp gồm có hai bước:
Bước 1: Tìm ra tất cả các tập mục phổ biến. Một tập mục phổ biến được xác
định thông qua việc tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu.
Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, luật phải thoả
mãn độ hỗ trợ và độ tin cậy cực tiểu.
5. Mạng nơron
Đây là một trong những kỹ thuật DM được ứng dụng phổ biến hiện nay.

10

Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn
luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người.
Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo, dự
đoán với độ chính xác và độ tin cậy cao. Nó có khả năng phát hiện ra được các xu
hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được. Tuy
nhiên phương pháp mạng nơ ron rất phức tạp và quá trình tiến hành nó gặp rất nhiều
khó khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm tra thử nghiệm.
6.Giải thuật di truyền
Giải thuật di truyền là quá trình mô phỏng theo tiến hoá của tự nhiên. Ý
tưởng chính của giải thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự
nhiên và tiến hoá trong sinh học.
Giải thuật di truyền tuy không phải là kỹ thuật khai phá dữ liệu được triển
khai mạnh nhất trong kinh tế - xã hội, nhưng nó có những lợi thế riêng, đặc biệt là
trong ứng dụng trong ngành giáo dục với các bài toán lập lịch như sắp xếp thời khóa
biểu. Đây cũng là lý do mà đề tài tập trung nghiên cứu vào đó.
1.1.2 Giải thuật di truyền
Lịch sử phát triển giải thuật di truyền:
Tính toán tiến hóa (Evolutionary computing) là các kỹ thuật tìm kiếm theo
xác suất có ý tưởng xuất phát từ nguyên lý “chọn lọc tự nhiên” trong học thuyết về
sự tiến hóa của Darwin, và các kỹ thuật về gen. Các kỹ thuật này được áp dụng cho
một quần thể bao gồm các cá thể nhân tạo, chúng chiến đấu trong cuộc đấu tranh
sinh tồn trong đó các cá thể thích nghi nhất sẽ sống sót và cho phép sản sinh ra các
cá thể mới.
Giải thuật di truyền (Genetic Algorithm) do John Holland phát minh và được
ông phát triển cùng với các đồng nghiệp và sinh viên vào những năm 1970. Cuốn
sách " Sự thích nghi trong các hệ tự nhiên và nhân tạo” (Adaption in Natural and

11

Artificial Systems) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình nghiên
cứu và phát triển đó.
Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết
một số bài toán và gọi phương pháp này là "Lập trình di truyền" (Genetic
Programming).
Năm 1996, thư viện các hàm C++ cho GA (GALib) đã được Mathew Wall,
trường Đại học Massachussets (Massachusetts Institute of Technology) đưa ra.Đây
là các công cụ sử dụng giải thuật di truyền cho tối ưu hoá các chương trình có sử
dụng sự biểu diễn hay các toán tử di truyền.
1.2 Các khái niệm cơ bản về GA
1.2.1 Nhiễm sắc thể
Nhiễm sắc thể (NST) hay còn gọi là cá thể. Các sinh vật sống đều cấu tạo từ
các tế bào, và tất cả các tế bào này đều bao gồm một tập hợp các nhiếm sắc thể
giống nhau. Các NST này là một chuỗi các ADN, quy định đặc tính của cả cá thể.
Mỗi NST bao gồm rất nhiều GEN, mỗi gen quy định một trạng thái nào đó.
Trong bài toán tối ưu, cá thể tương ứng với một lời giải tiềm tàng. Việc mã
hóa và giải mã gen, biến đổi giữa kiểu gen và kiểu hình được quyết định bởi tính
chất của bài toán. Nhưng thông thường có một số phương phá p mã hóa NST thường
gặp sau:

1.2.1.1 Mã hóa nhị phân
Đây là cách mã hóa nhị phân phổ biến nhất.Mỗi một nhiễm sắc thể là một
chuỗi bit nhị phân 0 & 1. Mỗi một bit có thể biểu diễn một đặc tính nào đó của lời
giải, và số bit cần để mã hóa được tính toán hợp lý để chuỗi nhị phân không quá
dài, mà chỉ vừa đủ cho biểu diễn thông tin cần thiết cho lời giải.
Chronosome A
Chronosome B

00110101000010111010
10111100110010001011

Bảng1: Mã hóa nhị phân độ dài 20 bit

12

Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một
biến hay nhiều biến. Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một (tập) giá
trị của (các) biến hoặc mỗi bộ chuỗi nhị phân sẽ biểu diễn một bộ nghiệm của hàm.
Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo
ra không gian mã hoá lớn hơn so với không gian giá trị của NST. Do đó, với nhiều
bài toán thì biểu diễn nhị phân là không hữu hiệu.
1.2.1.2 Mã hóa hoán vị
Mỗi NST là một chuỗi hoán vị của các số (thường là số tự nhiên) để biểu
diễn một trình tự nào đó.
Chronosome A
Chronosome B

479321865
965143278

Bảng2: Mã hóa hoán vị 2 NST A&B
Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự. Đối với các
bài toán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong
chuỗi đó làm thay đổi trình tự của nó. Mã hóa hoán vị rất hữu ích với các bài toán
sắp xếp.
1.2.1.3 Mã hóa giá trị
Mã hóa giá trị trực tiếp có thể được sử dụng trong các bài toán mà giá trị của nó
là các giá trị phức tạp nhất là số thực. Sử dụng mã hóa nhị phân sẽ trở nên khó khăn.
Trong đó, mỗi NST là một chuỗi các giá trị. Các giá trị có thể là các thông tin liên quan
đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn.
Chronosome A
Chronosome B
Chronosome C

1.4765 6.2324 3.8653 9.2134
ABDJEIFJDHDIERJFDLDFLFEGT
(black) (black) (blue) (red) (white)

Bảng3: Mã hóa giá trị các NST A, B, C
Mã hoá theo giá trị thường dùng cho các bài toán đặc biệt. Trong cách mã
hoá này ta thường phải phát triển các toán tử đột biến và lai ghép cho phù hợp với
từng bài toán.

13