Tải bản đầy đủ (.docx) (80 trang)

Ứng dụng giải thuật di truyền vào phân loại tài liệu dạng văn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.77 MB, 80 trang )

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Ứng dụng giải thuật di truyền vào phân loại
tài liệu dạng văn bản” là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn
của PGS.TS. Bùi Thế Hồng. Toàn bộ phần mềm do chính tôi lập trình và kiểm thử.
Tôi xin chịu trách nhiệm về lời cam đoan của mình.
Các số liệu và thông tin sử dụng trong luận văn này hoàn toàn là trung thực.
Tác giả

Trần Thị Thanh


2

MỤC LỤC


3

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
Các từ viết tắt
KDD
VSM
VC
SVM
RBF
SMO
TF
k-NN
WFST

Nghĩa tiếng anh


Knowledge Discovery and Data
Mining
Vector Space Model
Vapnik-Chervonenkis
Support Vector Machine
Radial Basis Functions
Sequential Minimal Optimization
term frequency
k-Nearest Neighbor
Weighted Finite State Transducer

SW

Stop Words

Nghĩa tiếng việt
Kỹ thuật phát hiện tri thức
và khai phá dữ liệu
Mô hình không gian vector
Kích thước VC
Bộ phân loại Vector hỗ trợ
Bộ phân loại chức năng
Tối ưu hóa tuần tự cực tiểu
Tần suất từ
Thuật toán k-NN
Mô hình WFST kết hợp
mạng Noron
Loại từ dừng



4

DANH MỤC CÁC BẢNG


5

DANH MỤC CÁC HÌNH VẼ


6

MỞ ĐẦU
Chúng ta đang sống trong một thế giới có nền khoa học phát triển rất hiện đại.
Thế kỷ 21 là thế kỷ của công nghệ thông tin nói chung và của tin học nói riêng. Đó
là một trong những thành tựu vĩ đại nhất mà con người đã đạt được trong thiên niên
kỷ này. Tin học giữ vai trò đặc biệt quan trọng trong các hoạt động của toàn nhân
loại. Nhân loại ứng dụng tin học vào phục vụ cho nghiên cứu khoa học, cho công
nghệ sản xuất, phục vụ cho nghành quản lý kinh tế, sản xuất kinh doanh, du lịch, y
tế tạo điều kiện cho nền sản xuất xã hội ngày càng phát triển đồng thời giảm bớt
đáng kể sức lao động của con người, đưa mức sống con người ngày càng cao
Kỹ thuật phát hiện tri thức và khai phá dữ liệu (KDD - Knowledge Discovery
and Data Mining) đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác
nhau ở các nước trên thế giới.
Tại Việt Nam, kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên
cứu và dần đưa vào ứng dụng. Bước quan trọng nhất của quá trình này là Khai phá
dữ liệu, giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu
hoặc các nguồn dữ liệu khổng lồ khác.
Lý do của điều này là sự phát triển của công nghệ thông tin và việc ứng dụng
công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều

năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ
ngày một nhiều. Theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này
(khoảng từ 5% đến 10%) được phân tích, trong khi số còn lại không được khai thác
và vẫn tiếp tục thu thập nên rất tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quan
trọng đã bị bỏ qua sau này có lúc cần đến nó. Mặt khác, trong môi trường cạnh
tranh, người ta ngày càng cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc
ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả
lời dựa trên một khối lượng dữ liệu khổng lồ đã có. Với những lý do như vậy, các
phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp


7

ứng được. Yêu cầu thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là
Kỹ thuật phát hiện tri thức và khai phá dữ liệu như đã nêu trên.
Có nhiều phương pháp tiếp cận, giải thuật nhằm ứng dụng công nghệ khai phá
dữ liệu vào công tác quản lý nguồn tài liệu văn bản trong đó giải thuật di truyền là
một hướng đi mới có nhiều ưu điểm trong kỹ thuật tìm kiếm lời giải tối ưu đáp ứng
yêu cầu của nhiều bài toán xử lý văn bản.
Luận văn cấu trúc gồm 3 chương:
Chương 1:
Chương 1 chúng ta tìm hiểu tổng quan về khai phá dữ liệu, quá trình khai
phá dữ liệu, các hướng tiếp cận và các phương pháp khai phá dữ liệu. Đặc điểm của
các bài toán khai phá dữ liệu và qui trình khám phá tri thức trong cơ sở dữ.
Chương 2:
Chương 2 nghiên cứu giải thuật di truyền và ứng dụng vào phân loại tài liệu
dạng văn bản. Trong chương này chúng ta tìm hiểu về các phép toán di truyền và
các tham số của giải thuật di truyền. Quá trình phân loại văn bản, bài toán phân loại
văn bản, các phương pháp biểu diễn văn bản và các thuật toán phân loại văn bản.
Chương 3:

Chương 3 chúng ta sẽ cài đặt chương trình thuật toán ở chương 2. Ứng dụng
giải thuật để tối ưu hóa độ thích nghi của từ khóa.
Luận văn này được hoàn thành dưới sự hướng dẫn tận tình của PGS.TS. Bùi Thế
Hồng, em xin bày tỏ lòng biết ơn chân thành của mình đối với thầy. Em xin chân
thành cảm ơn các thầy, cô giáo Viện Công nghệ thông tin, Trường Đại học Công
nghệ thông tin và Truyền thông - Đại học Thái Nguyên đã tham gia giảng dạy, giúp
đỡ em trong suốt qúa trình học tập nâng cao trình độ kiến thức. Tuy nhiên vì điều
kiện thời gian và khả năng có hạn nên luận văn không thể tránh khỏi những thiếu


8

sót. Em kính mong các thầy cô giáo và bạn đọc đóng góp ý kiến để đề tài được hoàn
thiện hơn.


9

CHƯƠNG 1: TÌM HIỂU VỀ KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu chung
1.1.1. Giới thiệu
Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông tin và
ngành công nghiệp phần cứng đã làm cho khả năng thu thập và lưu trữ thông tin của
các hệ thống thông tin tăng nhanh một cách chóng mặt. Bên cạnh đó việc tin học
hóa nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt
động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ.
Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinh doanh,
quản lý... trong đó có nhiều CSDL cực lớn. Sự bùng nổ này dẫn tới một yêu cầu cấp
thiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu
khổng lồ kia thành tri thức có ích. Từ đó các kỹ thuật khai phá dữ liệu đã trở thành

một lĩnh vực thời sự của nền công nghệ thông tin thế giới hiện nay.
1.1.2. Khái niệm
Thuật ngữ khai phá dữ liệu ra đời vào những năm cuối của thập kỷ 1980. Theo
Giáo sư Tom Mitchell “Khai phá dữ liệu là việc sử dụng dữ liệu lịch sử để khám
phá những quy tắc và cải thiện những quyết định trong tương lai”.
Với cách tiếp cận ứng dụng hơn, Tiến sỹ Fayyad đã phát biểu: “Khai phá dữ liệu,
thường được xem là việc khám phá tri thức trong các cơ sở dữ liệu, là một quá trình
trích xuất những thông tin ẩn trước đây chưa biết và có khả năng hữu ích, dưới dạng
các quy luật, ràng buộc, quy tắc trong cơ sở dữ liệu”. Tóm lại, khai phá dữ liệu là
một quá trình học tri thức mới từ những dữ liệu đã thu thập được. Ngoài thuật ngữ
khai phá dữ liệu còn có một số thuật ngữ khác được sử dụng với nghĩa tương đương
như: khai phá tri thức cơ sở dữ liệu (Knowlegde Mining from Databases), trích lọc
dữ liệu (Knowlegde Extraction), phân tích dữ liệu/ mẫu (Data/Pattern Analysis),
khảo cổ dữ liệu (Data Archaeology), nạo vét dữ liệu (Data Dredging). Thực ra, Khai
phá dữ liệu là một bước chính trong quá trình Khám phá tri thức trong CSDL
(Knowlegde Discovery in Databases - KDD).


10

1.1.3. Đặc điểm của bài toán khai phá dữ liệu
* Khai phá dữ liệu là giai đoạn chủ yếu của quá trình phát hiện tri thức.
Nếu phát hiện tri thức là toàn bộ quá trình xuất tri thức từ CSDL thì khai phá
dữ liệu là một giai đoạn chủ yếu của quá trình đó. Thông thường, quá trình phát
hiện tri thức từ dữ liệu phải trải qua rất nhiều giai đoạn. Có thể kể một vài giai đoạn
quan trọng là: tìm hiểu lĩnh vực ứng dụng và mục đích khai phá, xác định dữ liệu
liên quan và nhiệm vụ khai phá, tiền xử lý dữ liệu, chọn thuật toán khai phá và
chuyển dữ liệu về dạng phù hợp, thực hiện khai phá và sau đó là tinh lọc và ứng
dụng tri thức tìm được.
Khai phá dữ liệu là để tìm ra các mẫu có ý nghĩa được tiến hành trên tập dữ

liệu mà ta hy vọng sẽ thích hợp với nhiệm vụ khai phá hiện thời. Khai phá dữ liệu
không phải là tìm kiếm từ dữ liệu trong một thời gian đủ dài để cho ra những mẫu
không thực sự có ích như việc thống kê đã làm trước đây. Khai phá dữ liệu thường
bao gồm việc thử tìm mô hình phù hợp với tập dữ liệu và tìm kiếm các mẫu từ tập
dữ liệu theo mô hình đó.
* Mẫu tìm được từ quá trình khai phá dữ liệu phải có tính mô tả và dự đoán.
Mục đích chính của khai phá dữ liệu là chiết xuất tri thức từ dữ liệu. Những tri
thức này được sử dụng cho lợi ích cạnh tranh trên thương trường và trong nghiên
cứu khoa học. Dự đoán ở đây có nghĩa là trên cơ sở những điều đã biết trong quá
khứ để dự đoán trước những gì sẽ xảy ra trong tương lai. Còn mô tả tập trung vào ý
nghĩa hàm chứa trong mẫu tìm được và điều này là có nghĩa trong lĩnh vực ứng
dụng. Các mẫu cuối cùng tìm được do khai phá dữ liệu sẽ có một trong hai hoặc cả
hai tính chất này.
* Khai phá dữ liệu là quá trình trong đó con người làm trung tâm.
Mặc dù khai phá dữ liệu sử dụng nhiều phương pháp khác nhau và với sự hỗ
trợ của công cụ tin học nhưng trong bất cứ giai đoạn nào của quá trình khai phá, con
người vẫn luôn đóng vai trò quan trọng. Hệ thống không thể làm việc một cách
hoàn toàn tự động mà không có sự trợ giúp của con người.


11

Thật vậy, để quá trình khai phá cho ra kết quả tốt, cần phải có sự phối hợp trợ
giúp thường xuyên của các chuyên gia cả về lĩnh vực tin học lẫn lĩnh vực ứng dụng.
Sở dĩ có yêu cầu này là vì dữ liệu đầu vào và yêu cầu của bài toán khai phá thay đổi
vô chừng. Các chuyên gia về lĩnh vực ứng dụng sẽ giúp các chuyên gia về tin học
hiểu được điều họ mong muốn là gì. Sau đó, trách nhiệm của các chuyên gia tin học
là biên dịch lại những yêu cầu đó để hệ thống khai phá hiểu và tìm ra được điều mà
họ mong muốn.
Các thông tin đầu vào cho hệ thống khai phá là rất quan trọng. Thông tin có

đầy đủ, chính xác, đúng đắn và phù hợp với yêu cầu thì kết quả khai phá mới có thể
giúp ích cho người dùng được. Các thông tin này chỉ có thể được cung cấp bởi các
chuyên gia về lĩnh vực ứng dụng. Đó có thể là tập dữ liệu còn cần thiết, các tiêu
chuẩn dùng trong quá trình tìm kiếm tri thức, cả những kinh nghiệm được biểu diễn
bằng một ngôn ngữ nào đó mà hệ thống có thể hiểu được. Có thể khẳng định một
điều rằng, nếu quá trình khai phá tri thức không có sự phối hợp tích cực của các
chuyên gia tin học và các chuyên gia về lĩnh vực ứng dụng thì sẽ không đạt được
kết quả gì cả.
* Khai phá dữ liệu là quá trình tìm kiếm tri thức chỉ từ dữ liệu.
Lý luận và thực tiễn thực hiện các quá trình phát hiện tri thức mà ta xét ở đây
là sự tiếp thu, sử dụng và phát triển nhiều thành tựu và công cụ của các lĩnh vực đã
phát triển trước đó như: lý thuyết nhận dạng, hệ chuyên gia, trí tuệ nhân tạo… Dù
vậy, đặc điểm cơ bản giúp phân biệt việc phát hiện tri thức với các ngành đã có từ
trước là phát hiện tri thức là quá trình tìm kiếm tri thức trực tiếp từ dữ liệu. Ví dụ:
một hệ chuyên gia thì cơ sở tri thức được hình thành từ kinh nghiệm và kiến thức
của các chuyên gia là chủ yếu. Trong khi bài toán nhận dạng dùng tập mẫu cho
trước…
* Khai phá dữ liệu mang tính chất hướng nhiệm vụ.
Khai phá phải nhằm vào việc giải quyết tốt một số nhiệm vụ đề ra nào đó. Tri
thức mà ta đề cập đến trong bài toán khai phá dữ liệu là tri thức rút ra từ CSDL,
thường để phục vụ cho việc giải quyết một loạt các nhiệm vụ nhất định trong một


12

lĩnh vực nhất định. Không thể có các yêu cầu cho một hệ thống phát hiện tri thức –
trong đó khai phá dữ liệu là giai đoạn chủ yếu – là tìm mọi tri thức có thể có về lĩnh
vực đó. Ngoài ra, mỗi lĩnh vực đều có đặc thù riêng về dữ liệu và những yêu cầu
của lĩnh vực đó, sẽ không thể có một hệ thống phát hiện tri thức dùng cho mọi lĩnh
vực.

1.2. Quá trình khám phá tri thức trong cơ sở dữ liệu
Muốn thực hiện khai phá dữ liệu, đầu tiên phải tìm hiểu nghiệp vụ ứng dụng
và xác định mục tiêu khai phá. Điều này xuất phát từ nhu cầu thực tế của những
người làm trong lĩnh vực cần khai thác dữ liệu. Đó có thể là các tri thức chiết xuất
được sử dụng cho lợi ích cạnh tranh trên thương trường hoặc các lợi ích trong
nghiên cứu khoa học. Đây là một bước rất quan trọng giúp định hướng cho toàn bộ
quá trình khai phá. Có hiểu rõ vấn đề và xác định đúng đắn mục tiêu thì các bước
sau mới được thực hiện tốt và bài toán khai phá dữ liệu mới có thể cho kết quả tốt
được. Ngoài ra, việc hiểu rõ tri thức đã có của người dùng cũng rất quan trọng vì
qua đó sẽ hiểu rõ lĩnh vực ứng dụng hơn. Và những tri thức này thực sự giúp ích
được rất nhiều trong khi thực hiện khai phá lẫn khi thực hiện hậu xử lý kết quả đạt
được của quá trình khai phá luật nhằm lọc ra các luật thật sự giúp ích được cho
người dùng.
Sau khi tìm hiểu các lĩnh vực ứng dụng và xác định mục đích khai phá dữ liệu
một cách đúng đắn, sẽ bước vào quá trình khám phá tri thức trong cơ sở dữ liệu như
hình 1.1.


13

Hình 1.1: Quá trình khám phá tri thức
Bước 1: Tích hợp dữ liệu, làm sạch dữ liệu, và chọn dữ liệu tạo nên 1 kho dữ liệu
Bước 2: Biến đổi dữ liệu thích hợp với bộ máy khai phá
Bước 3: Xác định nhiệm vụ khai phá dữ liệu và lựa chọn kĩ thuật khai phá, kết quả
cho ta nguồn tri thức thô
Bước 4: Đánh giá các mẫu, dựa trên 1 số tiêu trí để tiến hành kiểm tra và lọc nguồn
tri thức thu được.
1.2.1. Gom dữ liệu
Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu. Đây là bước
được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ

các nguồn ứng dụng Web.
1.2.2. Trích lọc dữ liệu
Tập hợp dữ liệu từ nhiều nguồn khác nhau vào trong một cơ sở dữ liệu.
+ Chỉ chọn những dữ liệu cần thiết cho tiến trình khai phá dữ liệu.


14

+ Loại bỏ dữ liệu dư thừa và trùng lặp.
+ Phát hiện và giải quyết các mâu thuẫn trong dữ liệu.
* Dữ liệu dư thừa, trùng lặp:
+ Một thuộc tính là thừa nếu nó có thể suy ra từ các thuộc tính khác.
+ Cùng một một thuộc tính có thể có nhiều tên trong các cơ sở dữ liệu
khác nhau (ví dụ: năm sinh, tuổi).
+ Một số mẫu tin dữ liệu bị lặp lại.
Cần tìm cách loại bỏ những dữ liệu dư thừa để tăng độ chính xác.
1.2.3. Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu
Làm sạch dữ liệu là vấn đề quan trọng nhất của nhà kho dữ liệu.
Các nhiệm vụ của công đoạn làm sạch dữ liệu:
+ Điền các giá trị còn thiếu.
+ Xác định các sai biệt và khử dữ liệu tạp nhiễu.
+ Sửa chữa các dữ liệu mâu thuẫn.
- Bỏ qua các mẫu tin có giá trị thiếu: dễ nhưng không hiệu quả, đặc biệt khi
tỷ lệ giá trị thiếu của thuộc tính cao
- Điền các giá trị thiếu bằng tay: không khả thi.
- Điền các giá trị thiếu tự động:
+ Thay thế bằng hằng số chung ví dụ: “không biết” có thể thành lớp
mới trong dữ liệu.
+ Thay thế bằng giá trị trung bình của thuộc tính.
Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được

“làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch
nghiêm trọng.


15

Các giải thuật tiền xử lý bao gồm:
a. Xử lý dữ liệu bị thiếu/mất: Các dữ liệu bị thiếu sẽ được thay thế bởi các giá
trị thích hợp.
b. Khử sự trùng lặp: Các đối tượng dữ liệu trùng lặp sẽ bị loại bỏ đi. Kỹ thuật
này không được sử dụng cho các tác vụ có quan tâm đến phân bố dữ liệu.
c. Giảm nhiễu: Nhiễu và các đối tượng tách rời khỏi phân bố chung sẽ bị loại
đi khỏi dữ liệu.
d. Chuẩn hóa: miền giá trị của dữ liệu sẽ được chuẩn hoá.
e. Rời rạc hóa: các dữ liệu số sẽ được biến đổi ra các giá trị rời rạc.
f. Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có.
g. Giảm chiều: các thuộc tính chứa ít thông tin sẽ được loại bớt.
h. Kiểm tra tính toàn vẹn của dữ liệu
1.2.4. Chuyển đổi dữ liệu
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa ra có thể sử dụng và
điều khiển được bởi việc tổ chức lại nó tức là dữ liệu sẽ được chuyển đổi về dạng
phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp.
Thông thường người ta đưa dữ liệu về dạng chuẩn, đó là dạng nhị phân. Việc
chuyển dữ liệu về dạng nhị phân không làm thay đổi thông tin của dữ liệu đầu vào.
Đây có thể xem như là một cách thể hiện khác của dữ liệu ban đầu.
Thực tế, có hai cách để thể hiện lại dữ liệu (dạng nhị phân và dạng số) trước
khi dùng như là đầu vào của thuật toán. Cách chuyển dữ liệu về dạng nhị phân nói
trên sẽ làm tăng số chiều dữ liệu nhưng bù lại thuật toán dùng để khai phá trở nên
đơn giản hơn. Cách còn lại không chuyển dữ liệu về dạng nhị phân mà chuyển về
dạng số, không làm thay đổi số chiều của dữ liệu nhưng thuật toán khai phá phải xử

lý dữ liệu phức tạp hơn.
1.2.5. Khai phá dữ liệu - Phát hiện và trích mẫu dữ liệu
Đây là bước quan trọng nhất của quá trình khám phá tri thức. Ở giai đoạn này
nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu. Thuật


16

toán thường dùng là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các mô hình dữ
liệu tuần tự,.v.v.
1.2.6. Đánh giá kết quả mẫu
Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá
dữ liệu. Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai
lệch.Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức
cần chiết xuất. Đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa trên một số
phép đo. Sau đó sử dụng các kỹ thuật trình diễn và trực quan hoá dữ liệu để biểu
diễn tri thức khai phá được cho người sử dụng.
Trên đây là 6 giai đoạn trong quá trình khám phá tri thức, trong đó giai đoạn 5
là giai đoạn được quan tâm nhiều nhất hay còn gọi đó là Data Mining.
Mối quan hệ chặt chẽ giữa các giai đoạn trong quá trình khám phá tri thức
trong CSDL là rất quan trọng cho việc nghiên cứu trong khai phá dữ liệu. Bởi vì
một giải thuật trong khai phá dữ liệu không thể được phát triển độc lập, không quan
tâm đến bối cảnh áp dụng mà thường được xây dựng để giải quyết một mục tiêu cụ
thể. Do đó, sự hiểu biết bối cảnh vận dụng là rất cần thiết. Thêm vào đó, các kỹ
thuật được sử dụng trong các giai đoạn trước có thể ảnh hưởng đến hiệu quả của các
giải thuật sử dụng trong các giai đoạn tiếp theo.
1.3. Khái quát các kỹ thuật khai phá dữ liệu
Kỹ thuật khai phá dữ liệu có thể được chia làm 2 nhóm chính kỹ thuật khai
phá dữ liệu dự đoán và kỹ thuật khai phá dữ liệu mô tả.
1.3.1. Kỹ thuật khai phá dữ liệu dự đoán

Kỹ thuật này có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ
liệu hiện thời. Nó sử dụng các biến hay các trường trong cơ sở dữ liệu để dự báo các
giá trị không biết hay các giá trị tương lai. Các kỹ thuật này gồm có: phân lớp, hồi
quy…
1.3.1.1. Phân lớp dữ liệu
Phân lớp dữ liệu là kĩ thuật dựa trên tập dữ liệu huấn luyện cho trước và sự
huấn luyện của con người, các giải thuật phân lớp sẽ học ra bộ phân lớp dùng để


17

phân dữ liệu mới vào một trong những lớp đã được xác định trước. Phân lớp cũng là
tiên đoán loại lớp của nhãn. Bên cạnh kĩ thuật phân lớp có một hình thức tương tự
là kĩ thuật tiên đoán, kĩ thuật tiên đoán khác với phân lớp ở chỗ phân lớp chỉ liên
quan đến tiên đoán loại lớp của nhãn còn kĩ thuật tiên đoán mô hình những hàm
đánh giá liên tục.
Quá trình phân lớp dữ liệu thường gồm 2 bước: Xây dựng mô hình và sử dụng
mô hình để phân lớp dữ liệu .
* Bước 1: Xây dựng mô hình
Một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có.
Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi là thuộc
tính lớp. Các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện. Mô hình được
biểu diễn là những luật phân lớp, cây quyết định và những công thức toán học. Các
nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô
hình, vì vậy phương pháp này còn được gọi là học có thầy khác với phân cụm dữ
liệu là học không có thầy.
* Bước 2: Sử dụng mô hình để phân lớp dữ liệu
Trước hết chúng ta phải tính độ chính xác của mô hình, trong đó nhãn được
Debt


Income

biết của mẫu kiểm tra được so sánh với kết
quả phân lớp của mô hình, độ chính xác là phần trăm của tập mẫu kiểm tra mà phân
loại đúng bởi mô hình, tập kiểm tra là độc lập với huấn luyện. Nếu độ chính xác là
chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu
khác trong tương lai.
Hình 1.2: Các đường biên phân loại đối với một láng giềng gần nhất


18

Hình 1.3: Đường biên phân loại học bởi phân loại không tuyến tính
1.3.1.2. Hồi quy
Phương pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng để dự đoán
về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng để dự đoán về các giá trị rời
rạc.
Hồi quy là học một hàm ánh xạ một mục dữ liệu vào một biến dự báo giá trị
thực. Các ứng dụng hồi quy có nhiều, ví dụ như đánh giá xác xuất một bệnh nhân sẽ
chết mang lại các kết quả của một tập các xét nghiệm chẩn đoán, dự báo nhu cầu
của người tiêu dùng đối với một sản phẩn mới như một hoạt động quảng cáo tiêu
dùng. Hình 1.4 cho thấy kết quả của hồi quy tuyến tính tại đó "total debt - tổng nợ"
phù hợp như một hàm tuyến tính của "income - thu nhập": sự phù hợp là nghèo nàn
này do vậy chỉ có một mối tương quan yếu giữa hai biến.

Hình 1.4: Một hồi quy tuyến tính đơn giản với tập dữ liệu vay nợ


19


1.3.2. Kỹ thuật khai phá dữ liệu mô tả
Kỹ thuật này có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của
dữ liệu trong CSDL hiện có. Kỹ thuật này bao gồm: Phân cụm (clustering), tóm tắt
(summerization), trực quan hóa (visualiztion), phân tích sự phát triển và độ lệch
(Evolution and deviation analyst), phân tích luật kết hợp (association rules)…
1.3.2.1 Phân cụm dữ liệu
Các kỹ thuật phân cụm dữ liệu sẽ nhóm các đối tượng dữ liệu có tính chất
giống nhau vào cùng một nhóm.Các đối tượng được gom cụm sao cho mức độ
tương tự giữa các đối tượng trong cùng một cụm là cực đại và mức độ tương tự giữa
các đối tượng nằm trong các cụm khác nhau là cực tiểu. Các cụm được đặc trưng
bằng các tính chất chung của tất cả các đối tượng trong cụm.
Phân cụm dữ liệu là một ví dụ của phương pháp học không có thầy. Không
giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước
các mẫu dữ liệu huấn luyện. Vì thế có thể coi phân cụm dữ liệu là một cách học
bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ. Trong phương pháp này
bạn sẽ không biết kết quả của các cụm thu được sẽ như thế nào khi bắt đầu quá
trình. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các
cụm thu được. Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân
loại thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web…
Khảo sát các cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ liệu
lớn, do đó phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho
các thuật toán khai phá dữ liệu khác.


20

Hình 1.5: Một phép phân cụm đơn giản của tập dữ liệu vào 3 cụm
1.3.2.2. Tóm tắt
Liên quan đến các phương pháp tìm kiếm một mô tả tóm tắt cho một tập con
dữ liệu. Ví dụ như việc lập bảng các độ lệch chuẩn và trung bình cho tất cả các

trường. Các phương pháp phức tạp hơn liên quan đến nguồn gốc của các luật tóm
tắt, khai thác mối liên hệ hàm giữa các biến. Các kỹ thuật tóm tắt thường được áp
dụng cho các phân tích dữ liệu tương tác có tính thăm dò và tạo báo cáo tự động.
1.3.3. So sánh các tiếp cận khai phá dữ liệu: phân cụm - phân lớp
Hai kỹ thuật khai phá dữ liệu phổ biến để tìm ra các mẫu ẩn trong dữ liệu đó là
phân cụm và phân lớp. Mặc dù phân lớp và phân cụm thường được đề cập trong
cùng một breath, chúng vẫn là các tiếp cận phân tích khác nhau. Ở đây ta đề cập tới
các khía cạnh giống và khác nhau giữa chúng.
Tưởng tượng một cơ sở dữ liệu bao gồm các bản ghi về hoạt động mượn sách
tại thư viện. Nó bao gồm các thuộc tính như: MaSach, SoThe, NgayMuon,
NgayTra.
Phân cụm tự động xử lý cụm các bản ghi có liên quan với nhau. Các bản ghi
có liên quan được nhóm lại với nhau trên cơ sở có các giá trị tương đồng tại một số
thuộc tính. Đây là cách tiếp cận phân đoạn cơ sở dữ liệu theo phương pháp phân
cụm thường được dùng như là một kỹ thuật khai thác bởi nó không cần người dùng
đầu cuối mà nhà phân tích cho biết trước là có bao nhiêu bản ghi có liên quan tới
nhau. Trong thực tế, mục tiêu của phép phân tích thường để phát hiện ra các đoạn
hay các cụm và sau đó kiểm tra các thuộc tính và các giá trị mà định nghĩa các cụm
hay các đoạn. Như vậy là cụm các tài liệu thường được học viên mượn và mượn kết
hợp sẽ trở nên rõ ràng hơn. Điều này sẽ được dùng để điều chỉnh việc bố trí, sắp
xếp tài liệu cho hợp lý. Hay trong việc phân cụm các khách hàng có thể được dùng
để điều chỉnh chiến lược marketing và quảng cáo tới từng cụm khách hàng cụ thể.
Có rất nhiều giải thuật khác nhau được dùng để phân cụm nhưng tất cả chúng
đều tham gia, chia sẻ, đặc tính lặp ấn định các bản ghi tới một cụm, tính toán một
độ đo (thường là tương đồng hoặc sự khác biệt), các bản ghi ấn định lại vào các


21

cụm cho tới khi các độ đo được tính toán không thay đổi nhiều, chỉ ra rằng xử lý đã

hội tụ tới các đoạn ổn định. Các bản ghi trong phạm vi một cụm có sự tương đồng
với nhau hơn và khác biệt nhiều so với các bản ghi ở các cụm khác. Tuỳ thuộc vào
thực thi đặc thù, độ đo sự tương đồng có nhiều dạng (như dựa trên khoảng cách
không gian, dựa trên độ biến thiên thống kê) nhưng toàn bộ chúng đều có chung
mục đích là nhóm lại các bản ghi có liên quan.
1.3.4. Ứng dụng phân cụm
Trong xử lý ảnh (phân đoạn ảnh, rút gọn độ phân giải của ảnh).
Phân cụm các tài liệu liên quan để dễ tìm kiếm.
Khoa học kinh tế (đặc biệt nghiên cứu tiếp thị).
Phân cụm các gene và protein có cùng chức năng.
Phân cụm các vùng theo lượng mưa
1.3.5. Ví dụ

Hình 1.6: Phân cụm các điểm trong không gian


22

Hình 1.7: Phân cụm các ngôi nhà dựa vào khoảng cách địa lý
Kỹ thuật phân lớp khác với phân cụm. Phân lớp giống phân cụm ở chỗ cũng
phân đoạn các bản ghi khách hàng vào trong các đoạn riêng biệt gọi là các lớp.
Nhưng không giống như phân cụm, phân lớp đòi hỏi người dùng cuối/nhà phân tích
biết trước là có bao nhiêu lớp được định nghĩa. Ví dụ các lớp được định nghĩa để
biết được là có nên cho học viên mượn sách tiếp không, dựa trên trường
NgayMuon, NgayTra, nếu đã trả sách cũ thì mới được mượn sách mới. Từng bản
ghi trong tập dữ liệu cần được dùng để xây dựng người phân lớp đã có một giá trị
đối với thuộc tính được dùng để định nghĩa các lớp. Bởi mỗi bản ghi có một giá trị
đối với thuộc tính được dùng để định nghĩa các lớp và bởi người dùng cuối quyết
định trên thuộc tính được dùng, phân lớp khai thác ít hơn phân cụm.
Đối tượng của một người phân lớp là không khai thác dữ liệu vào các đoạn

được tìm ra, nhưng phần nào quyết định được có bao nhiêu bản ghi mới cần phân
lớp.
Phân lớp thông thường trong khai phá dữ liệu cũng dùng rất nhiều các giải
thuật và giải thuật đặc thù đã dùng có thể tác động tới cách các bản ghi mới được
phân lớp. Một tiếp cận phổ biến đối với các bộ phân loại là sử dụng các cây quyết
định để phân chia và phân đoạn các bản ghi. Các bản ghi mới có thể được phân lớp
bằng cách đi theo cây từ gốc, qua các nhánh và các nút, tới một lá đại diện cho một
lớp. Đường đi mà một bản ghi có được qua một cây quyết định có thể được biểu thị
như là một luật. Nhưng bởi theo trật tự tự nhiên của cách một cây quyết định chia
các bản ghi (tức là thuộc tính phân tách tốt nhất - các giá trị xuất hiện sớm trong


23

cây) có thể cho kết quả trong một cây quyết định là quá nhạy cảm cho các phân chia
ban đầu. Bởi vậy, khi đánh giá tính chất thích hợp của một cây, điều quan trọng là
phải kiểm tra tỷ lệ lỗi đối với từng nút lá (tỷ lệ các bản ghi phân lớp không đúng).
Một đặc tính thú vị của các bộ phân loại cây quyết định đó là bởi đường đi có thể
được biểu diễn như các luật, khi đó nó có thể sử dụng các phép đo để đánh giá khả
năng của các luật như Support, Confidence và Lift cũng để đánh giá tính hữu ích,
năng lực, usefulness của cây.
Cuối cùng, mặc dù phân cụm và phân lớp thường được dùng vì mục đích phân
đoạn các bản ghi dữ liệu, chúng có các mục tiêu khác nhau và có được các kết quả
phân đoạn theo nhiều cách khác nhau.
1.4. Ý nghĩa thực tiễn và tình hình ứng dụng
1.4.1. Ý nghĩa thực tiễn
Hiện nay các hoạt động sản xuất, kinh doanh, quản lý… đều ứng dụng công
nghệ thông tin, các thiết bị lưu trữ ngày càng tăng dung lượng nên hàng triệu CSDL
được tạo ra, và hàng ngày khối lượng dữ liệu lại tăng lên không ngừng, yêu cầu
trong việc khai thác dữ liệu ngày càng cao hơn. Ngoài đòi hỏi về năng suất, tính

linh hoạt, sự chuyên môn hóa trong vấn đề khai thác, CSDL cần phải mang lại tri
thức hơn là chính dữ liệu đó. Trước những yêu cầu này cách khai thác CSDL truyền
thống cho thấy sự hạn chế của mình. Phương pháp học máy chủ yếu được áp dụng
trong các CSDL đầy đủ, ít biến động và tập dữ liệu không quá lớn, trong khi đó
khối lượng dữ liệu tăng lên không ngừng.
Phương pháp thống kê tuy là một trong những nền tảng của khai phá dữ liệu,
nhưng phương pháp thống kê còn tồn tại một số điểm yếu: các phương pháp thống
kê hoạt động hoàn toàn theo dữ liệu, nó không sử dụng tri thức sẵn có về lĩnh vực,
kết quả có thể rất nhiều và khó có thể làm rõ được…
Khai phá dữ liệu ra đời đã khắc phục được những khó khăn này.


24

1.4.2. Tình hình ứng dụng
Với những ưu điểm của mình, khai phá dữ liệu đang được áp dụng một cách
rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau như: marketing, tài
chính, ngân hàng, bảo hiểm, khoa học, y tế, an ninh, viễn thông…
Rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật khai phá dữ
liệu vào các hoạt động sản xuất kinh doanh của mình và thu lợi ích to lớn như:
British Telecom đã phát hiện ra những nhóm người thường xuyên gọi cho nhau
bằng mobile và thu lại được hàng triệu USD; IBM Surf-Aid áp dụng khai phá dữ
liệu phân tích các lần đăng nhập Web vào các trang có liên quan đến thị trường để
phát hiện sở thích khách hàng, phục vụ việc đánh giá tiếp thị qua Web…
Một số ứng dụng khai phá dữ liệu đã có hiệu quả cao:
- Khai phá dữ liệu được vận dụng hiệu quả để giải quyết các bài toán phức tạp
trong các ngành đòi hỏi kỹ thuật cao như tìm kiếm dầu mỏ từ ảnh viễn thám, xác
định các vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc trong
hệ thống sản xuất.
- Tìm kiếm tri thức, quy luật của thị trường chứng khoán và đầu tư bất động

sản, xây dựng mô hình dự báo rủi ro…
- Phân tích hành vi mua sắm, cho biết các thông tin tiếp thị phù hợp với loại
khách hàng trong từng phân khu thị trường nhất định.
- Dự đoán tải sử dụng điện năng cho các công ty cung cấp điện, lưu lượng viễn
thông cho các công ty điện thoại…


25

CHƯƠNG 2: TÌM HIỂU VỀ THUẬT GIẢI DI TRUYỀN
2.1. Tổng quan về giải thuật di truyền
2.1.1. Giới thiệu
Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là
vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm. Mục đích chính của
các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu nhất cho bài toán trong thời
gian nhỏ nhất. Các thuật toán như tìm kiếm không có thông tin/vét cạn (tìm kiếm
trên danh sách, trên cây hoặc đồ thị) sử dụng phương pháp đơn giản nhất và trực
quan nhất hoặc các thuật toán tìm kiếm có thông tin sử dụng Heurictics để áp dụng
các tri thức về cấu trúc của thông gian tìm kiếm nhằm giảm thời gian cần thiết cho
việc tìm kiếm được sử dụng nhiều nhưng chỉ với không gian tìm kiếm nhỏ và không
hiệu quả khi tìm kiếm trong không gian tìm kiếm lớn.
Trong thực tiễn có rất nhiều bài toán tối ưu với không gian tìm kiếm rất lớn
cần phải giải quyết. Vì vậy, việc đòi hỏi thuật giải chất lượng cao và sử dụng kỹ
thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán có không gian
tìm kiếm lớn. Giải thuật di truyền là một trong những kỹ thuật tìm kiếm lời giải tối
ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng.
Từ những năm 1962, tại Mỹ, J.H.Holland đã đưa ra các khái niệm đầu tiên của
giải thuật di truyền. Tại Đức, vấn đề được nghiên cứu dưới tên gọi giải thuật tiến
hóa bởi các nhà nghiên cứu Rechenberg và Schwefel. Tuy có tên gọi và được tiếp
cận với cách khác nhau nhưng các nghiên cứu trên đều bắt nguồn từ các nguyên tắc

tiến hóa của tự nhiên.
Sau đây là mô hình giải quyết bài toán dựa trên các giải thuật di truyền.


×