1. Trang chủ
  2. » Luận Văn - Báo Cáo

CÀI ĐẶT GIẢI THUẬT K-MEANS CHO BÀI TOÁN GOM CỤM VĂN BẢN

16 1,7K 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 404,91 KB

Nội dung

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ể,... Đặ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

Trang 1

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

Trang 2

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

Trang 3

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ể,

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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:

Trang 9

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

Trang 10

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

Trang 11

Ta thấy G2 = G1 (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

Trang 12

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

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

Trang 13

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 đó

Trang 14

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à

Trang 15

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

Trang 16

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

Ngày đăng: 09/04/2015, 22:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w