Tải bản đầy đủ (.pdf) (16 trang)

CÀI ĐẶT GIẢI THUẬT K-MEANS CHO BÀI TOÁN GOM CỤM 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 (404.91 KB, 16 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
LỚP CAO HỌC KHÓA 6
CÀI ĐẶT GIẢI THUẬT K-MEANS
CHO BÀI TOÁN GOM CỤM VĂN BẢN
HVTH: Phạm Nguyễn Trường An
MSHV: CH1101062
GVHD: PGS. TS. ĐỖ PHÚC
Báo cáo cuối kỳ
KHAI PHÁ DỮ LIỆU
Phạm Nguyễn Trường An Khai phá dữ liệu
Mục lục
I.Đặt vấn đề 3
1.Giới thiệu tổng quan 3
a.Bài toán gom cụm 3
b.Đặc điểm của bài toán gom cụm 4
2.Đặt vấn đề gom cụm văn bản 4
II.Giải thuật K-Means 5
1.Ý tưởng chính: 5
2.Ví dụ minh họa thuật toán K-Means: 6
3.Đặc điểm thuật toán K-Means 11
III.Áp dụng giải thuật K-Means cho văn bản 11
IV.Cài đặt và thử nghiệm 13
1.Cách thức thử nghiệm 13
2.Chương trình thử nghiệm 13
V.Kết luận 15
VI.TÀI LIỆU THAM KHẢO: 16
GVHD: PGS.TS. ĐỖ PHÚC Trang 2/16
Phạm Nguyễn Trường An Khai phá dữ liệu
I. Đặt vấn đề.
1. Giới thiệu tổng quan


a. Bài toán gom cụm
Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các
phương pháp học không giám sát (Unsupervised Learning) trong máy học (Machine
Learning). Có rất nhiều định nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có
thể hiểu phân cụm là các qui trình tìm cách nhóm các đối tượng đã cho vào các cụm
(clusters), sao cho các đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối
tượng khác cụm thì không tương tự (Dissimilar) nhau.
Trong nhiều tình huống thực tế ta có thể bắt gặp vấn đề gom cụm. Vấn đề này
đã xuất hiện từ lâu, vào những năm 60 thế kỷ trước mới được chú ý và nghiên cứu
bằng phương pháp toán học. Ngày nay phạm vi ứng dụng của bài toán chia côm bao
gồm nhiều lĩnh vực, sinh học, tâm lý học, y học, kỹ thuật, cho đến kinh tế tiếp thị, v.
v…
Ví dụ:
1. (Y học) Có một ca ngộc độc thực phẩm và rất nhiều bệnh nhân cùng nhập
viện một lúc. Dựa trên các triệu chứng lâm sàn cần phân bệnh nhân thành hai nhóm:
nhóm đặc biệt nghiêm trọng và nhóm ngộ độc nhẹ để có thể nhanh chóng phân tuyến
cho bệnh nhân được điều trị kịp thời.
2. (Kinh tế) Với kết quả kiểm toán cuối năm, cần phân các công ty con thành
hai nhóm làm ăn thua lỗ và nhóm trên đà phát triển để có cách phân bố vốn đầu tư
hợp lý., v.v
Ta phân biệt kỹ thuật gom cụm với kỹ thuật phân lớp (classification) vốn thuộc
lớp các phương pháp học có giám sát (Supervised Learning). Trong kỹ thuật phân lớp,
yêu cầu được là với một tập dữ liệu đã được gán nhãn vào từng lớp hoặc cụm cụ thể,
GVHD: PGS.TS. ĐỖ PHÚC Trang 3/16
Phạm Nguyễn Trường An Khai phá dữ liệu
ta cần xác định một mẫu dữ liệu hoàn toàn mới thuộc lớp hay cụm nào. Việc gán nhãn
phân lớp cho dữ liệu sẵn có có thể được xác định bằng chính phương pháp gom cụm
hoặc bằng kinh nghiệm chuyên gia. Tuy một số giải thuật gom cụm có thể được chỉnh
sửa để thực hiện việc phân lớp nhưng thường chúng không hiệu quả bằng các thuật
toán phân lớp vốn được thiết kế riêng cho kỹ thuật đặc thù này.

b. Đặc điểm của bài toán gom cụm
Một phương pháp gom cụm được đánh giá là tốt nếu như nó tạo ra các cụm có
chất lượng cao với tương tự cao cho trong lớp ( intra- class), tương tự thấp giữa các
lớp ( inter- class). Vì thế ta có thể thấy chất lượng của kết quả gom cụm phụ thuộc vào
độ đo tương tự sử dụng và việc cài đặt độ đo tương tự này. Ngoài ra, chất lượng của
phương pháp gom cụm cũng được đo bởi khả năng phát hiện các mẫu bị che ( hidden
patterns).
Trong khai phá dữ liệu đôi khi ta có yêu cầu sau đối với việc gom cụm:
• Scalability: Có thể thay đổi kích cỡ.
• Khả năng làm việc với các loại thuộc tính khác nhau.
• Khám phá ra các cụm có hình dạng bất kì.
• Các yêu cầu tối thiểu cho tri thức lĩnh vực nhằm xác định các tham biến nhập
• Khả năng làm việc với dữ liệu có chứa nhiễu ( outliers).
• Không nhạy cảm với thứ tự các bản ghi nhập vào.
• Khả năng làm việc với dữ liệu nhiều chiều.
• Có thể diễn dịch và khả dụng
2. Đặt vấn đề gom cụm văn bản.
Dựa vào những lý thuyết chung nói trên về bài toán gom cụm, tiểu luận này đặt
ra yêu cầu giải quyết vấn đề gom cụm văn bản dựa trên ý tưởng về tình huống giả
định trong thực tế như sau: Có một lượng rất lớn hồ sơ trong kho lưu trữ cần được
truy lục để xử lý. Biết rằng số hồ sơ này có nội dung thuộc về k nhóm phân biệt, mỗi
nhóm chỉ có thể được xử lý bởi các chuyên gia về đúng lĩnh vực của nhóm đó. Yêu
cầu cần một thuật toán có thể nhanh chóng phân số hồ sơ trên thành k nhóm dựa trên
GVHD: PGS.TS. ĐỖ PHÚC Trang 4/16
Phạm Nguyễn Trường An Khai phá dữ liệu
nội dung để có thể chuyển giao cho các chuyên gia phù hợp xử lý.
Tình huống giả định trên được chọn vì mức độ gần gũi với thực tế cũng như độ
khó tương đối phù hợp với tiểu luận. Tình huống đặt ra yêu cầu phải hiểu và cài đặt
được một thuật toán gom cụm văn bản, cũng như một phương án tính khoảng cách
giữa các đối tượng dữ liệu là văn bản dựa trên nội dung của chúng. Trước khi đi vào

phần chi tiết của tiểu luận chúng ta sẽ phát biểu lại yêu cầu của tình huống trên một
cách tường minh hơn:
Input:
– Một tập các file text thô (plain text) không có cấu trúc.
– Số lượng các cụm cần phải phân các file text thô này
Output:
– Danh sách các file text của từng cụm. Mỗi file chỉ xuất hiện trong duy nhất một
cụm.
II. Giải thuật K-Means.
1. Ý tưởng chính:
K-Means[1] là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ
thuật phân cụm. Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các
đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K
nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm
nhóm (centroid ) là nhỏ nhất.
Thuật toán K-Means thực hiện qua các bước chính sau:
1. Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm được đại
diện bằng các tâm của cụm.
2. Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng
khoảng cách Euclidean)
3. Nhóm các đối tượng vào nhóm có tâm gần đối tượng nhất
4. Xác định lại tâm mới cho các nhóm
GVHD: PGS.TS. ĐỖ PHÚC Trang 5/16
Phạm Nguyễn Trường An Khai phá dữ liệu
5. Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của các
đối tượng.
Lưu đồ thuật toán K-Means
2. Ví dụ minh họa thuật toán K-Means:
Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặc
trưng X và Y như sau. Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm (K=2)

dựa vào các đặc trưng của chúng.
Bước 1. Khởi tạo tâm (centroid) cho 2 nhóm. Giả sử ta chọn A là tâm của nhóm
GVHD: PGS.TS. ĐỖ PHÚC Trang 6/16
Phạm Nguyễn Trường An Khai phá dữ liệu
thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ 2 (tạo độ tâm
nhóm thứ hai c2 (2,1)).

Bước 2. Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng
cách Euclidean)
Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tương
ứng với đối tượng A, cột thứ 2 tương ứng với đối tượng B,…). Hàng thứ nhất trong
ma trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâm của nhóm thứ
nhất (c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễn khoảng cách của các đối
tượng đến tâm của nhóm thứ 2 (c2).
Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâm
GVHD: PGS.TS. ĐỖ PHÚC Trang 7/16
Phạm Nguyễn Trường An Khai phá dữ liệu
c2(2,1) là 2.83 được tính như sau:
Bước 3. Nhóm các đối tượng vào nhóm gần nhất
Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gồm có 1 đối tượng A và nhóm 2
gồm các đối tượng còn lại B,C,D.
Bước 5. Tính lại tọa độ các tâm cho các nhóm mới dựa vào tọa độ của các đối
tượng trong nhóm. Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫn không đổi,
c1(1,1). Tâm nhóm 2 được tính như sau:
GVHD: PGS.TS. ĐỖ PHÚC Trang 8/16
Phạm Nguyễn Trường An Khai phá dữ liệu
Bước 6. Tính lại khoảng cách từ các đối tượng đến tâm mới

Bước 7. Nhóm các đối tượng vào nhóm
Bước 8. Tính lại tâm cho nhóm mới

GVHD: PGS.TS. ĐỖ PHÚC Trang 9/16
Phạm Nguyễn Trường An Khai phá dữ liệu

Bước 8. Tính lại khoảng cách từ các đối tượng đến tâm mới
Bước 9. Nhóm các đối tượng vào nhóm
GVHD: PGS.TS. ĐỖ PHÚC Trang 10/16
Phạm Nguyễn Trường An Khai phá dữ liệu
Ta thấy G
2
= G
1
(Không có sự thay đổi nhóm nào của các đối tượng) nên thuật
toán dừng và kết quả phân nhóm như sau:
3. Đặc điểm thuật toán K-Means
Thuật toán K-Means có ưu điểm là đơn giản, dễ hiểu và cài đặt. Tuy nhiên,
một số hạn chế của K-Means là hiệu quả của thuật toán phụ thuộc vào việc chọn số
nhóm K (phải xác định trước) và chi phí cho thực hiện vòng lặp tính toán khoảng cách
lớn khi số cụm K và dữ liệu phân cụm lớn.
Ngoài ra, khi thao tác với dữ liệu lớn có khả năng điều kiện dừng của thuật toán
K-Means không bao giờ thỏa. Để đảm bảo tính dừng của thuật toán, chúng ta có thể
đơn giản hóa điều kiện dừng bằng cách giới hạn số lần lặp của thuật toán hoặc xác
định một ngưỡng chặn dưới ε sao cho nếu sau mỗi lần lặp không có tâm cụm nào dịch
chuyển một khoảng cách nhỏ hơn ε thì thuật toán sẽ dừng.
III. Áp dụng giải thuật K-Means cho văn bản.
Để áp dụng được giải thuật K-Means cho văn bản, ta cần một phương pháp tính
khoảng cách giữa các văn bản dựa trên nội dung của chúng. Một trong những phương
pháp tiếp cận phổ biến cho việc này là chuyển hóa văn bản thành các điểm trên không
gian tọa độ.
Giả sử ta có tập hợp N gồm tất cả các từ (term) trong tất cả các văn bản cần
gom cụm. Ta có thể xây dựng một không gian tọa độ |N| chiều, và như thế mỗi văn

bản sẽ được biểu diễn thành một điểm trong không gian với giá trị của những tọa độ là
trọng số của từ trong văn bản đó. Chúng ta có một số cách tính trọng số thông dụng:
1. Tần suất từ (term frequency - TF): Trọng số từ là tần suất xuất hiện của từ
đó trong tài liệu. Cách định trọng số này nói rằng một từ là quan trọng chomột tài liệu
nếu nó xuất hiện nhiều lần trong tài liệu đó.
2. TFIDF: Trọng số từ là tích của tần suất từ TF và tần suất tài liệu nghịch đảo
GVHD: PGS.TS. ĐỖ PHÚC Trang 11/16
Phạm Nguyễn Trường An Khai phá dữ liệu
của từ đó và được xác định bằng công thức
IDF = log(N / DF) + 1
trong đó:
N là kích thước của tập tài liệu huấn luyện;
DF là tần suất tài liệu: là số tài liệu mà một từ xuất hiện trong đó.
Trọng số TFIDF kết hợp thêm giá trị tần suất tài liệu DF vào trọng số TF. Khi
một từ xuất hiện trong càng ít tài liệu (tương ứng với giá trị DF nhỏ) thì khả năng
phân biệt các tài liệu dựa trên từ đó càng cao.
Các từ được dùng để biểu diễn các tài liệu cũng thường được gọi là các đặc
trưng. Để nâng cao tốc độ và độ chính xác phân loại, tại bước tiền xử lý văn bản, ta
loại bỏ các từ không có ý nghĩa cho phân loại văn bản. Thông thường những từ này là
những từ có số lần xuất hiện quá ít hoặc quá nhiều. Tuy vậy việc loại bỏ những từ này
có thể không làm giảm đáng kể số lượng các đặc trưng. Với số lượng các đặc trưng
lớn bộ phân loại sẽ học chính xác tập tài liệu huấn luyện, tuy vậy nhiều trường hợp
cho kết quả dự đoán kém chính xác đối với các tài liệu mới. Để tránh hiện tượng này,
ta phải có một tập tài liệu mẫu đủ lớn để huấn luyện bộ phân loại. Tuy vậy, thu thập
được tập mẫu đủ lớn tương ứng với số lượng đặc trưng thường khó thực hiện được
trong thực tế. Do đó để cho bài toán phân loại có hiệu quả thực tiễn, cần thiết phải làm
giảm số lượng đặc trưng.
Có nhiều phương pháp chọn đặc trưng hiệu quả. ‹ đây, chúng tôi sử dụng
phương pháp lượng tin tương hỗ . Phương pháp này sử dụng độ đo lượng tin tương hỗ
giữa mỗi từ và mỗi lớp tài liệu để chọn các từ tốt nhất. Lượng tin tương hỗ giữa từ t

và lớp c được tính như sau:
MI (t ,c)=

t ∈{0,1}

c∈{0,1}
P (t ,c)log P
(t ,c)
P (t)P (c)
trong đó:
P(t, c) là xác suất xuất hiện đồng thời của từ t trong lớp c;
P(t) là xác suất xuất hiện của từ t và
P(c) là xác suất xuất hiện của lớp c.
Độ đo MI toàn cục (tính trên toàn bộ tập tài liệu huấn luyện) cho từ t được tính
GVHD: PGS.TS. ĐỖ PHÚC Trang 12/16
Phạm Nguyễn Trường An Khai phá dữ liệu
như sau:
MI
avg
(t)=

i
P(c
i
) MI ( t ,c
i
)
Khi sử dụng các phương pháp chọn đặc trưng, ta có thể loại bỏ đi nhiều từ quan
trọng, dẫn đến mất mát nhiều thông tin, điều đó làm cho độ chính xác phân loại sẽ
giảm đi đáng kể. Trong thực tế, theo thí nghiệm của Joachims [4], rất ít đặc trưng

không có liên quan, và hầu hết đều mang một thông tin nào đó, vì vậy một bộ phân
loại tốt nên được huấn luyện với nhiều đặc trưng nhất nếu có thể
IV. Cài đặt và thử nghiệm.
1. Cách thức thử nghiệm.
Dữ liệu được chọn để tiến hành thử nghiệm sẽ là các bài báo được tải từ trang
báo điện tử vnexpress.net. Các bài báo này đã được phân loại sẵn một cách tương đối
vào những chuyên mục trên trang vnexpress.net vì vậy dữ liệu thử nghiệm sẽ bao gồm
50 bài báo được rút trích ngẫu nhiên trong chuyên mục Âm nhạc và 50 bài báo được
rút trích ngẫu nhiên trong chuyên mục Giáo dục.
Các file này được đặt tên theo quy tắc [Tên chủ đề].DTR_[ngày đăng bài]_[Mã
số bài báo].txt. Nội dung file là toàn văn bài báo bằng tiếng Việt (bao gồm tiêu đề) đã
được xử lý đưa về dạng text thô.
Chúng ta tiến hành cài đặt giải thuật K-Means với số cụm (K) là 2 và quan sát
kết quả gom cụm của K-Means so với kết quả phân loại từ trước của báo
vnexpress.net để có thể có một cái nhìn tương đối về hiệ quả của thuật toán.
2. Chương trình thử nghiệm.
Chương trình thử nghiệm được viết bằng ngôn ngữ lập trình Python và xây
dựng giao diện đồ họa sử dụng bộ thư viện wxWidgets. Thư việ này cung cấp một
API duy nhất, dễ sử dụng để viết các ứng dụng giao diện trên nhiều nền tảng
(Windows / Unix / Mac), ứng dụng của bạn sẽ có giao diện và cách tương tác phù hợp
với từng nền tảng đó.
Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm
GVHD: PGS.TS. ĐỖ PHÚC Trang 13/16
Phạm Nguyễn Trường An Khai phá dữ liệu
1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động hiện
được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software
Foundation quản lý.
Theo đánh giá của Eric S. Raymond, Python là ngôn ngữ có hình thức rất sáng
sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn
cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của

chính Guido van Rossum trong một bài phỏng vấn ông[1].
Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời
gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2,
Windows, Linux và các hệ điều hành khác thuộc họ Unix. Trở thành một ngôn ngữ lý
tưởng cho việc viết các ứng dụng đa nền tảng.
Giao diện của ứng dụng thử nghiệm trên nền tảng linux.
Chương trình cài đặt chính hai thao tác quan trọng là bước tiền xử lý, phân tích
các bài báo trong dữ liệu thử nghiệm để rút trích và xây dựng đặc trưng dựa trên nội
dung. Sau đó thuật toán K-Means sẽ được áp dụng trên dữ liệu đã qua tiền xử lý và
GVHD: PGS.TS. ĐỖ PHÚC Trang 14/16
Phạm Nguyễn Trường An Khai phá dữ liệu
kết quả sẽ được hiển thị trong text box lớn ở giữa chương trình.
V. Kết luận
Tiểu luận đã trình bày được hiểu biết về bài toán gom cụm trong khai phá dữ
liệu và đi sâu trình bày một thuật toán gom cụm tiêu biểu – thuật toán K-Means. Tiểu
luận cũng trình bày cách vận dụng linh hoạt thuật toán K-Means vào việc xử lý một
tình huống giả định trong thực tế mà chưa được đề cập trong tài liệu môn học. Qua đó
nêu bật được tính mềm dẻo dễ ứng dụng của thuật toán K-Means.
Nộp kèm tiểu luận là chương trình thử nghiệm và dữ liệu thử nghiệm đã được
chuẩn bị từ trước phù hợp với bài toán đặt ra trong tiểu luận. Chương trình được cài
đặt bằng một ngôn ngữ và thư viện lập trình đa nền tảng, được đóng gói hoàn chỉnh để
có thể chạy và thể hiện kết quả thử nghiệm trên nhiều nền tảng hệ điều hành máy tính
khác nhau.
GVHD: PGS.TS. ĐỖ PHÚC Trang 15/16
Phạm Nguyễn Trường An Khai phá dữ liệu
VI. TÀI LIỆU THAM KHẢO:
1. MacQueen, J. B. (1967). "Some Methods for classification and Analysis
of Multivariate Observations". 1. Proceedings of 5th Berkeley
Symposium on Mathematical Statistics and Probability. University of
California Press. pp. 281–297. MR 0214227. Zbl 0214.46201. Retrieved

2009-04-07.
2. Nguyễn Linh Giang, Nguyễn Mạnh Hiển, Phân loại văn bản tiếng Việt
với bộ phân loại vectơ hỗ trợ SVM. Tạp chí CNTT&TT, Tháng 6 năm
2006.
GVHD: PGS.TS. ĐỖ PHÚC Trang 16/16

×