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

Tiểu luận môn khai phá dữ liệu Thuật toán gom cụm dữ liệu K-Means

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 (279.66 KB, 16 trang )

Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2
1.1 Giới thiệu về khám phá tri thức 2
1.2 Khái quát về khai phá dữ liệu 3
1.3 Các phương pháp trong khai phá dữ liệu 3
Chương 2 GOM CỤM DỮ LIỆU 5
2.1 Khái quát về gom cụm dữ liệu 5
2.2 Các độ đo dữ liệu 5
2.3 Phân loại các phương pháp gom cụm dữ liệu 7
Chương 3 THUẬT TOÁN GOM CỤM DỮ LIỆU K-MEANS
3.1 Giới thiệu thuật toán K-Means 10
3.2 Thảo luận về thuật toán K-Means 10
3.3 Cài đặt thuật toán K-Means 11
3.3.1 Bộ dữ liệu thử nghiệm 11
3.3.2 Tiền xử lý và biến đổi dữ liệu 13
3.3.3 Đánh giá kết quả sau khi cài đặt 14
3.3.4 Giao diện chương trình thử nghiệm 14
TÀI LIỆU THAM KHẢO 17
Thuật toán gom cụm dữ liệu K-Means
Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu về khám phá tri thức
Với sự phát triển mạnh mẽ của công nghệ thông tin, dữ liệu trong đời sống, kinh tế,
xã hội liên tục gia tăng đã cung cấp cho con người nhưng tri thức mới, kiến thức được
phổ cập hơn đến với mọi người. Nhưng với sự gia tăng khối lượng kiến thức đến mức
khổng lồ đã đặt ra một vấn đề cấp bách. Vấn đề đó là làm sao để trích lọc những thông tin
quan trọng, cần thiết từ khối lượng dữ liệu khổng lồ và biến những thông tin kiến thức đó
thành các tri thức để nâng cao việc phục vụ cho cuộc sống. Từ đó, ngành khám phá tri
thức để phát triển để giải quyết vấn đề trên. Khám phá tri thức là một ngành bao hàm
nhiều lĩnh vực liên quan đến lĩnh vực nghiên cứu và xử lý dữ liệu khối lượng lớn như:
xác suất thống kê, máy học, tính toán song song… Tuy nhiên trong khám phá tri thức
được chia thành các bước chính sau đây: [1]
- Bước 1: Thu thập dữ liệu. Bước quan trọng vì để khám phá tri thức thì cần phải có


dữ liệu để khám phá. Bước này bao gồm các quá trình lựa chọn lĩnh vực khám
phá, xây dựng các thuộc tính biểu diễn và các cách thức thu thập, trích lọc dữ liệu.
- Bước 2: Tiền xử lý dữ liệu. Thực hiện việc làm sạch dữ liệu, giảm bớt nhiễu trong
dữ liệu, rút gọn và phân tách dữ liệu. (dữ liệu huấn luyện, dữ liệu kiểm tra …).
- Bước 3: Biến đổi dữ liệu. thực hiện chuẩn hóa và làm mịn dữ liệu để chuyển dữ
liệu về phù hợp với mô hình khám phá tri thức ở các bước sau.
- Bước 4: Khai phá dữ liệu. Đây là bước dùng các kỹ thuật phân tích để khai thác dữ
liệu. Đây là bước phức tạp và quan trọng nhất các khai phá tri thức.
- Bước 5: Đánh giá và biểu diễn tri thức. Đánh giá các tri thức vừa có được từ bước
trước để chọn lọc những tri thức quan trọng, đồng thời biểu diễn được các tri thức
theo các trực quan để có thể ứng dụng được các tri thức vừa mới tìm được.
Môn: Khai phá dữ liệu Trang 2
Thuật toán gom cụm dữ liệu K-Means
Hình 1.1: Các bước khám phá tri thức
1.2 Khái quát về khai phá dữ liệu
Khai phá dữ liệu là một bước quan trọng trong quá trình khám phá tri thức. Nhiệm vụ
của khai phá dữ liệu là khai thác thông tin, các tri thức tiềm ẩn trong dữ liệu để cung cấp
các thông tin cần thiết cho các lĩnh vực trong cuộc sống. Chính xác hơn, khai phá dữ liệu
là một quá trình tìm kiếm, chọn lọc các tri thức mới, tiềm ẩn trong tập dữ liệu.
1.3 Các phương pháp trong khai phá dữ liệu
Vì áp dụng nhiều kỹ thuật từ các lĩnh vực khác nhau như học máy, trí tuệ nhân tạo. Vì
vậy có khai phá dữ liệu được chia thành 2 nhóm phương pháp khác nhau
Theo quan điểm của máy học, các phương pháp của khai phá dữ liệu được chia thành
các dạng:
- Học có giám sát (Supervised Learning): Quá trình phân lớp các đối tượng trong
tập dữ liệu dựa trên một bộ phân lớp được quy định trước. Ví dụ: phân lớp văn bản
theo tiêu chí hành chính, văn bản…
- Học không có giám sát (Unsupervised Learning): Quá trính phân chia tập dữ liệu
thành các lớp dữ liệu tương tự nhau dựa trên các độ đo (độ tương tự) giữa các đối
tượng trong lớp mà không cần biết trước thông tin về lớp.

Môn: Khai phá dữ liệu Trang 3
Thuật toán gom cụm dữ liệu K-Means
- Học nữa giám sát (Semi-Supervised Learning): Quá trinh chia một tập dữ liệu
thành các lớp con dựa trên một số thông tin cho trước (thông tin về các lớp không
đầy đủ như học có giám sát).
Theo các lớp bài toán cần giải quyết, các phương pháp chính trong khai phá dữ liệu
được chia thành:
- Phân lớp và dự đoán (Classfication and Prediciton): Phân lớp một đối tượng vào
một trong các lớp đã biết trước. Đa phần bài toán thuộc dạng này còn được gọi là
phương pháp học có giám sát.
- Luật kết hợp (Association rules): Phương pháp tìm các luật biểu diễn tri thức ở
dạng luật điều kiện dựa trên xác suất (độ phổ biến và độ tin cậy) của luật.
- Phân tích chuỗi thời gian: Quá trình phân tích dữ liệu có thuộc tính biến đổi theo
thời gian. Bài toán phức tạp có nhiều ứng dụng trong thực tế như chứng khoán,
kinh tế, sinh học.
- Gom cụm dữ liệu: Gom nhóm các đối tượng trong dữ liệu thành các cụm dữ liệu.
Đây là phương pháp học không giám sát.
Chương 2 GOM CỤM DỮ LIỆU
2.1 Khái quát về gom cụm dữ liệu
Gom cụm dữ liệu là một phương pháp trong khai phá dữ liệu dùng để tìm kiếm, phát
hiện các cụm, các mẫu dữ liệu ẩn và quan trọng trong tập dữ liệu lớn để từ đó cung cấp
thông tin, tri thức cho việc ra quyết định. Thực tế hơn, gom cụm dữ liệu là quá trình phân
Môn: Khai phá dữ liệu Trang 4
Thuật toán gom cụm dữ liệu K-Means
chia tập dữ liệu ban đầu thành các cụm dữ liệu dựa trên độ tương tự hoặc độ không tương
tự giữa các đối tượng trong tập dữ liệu.
Sau khi xác định các đặc tính của dữ liệu ở các bước xử lý trước, bước tiếp theo trong
gom cụm dữ liệu cần lựa chọn phương pháp thích hợp để xác định khoảng cách giữa các
đối tượng, hay còn gọi là phép đo độ tương tự (hoặc độ không tương tự). Giá trị của hàm
tính độ đo tương tự càng lớn thì sự giống nhau giữa các đối tượng càng lớn và ngược lại

(Độ không tương tự cũng tỉ lệ như độ tương tự). Còn nếu xét theo khoảng cách giữa các
đối tượng, các đối tượng càng tương tự nhau thì khoảng cách càng nhỏ và đối tượng càng
khác nhau thì khoảng cách càng lớn.
Các bước chính trong bài toán gom cụm dữ liệu:
- Xây dựng hàm tính độ tương tự / khoảng cách giữa các đối tượng.
- Xây dựng các tiêu chuẩn Gom cụm
- Xây dựng mô hình cho cấu trúc dữ liệu.
- Lựa chọn thuật toán gom cụm phù hợp
- Xây dựng các thủ tục biểu diễn và đánh giá kết quả Gom cụm
2.2 Các cách thức đo lường dữ liệu
Cách thức đo lường dữ liệu tùy thuộc vào mẫu hình dữ liệu. Một tập dữ liệu X là
không gian metric nếu:
- Với mỗi cặp x, y thuộc X đều xác định được một số thực d(x,y) theo một quy tắc
nào đó và được gọi là khoảng cách của x,y.
- Mô hình không gian metric phải thỏa các điều kiện sau:
o D(x,y) > 0 nếu x ≠ y.
o D(x,y) = 0 nếu x = y.
o D(x, y) = D(y, x).
o D(x, y) ≤ D(x, z) + D(z, y).
Các mẫu dữ liệu với các dạng thuộc tính phổ biến:
- Mẫu dữ liệu có thuộc tính nhị phân: Thuộc tính nhị phân chỉ có 2 giá trị (0 và 1).
Trong đó, 1 có nghĩa là đúng và 0 có nghĩa là sai.
Hệ số đo lường thông dụng thường chỉ áp dụng cho thuộc tính nhị phân là hệ số đo
lường Jaccard:
Trong đó, A và B là 2 đối tượng có các thuộc tính nhị phân.
Môn: Khai phá dữ liệu Trang 5
Thuật toán gom cụm dữ liệu K-Means
- Mẫu dữ liệu có thuộc tính là giá trị số (khoảng giá trị): đây là mẫu dữ liệu có thuộc
tính là các giá trị cụ thể (1, 2,5 ,…) có thể áp dụng trực tiếp các công thức tính
toán trên dạng số như:

o Khoảng cách Minkowski:
1/ *
1
( , ) ( ) ,
n
q
q
i i
i
d x y x y q N
=
= − ∈

o Khoảng cách Euclide:
2
1/ 2
1
( , ) ( )
n
i i
i
d x y x y
=
= −

, trường hợp đặc biệt
của khoảng cách Minkowski với q = 2. Càng giống nhau thì khoảng cách
càng nhỏ.
o Tương tự Cosine (Cosine Similarity): [2]
A

i
, B
i
lần lượt là các thuộc tính của đối tượng A và B. Nếu cosine
similarity có giá trị là 1 thì 2 đối tượng A và B giống nhau hoàn toàn,
ngược lại là -1 khi khác nhau hoàn toàn
- Mẫu dữ liệu có thuộc tính kiểu định danh: đây là dạng tổng quát hóa của thuộc
tính nhị phân, trong đó miều giá trị là rời rạc không phân biệt thứ tự. Nếu x và y là
hai thuộc tính định danh thì có thể xác định theo dạng nhị phân như sau: x = y, và
x ≠ y. Ví dụ: nơi sinh, quê quán…
Có thể đo độ không tương tự (khác nhau) thông qua công thức tính phần trăm sự
khác biệt
( , )
p m
d x y
p

=
. Trong đó, m là số thuộc tính đối sánh tương ứng trùng
nhau và p là tổng số các thuộc tính.
2.3 Phân loại các phương pháp gom cụm dữ liệu
Các phương pháp gom cụm dữ liệu hiện nay đều cố gắn hướng tới hai mục tiêu
chung: chất lượng của các cụm khám phá được và tốc độ thực hiện của thuật toán. Các
phương pháp phâm cụm dữ liệu có thể phân loại theo các cách tiếp cận chính sau:
- Gom cụm phân hoạch
Môn: Khai phá dữ liệu Trang 6
Thuật toán gom cụm dữ liệu K-Means
Phương pháp gom cụm phân hoạch nhằm phân một tập dữ liệu có n phần tử cho trước
thành k nhóm dữ liệu sao cho : mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi
nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu. Một số thuật toán gom cụm phân

hoạch điển hình như k-Means, k-Medoids …
- Gom cụm dữ liệu phân cấp
Gom cụm dữ liệu phân cấp là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có
dạng hình cây. Cây gom cụm có thể được xây dựng theo hai phương pháp tổng quát:
phương pháp xây dựng từ trên xuống (Top Down) và phương pháp xây dựng từ dưới lên
(Bottom Up).
• Phương pháp xây dựng từ trên xuống: bắt đầu với trạng thái là tất cả các đối tượng
được xếp trong cùng một cụm. Qua mỗi bước, một cụm sẽ được tách những cụm
nhỏ hơn theo giá trị của một phép đo độ tương tự (khoảng cách) xác định cho đến
khi mỗi đối tượng là một cụm, hoặc cho đến khi điều kiện dừng thỏa mãn.
• Phương pháp xây dựng từ dưới lên: bắt đầu với mỗi đối tượng được khởi tạo
tương ứng với các cụm riêng biệt. Qua mỗi bước, tiến hành gom nhóm các đối
tượng theo một phép đo tương tự (khoảng cách) thành một nhóm lớn hơn. Quá
trình kết thúc khi tất cả các nhóm được gom vào thành một nhóm duy nhất hoặc
gặp phải điều kiện kết thúc.
Trong thực tế, 2 phương pháp gom cụm dữ liệu phân cấp và gom cụm dữ liệu phân
hoạch thường được sử dụng của với nhau. Kết quả của gom cụm phân hoạch là kết quả
của mỗi bước của gom cụm phân cấp. Qua mỗi cấp của gom cụm phân cấp, các ràng
buộc sẽ thay đổi để tiến hành ở các mức khác nhau của gom cụm dữ liệu phân hoạch.
- Gom cụm dữ liệu dựa trên mật độ
Mật độ ở đây được định nghĩa như là số đối tượng gần với một đối tượng dữ liệu dựa
trên một ngưỡng cho trước. Khi xác định được một cụm dữ liệu thì cụm đó sẽ liên tục
phát triển thêm các đối tượng dữ liệu mới thỏa điều kiện về mật độ. Phương pháp gom
cụm dựa vào mật độ của các đối tượng có thể phát hiện ra các cụm dữ liệu với hình thù
bất kỳ. Tuy nhiên, việc việc xác định các tham số mật độ của thuật toán rất phức tạp vì
các tham số này có tác động rất lớn đến kết quả nhận được.
Môn: Khai phá dữ liệu Trang 7
Thuật toán gom cụm dữ liệu K-Means
- Gom cụm dữ liệu dựa trên dạng lưới
Phương pháp gom cụm dữ liệu dựa trên dạng lưới phù hợp với các dữ liệu nhiều

chiều, thường được áp dụng cho các lớp dữ liệu không gian. Ví dụ: biểu diễn cấu trúc
hình học không gian và các quan hệ của đối tượng đó. Mục tiêu của phương pháp này là
lượng hóa tập dữ liệu thành các ô, các ô này tạo thành cấu trúc dữ liệu mới, sau đó các
bước của gom cụm dữ liệu sẽ làm việc với các đối tượng trong các ô. Cách tiếp cận trên
dạng lưới sẽ phân cấp nhiều lớp tương ứng với từng lớp thuộc tính. Do không dựa trên
toàn bộ thuộc tính của đối tượng (vì ở mỗi cấp là khác nhau) nên thường không sử dụng
các phép đo thông thường ở đâu, mà thay vào đó sẽ sử dụng một tham số khác (cho
trước) để quyết định việc phân lớp cho các đối tượng.
- Gom cụm dữ liệu dựa trên mô hình
Phương pháp gom cụm dữ liệu dựa trên mô hình là phương pháp cố gắng làm xấp xỉ tốt
các tham số mô hình sao cho khớp với dữ liệu một cách tốt nhất. Thông thường, phương
pháp này dựa trên giả định dữ liệu được tạo ra bằng hỗn hợp phân phối xác suất cơ bản.
Có 2 dạng mô hình tiếp cận chính: mô hình thống kê xác suất và mô hình mạng nơ ron
nhân tạo. Trong đó, phương pháp này sẽ phát triển các cụm dữ liệu riêng biệt để cải tiến
và cập nhật các tham số trong các mô hình trước đó.
- Gom cụm dữ liệu có ràng buộc
Ngoài các phương pháp gom cụm chính ở bên trên, người ta còn bổ sung thêm các
phương pháp gom cụm khác để bổ trợ, cũng như thực hiện nhanh nhất việc gom cụm
theo tiêu chí khác nhau. Bao gồm các dạng khác như:
- Gom cụm dựa trên thống kê: dựa trên các khái niệm phân tích thống kê. Phương
pháp này chỉ áp dụng cho các đối tượng có thuộc tính là giá trị số.
- Gom cụm dựa trên nguyên lý mờ: sử dụng các nguyên lý trong tập mờ để gom
cụm dữ liệu, trong đó một đối tượng dữ liệu có thể thuộc nhiều cụm khác nhau.
Phương pháp này thường được áp dụng để xử lý cho các dữ liệu thuộc dạng không
chắc chắn. Ví dụ: dữ liệu có thuộc tính mang tính tương đối như nhanh, chậm …
- Gom cụm dựa trên mạng Kohonen: mạng Kohonen là một dạng biến thể của mạng
nơron. Trong đó, mạng Kohonen chỉ bao gồm 2 lớp: đầu vào và đầu ra. Mỗi nơron
Môn: Khai phá dữ liệu Trang 8
Thuật toán gom cụm dữ liệu K-Means
của đầu vào tương ứng với mỗi thuộc tính của dữ liệu và kết nối với tất cả các

nơron của đầu ra. Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí
của nơron ra tương ứng. Quá trình gom cụm này tương tự như mạng nơron sẽ cho
học tập mẫu huấn luyện đã được gom cụm trước để điều chỉnh các trọng số để
qua đó khi sử dụng vào thực tế sẽ gom cụm sẽ trên các trọng số đã được điều
chỉnh nhờ vào tập mẫu huấn luyện.
Tóm lại, các phương pháp gom cụm dữ liệu đã được áp dụng rộng rãi trong thực tế.
Như trong thương mại, gom cụm sẽ cho phép các công ty tìm kiếm ra được các nhóm
khác hàng. Trong sinh học – hóa học, gom cụm dữ liệu cho phép thành lập các nhóm
gene, cấu trúc hóa học tương tự để trù bị các biến đổi, tương tác với nhau
Chương 3 THUẬT TOÁN GOM CỤM DỮ LIỆU K-MEANS
3.1 Giới thiệu về thuật toán K-Means
Thuật toán gom cụm dữ liệu K-Means là thuật toán gom cụm thuộc dạng không giám
sát và thuộc lớp bài toán gom cụm dữ liệu phân hoạch. Thuật toán K-Means được phát
triển từ lâu nhưng đến năm 1953 mới được Lloy phát triển hoàn chỉnh (thông qua các
nghiên cứu chứng minh tính đúng đắn của thuật toán) thì thuật toán gom cụm K-Means
mới được phổ biến rộng rãi. Thuật toán K-Means là một thuật toán đơn giản nhưng vẫn tỏ
ra hiệu quả trong việc gom cụm dữ liệu và vẫn được áp dụng rộng rãi trong ngày nay.
Các bước của thuật toán K-Means [3]
- Input: số lượng các cụm dữ liệu (số K) và tập dữ liệu có n điểm (đối tượng)
Môn: Khai phá dữ liệu Trang 9
Thuật toán gom cụm dữ liệu K-Means
- Output: các cụm dữ liệu chứa các đối tượng.
Bước 1: Phân hoạch đối tượn thành k tập con/ cụm khác rỗng.
Bước 2: Tính các điểm hạt giống làm centroid (trung bình của các đối tượng của cụm)
cho từng cụm trong cụm hiện hành
Bước 3: Gán từng đối tượng vào cụm có centroid gần nhất
Bước 4: Quay về bước 2, kết thúc khi không còn gán mới.
Các phép khoảng cách thường được dùng trong thuật toán gom cụm K-Means là
khoảng cách Minkowski và các biến thể của Minkowski là Euclide và Manhattan (đề cập
ở phần 2.2).

3.2 Thảo luận về thuật toán K-Means
Thuật toán gom cụm dữ liệu K-Means do sử dụng trọng tâm của các cụm để tính khoảng
cách giữa đối tượng và điểm trọng tâm, đồng thời yêu cầu biết trước số cụm (số K) để
tiến hành gom cụm nên nảy sinh những nhược điểm sau đây: [3]
- Không đảm bảo đạt được tối ưu toàn cục do kết qua đầu ra phụ thuộc vào việc
chọn K điểm khởi đầu. Với mỗi quá trình lựa chọn K điểm khác nhau sẽ xuất ra
các kết quả khác nhau.
- Cần phải xác định trước số cụm K dữ liệu. Việc này đôi khi rất khó để ước lượng
vì tính đa dạng và kích thước lớn của các tập dữ liệu. Nếu chọn K nhỏ thì việc
gom cụm sẽ phân tách thành các cụm riêng biệt, ngược lại nếu chọn K lớn sẽ ảnh
hưởng đến tốc độ thực thi đồng thời sẽ phân tách các cụm dữ liệu quá mức.
- Khó phát hiện các loại cụm dữ liệu có hình dạng phức tạp, nhất là các dạng cụm
không lồi do việc gom cụm dựa trên khoảng cách giữa trọng tâm và các điểm khác
nên không xử lý được các dạng cụm dữ liệu có hình dạng không lồi.
- Do việc tính toán trực tiếp và sử dụng độ đo khoảng cách nên những biệt lệ và
nhiễu khó được xử lý trong thuật giải gom cụm K-Means.
Tuy có nhiều nhược điểm nhưng thuật toán gom cụm dữ liệu K-Means vẫn được sử
dụng rộng rãi vì quá trình tính toán tương đối nhanh do có độ phức tạp thấp . Độ phức tạp
của thuật toán là O(tkn). Trong đó, n là số điểm trong không gian dữ liệu, k là số cụm cần
phân hoạch và t là số lần lặp (t<<n). Đồng thời, nếu ước lượng các cụm dữ liệu có dạn
hình cầu thì thuật toán K-Means hoàn toàn phù hợp.
Môn: Khai phá dữ liệu Trang 10
Thuật toán gom cụm dữ liệu K-Means
Do tính hiệu quả của thuật toán K-Means nên hiện nay vẫn có nhiều nghiên cứu để
khắc phục các yếu điểm của thuật toán K-Means và tăng tốc độ tính toán của thuật toán
K-Means như các thuật toán K-Median, K-Medoids, K-Means++ (công bố vào 2007)…
3.3 Cài đặt thuật toán gom cụm dữ liệu k-Means
Thực hiện thử nghiệm gom cụm dữ liệu sẽ được cài đặt thử nghiệm trên bộ dữ liệu
của MovieLens.
3.3.1 Bộ dữ liệu thử nghiệm

Bộ dữ liệu được sử dụng ở đây là bộ dữ liệu của tổ chức MovieLens chuyên thu thập
việc đánh giá những bộ phim từ những người dùng.
Thử nghiệm sử dụng 2 bộ dữ liệu:
- Bộ 1: có 100 ngàn đánh giá từ 943 người dùng đối với 1682 bộ phim.
- Bộ 2: có 1 triệu đánh giá từ 6040 người dùng đối với 3952 bộ phim.
Các thông tin chi tiết khác:
- Thông tin về mỗi người dùng {Id, Tuổi, Giới Tính, Công Việc}
- Thông tin về mỗi bộ phim {Id, tên phim, các thể loại}
- Thông tin về đánh giá {Id người dùng, Id Phim, Đánh giá}
Trong đó:
- Giới tính được xét là nam hay nữ.
- Tuổi có giá trị và thể hiện của giá trị đó:
 1: tuổi dưới 18
 18: tuổi từ 18 đến 24
 25: tuổi từ 25 đến 34
 35: tuổi từ 35 đến 44
 45: tuổi từ 45 đến 49
 50: tuổi từ 50 đến 55
 56: trên 56 tuổi.
- Công việc có giá trị và thể hiện của giá trị (theo tiếng Anh) đó:
 0: other
 1: academic/educator
 2: artist
 3: clerical/admin
 4: college/grad student
 5: customer service
 6: doctor/health care
 7: executive/managerial
 8: farmer
Môn: Khai phá dữ liệu Trang 11

Thuật toán gom cụm dữ liệu K-Means
 9: homemaker
 10: K-12 student
 11: lawyer
 12: programmer
 13: retired
 14: sales/marketing
 15: scientist
 16: self-employed
 17: technician/engineer
 18: tradesman/craftsman
 19: unemployed
 20: writer.
- Thể loại phim có giá trị và biểu diễn giá trị của nó:
 0: unknown
 1: Action
 2: Adventure
 3: Animation
 4: Children’s
 5: Comedy
 6: Documentary
 7: Drama
 8: Fantasy
 9: Film-Noir
 10: Horror
 11: Musical
 12: Mystery
 13: Romance
 14: Sci-fi
 15: Thriller

 16: War
 17: Western
- Đánh giá của người dùng đối với bộ phim nằm trong khoảng từ 1 đến 5. Trong đó,
5 là mức độ đánh giá cao nhất và 1 là mức độ đánh giá hài lòng thấp nhất.
3.3.2 Tiền xử lý và biến đổi dữ liệu
Do việc gom cụm chỉ dựa trên tiêu chí đánh giá của người dùng đối với bộ phim nên
các thuộc tính như tuổi và giới tính, công việc của người được bỏ qua trong việc gom
cụm do không ảnh hưởng đến việc gom cụm.
Như trên có số lượng bộ phim rất lớn nên nếu gom cụm dữ liệu dựa trực tiếp theo số
lượng bộ phim thì khi đó chi phí tính toán giá trị trọng tâm và khoảng cách (khoảng cách
Môn: Khai phá dữ liệu Trang 12
Thuật toán gom cụm dữ liệu K-Means
euclid được dùng ở đây) giữa các đối tượng đến trọng tâm là rất lớn. Nên ở đây sẽ biến
đỗi dữ liệu thay vì tính trực tiếp theo đánh giá từng bộ phim, sẽ tính trên đánh giá của
người dùng đối với từng thể loại.
Các bước biến đổi thống kê trung bình đánh giá của mỗi người dùng đối với từng thể
loại phim:
Bước 1: với mỗi người dùng  vectorA, vectorB có chiều dài là số thể loại phim
VectorA đếm tổng đánh giá của người dùng đối với các thể loại phim, vectorB đếm số
lượng phim tương ứng với từng thể loại mà người dùng đó xem.
Bước 2: với mỗi bộ phim sẽ có thể loại tương ứng và đánh giá tương ứng. Từ đó, cập
nhật vào vectorA và vectorB.
Bước 3: với phần tử x là thể loại tiến hành cập nhật : A[x] = A[x] / B[x].
3.3.3 Đánh giá kết quả sau khi cài đặt
Chương trình được viết trên ngôn ngữ C# (Visual Studio 2010)
Cấu hình máy thử nghiệm: Intel Core i5 2.4Ghz – Ram 4GB.
Thời gian trung bình chạy (tính theo milisecond)
30 cụm 50 cụm
Bộ dữ liệu
1

2356 ms 2516 ms
Bộ dữ liệu
2
66178 ms 77125 ms
3.3.4 Giao diện chương trình thử nghiệm
Môn: Khai phá dữ liệu Trang 13
Thuật toán gom cụm dữ liệu K-Means
Hình 3.1: giao diện chương trình thử nghiệm
Thao tác chạy chương trình:
- Bước 1: lựa chọn tập dữ liệu chạy. 2 bộ dữ liệu 100 ngàn đánh giá và 1 triệu đánh
giá (mặc định là bộ dữ liệu 100 ngàn đánh giá).
- Bước 2: nhập số cụm và nhấn nút K-Means để chạy chương trình. Kết quả sẽ hiện
ở các ô thông tin bên dưới.
Sau khi chạy thuật toán gom cụm K-Means, sẽ có kết quả như sau:
Môn: Khai phá dữ liệu Trang 14
Thuật toán gom cụm dữ liệu K-Means
Hình 3.2: giao diện chương trình khi chạy xong K-Means
Ghi chú các phần biểu diễn:
- Thời gian thực thi sẽ tính theo milisecond
- Ô phần [IDUser] (ô thứ 1 từ trái sang): click vào IdUser bất kỳ thì ở phần ô [IDPhim-
Đánh giá] sẽ hiện ID Phim và phần đánh giá của người dùng (tương ứng ô IDUser) đã
xem và đánh giá. Đồng thời, khi click vào thông tin trung bình đánh giá theo từng thể
loại phim của người dùng (tương ứng ô IDUser) cũng được hiển thi ở ô [T.b đánh giá
người dùng] (ô thứ 3 từ trái sang).
- Ô [ID Phim – Đánh giá] (ô thứ 2 từ trái sang): click vào dòng bất kỳ tương ứng với
một ID Phim và đánh giá của nó đối với người dùng ở ô 1. Đồng thời, bên dưới sẽ
hiển tên phim và thể loại phim tương ứng với ID Phim.
- Ô[Cụm] (ô thứ 4 từ trái sang): thể hiện các cụm dữ liệu. Khi click vào một cụm bất kỳ
thì các người dùng trong cụm (IDUser) sẽ được hiển thị ở ô [IDUser của cụm].
- Ô[IDUser của cụm] khi click vào dòng bất kỳ sẽ đồng bộ hiển thị thông tin phim của

đánh giá của IDUser đó.
TÀI LIỆU THAM KHẢO
Môn: Khai phá dữ liệu Trang 15
Thuật toán gom cụm dữ liệu K-Means
[1] Lưu Tuấn Lâm, “Phương pháp gom cụm nữa giám sát”, Đồ án tốt nghiệp đại học,
2007, trang 6 – 10.
[2] Cosine Similarity – wikipedia.
[3] PGS.TS Đỗ Phúc, Bài giảng gom cụm (clustering), trang 29 – 46.
Môn: Khai phá dữ liệu Trang 16

×