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

Tìm hiểu clustering trong data mining và ứng dụng K-mean trong xử lý ảnh

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.33 MB, 26 trang )


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN












TIỂU LUẬN MÔN KHAI PHÁ DỮ LIỆU & KHO DỮ
LIỆU



Đề tài: Tìm hiểu clustering trong data mining và ứng
dụng K-mean trong xử lý ảnh



Giảng viên hướng dẫn: PGS.TS Đỗ Phúc
Học viên thực hiện: Trịnh Thị Trúc Chi
MSHV: CH1101006
Lớp: CH6







TP. HỒ CHÍ MINH, THÁNG 11/2012
Lời nói đầu

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 tích luỹ nhiều lên. Tuy
nhiên, 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%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể làm gì
với chúng nhưng họ vẫn tiếp tục thu thập 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 vấn đề đặt ra là làm thế nào để tổ
chức, khai thác những khối lượng dữ liệu khổng lồ và đa dạng đó được? Bộ môn Khai
phá dữ liệu và kho dữ liệu sẽ giúp giải quyết các vấn đề nan giải này. Trong phạm vi của
bài báo cáo này, em xin trình bày một khía cạnh của nội dung Khai phá dữ liệu và kho dữ
liệu để hiểu rõ hơn về thuyết cũng như các ứng dụng thực tế.
Nội dung báo cáo giới thiệu sơ lược về kiến thức khai thác dữ liệu và kho dữ liệu, phân
tích bài toán gom nhóm dữ liệu, phân tích một thuật giải cơ bản của bài toán này là thuật
giải K-mean với hai ứng dụng: ứng dụng demo chạy thuật toán K-mean và ứng dụng
thuật giải để giải quyết một vấn đề trong lĩnh vưc phát triển công nghệ thông tin: Ứng
dụng K-mean để giảm không gian màu trong hình ảnh (Image segmentation).
Qua đây em cũng xin gửi lời cảm ơn đến Phó Giáo sư, Tiến sĩ Đỗ Phúc đã tận tình truyền
đạt những kiến thức nền tảng cơ bản cho chúng em trong bộ môn “Khai phá dữ liệu và
kho dữ liệu”.

1
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG


MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

Mục lục
I. Giới thiệu 3
I.1. Giới thiệu “Data mining”: 3
I.2. Các phương pháp khai phá dữ liệu: 4
I.2.1. Phân loại (classification): 4
I.2.2. Hồi quy (regression): 4
I.2.3. Gom nhóm (clustering): 4
I.2.4. Tổng hợp (summarization): 4
I.2.5. Mô hình ràng buộc (dependency modeling): 5
I.2.6. Dò tìm biến đổi và độ lệch (change and deviation dectection): 5
I.3. Các ứng dụng của khai phá dữ liệu: 5
I.4. Các bước của quá trình khai phá dữ liệu: 6
II. Bài toán gom nhóm dữ liệu (clustering) 7
II.1. Giới thiệu: 7
II.2. Mục đích gom nhóm: 8
II.2.1. Một số phương pháp gom nhóm điển hình 8
II.3. Phát biểu thuật toán K-mean: 9
II.3.1. Phát biểu bài toán: 9
II.3.2. Khái quát về thuật toán: 9
II.3.3. Các bước của thuật toán: 10
II.3.4. Ví dụ minh họa 11
II.3.5. Đánh giá thuật toán 15
2
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU


II.3.6. Các biến thể 16
II.3.7. Ứng dụng của thuật toán 16
III. Ứng dụng 17
III.1. Demo giải bài toán K-mean: 17
III.2. Giới thiệu ứng dụng K-mean 18
III.3. Thực hiện 19
III.4. Kết quả demo 21
III.5. Thực hiện demo 22


3
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

I. Giới thiệu
Khai phá dữ liệu và khám phá tri thức có vai trò hết sức quan trọng trong công tác tìm
kiếm các tri thức tiềm năng từ kho cơ sở dữ liệu hiện có. Trong bài thu hoạch này em xin
giới thiệu sơ lược về kiến thức khai phá dữ liệu, phân tích bài toán gom nhóm dữ liệu,
phân tích một thuật giải cơ bản của bài toán này là thuật giải K-mean và ứng dụng thuật
giải để giải quyết một vấn đề trong lĩnh vưc phát triển công nghệ thông tin: Ứng dụng K-
mean để giảm không gian màu trong hình ảnh (Image segmentation).
I.1. Giới thiệu “Data mining”:
Khai phá dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng
tiềm năng trong nguồn dữ liệu đã có. Khai phá dữ liệu làm giảm chi phí về thời gian so
với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê).
Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge Discovery
Process), bao gồm:

- Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem
understanding and data understanding).
- Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình làm sạch dữ liệu (data
cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection), biến
đổi dữ liệu (data transformation).
- Khai thác dữ liệu (Data mining): xác định nhiệm vụ khai phá dữ liệu và lựa chọn
kỹ thuật khai phá dữ liệu. Kết quả cho ta một nguồn tri thức thô.
- Đánh giá (Evaluation): dựa trên một số tiêu chí tiến hành kiểm tra và lọc nguồn tri
thức thu được.
- Triển khai (Deployment).
Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước
cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua.

4
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

I.2. Các phương pháp khai phá dữ liệu:
I.2.1. Phân loại (classification):
Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được
biết trước đó. Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa thuộc
tính dự báo và thuộc tính phân lớp. Như thế quá trình phân lớp có thể sử dụng mối quan
hệ này để dự báo cho các mục mới.
I.2.2. Hồi quy (regression):
Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực.
Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính
để dự báo là liên tục chứ không phải rời rạc. Việc dự báo các giá trị số thường được làm
bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính. Tuy nhiên,

phương pháp mô hình hoá cũng được sử dụng, ví dụ: cây quyết định.
I.2.3. Gom nhóm (clustering):
Là việc mô tả chung để tìm ra các tập hay các nhóm, loại mô tả dữ liệu. Các nhóm có thể
tách nhau hoặc phân cấp hay gối lên nhau. Có nghĩa là dữ liệu có thể vừa thuộc nhóm này
lại vừa thuộc nhóm khác. Các ứng dụng khai phá dữ liệu có nhiệm vụ gom nhóm như
phát hiện tập các khách hàng có phản ứng giống nhau trong CSDL tiếp thị; xác định các
quang phổ từ các phương pháp đo tia hồng ngoại.
I.2.4. Tổng hợp (summarization):
Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo
cáo tự động. Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp. Mô tả loại
này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của
một lớp. Các mô tả đặc trưng thể hiện theo luật có dạng sau: “Nếu một mục thuộc về lớp
đã chỉ trong tiền đề thì mục đó có tất cả các thuộc tính đã nêu trong kết luận”. Lưu ý rằng
luật dạng này có các khác biệt so với luật phân lớp. Luật phát hiện đặc trưng cho lớp chỉ
sản sinh khi các mục đã thuộc về lớp đó.
5
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

I.2.5. Mô hình ràng buộc (dependency modeling):
Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức:
- Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị). Trong đó, các biến
phụ thuộc bộ phận vào các biến khác.
- Mức định lượng mô hình mô tả mức độ phụ thuộc. Những phụ thuộc này thường
được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận
đúng).
I.2.6. Dò tìm biến đổi và độ lệch (change and deviation dectection):
Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã

biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu
thực và nội dung mong đợi.
Hai mô hình độ lệch hay dùng là lệch theo thời gian hay lệch theo nhóm. Độ lệch theo
thời gian là sự thay đổi có ý nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự
khác nhau của giữa dữ liệu trong hai tập con dữ liệu.
I.3. Các ứng dụng của khai phá dữ liệu:
Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh vực: thống
kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán, tính toán song song và tốc độ cao, thu thập
tri thức cho các hệ chuyên gia, quan sát dữ liệu Đặc biệt phát hiện tri thức và khai phá
dữ liệu rất gần gũi với lĩnh vực thống kê, sử dụng các phương pháp thống kê để mô hình
dữ liệu và phát hiện các mẫu, luật Ngân hàng dữ liệu (Data Warehousing) và các công
cụ phân tích trực tuyến (OLAP- On Line Analytical Processing) cũng liên quan rất chặt
chẽ với phát hiện tri thức và khai phá dữ liệu.
Các ứng dụng của khai phá dữ liệu trong thực tế:
- Bảo hiểm, tài chính và thị trường chứng khoán: phân tích tình hình tài chính và dự
báo giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá,
lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận,
6
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

- Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định.
- Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các
hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa các triệu chứng bệnh,
chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, )
- Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố.
- Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn
bản,

- Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm
kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh
di truyền,
- Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự
cố, chất lượng dịch vụ,
I.4. Các bước của quá trình khai phá dữ liệu:
Hình thành, xác định và định nghĩa bài toán: tìm hiểu lĩnh vực ứng dụng từ đó hình thành
bài toán, xác định các nhiệm vụ cần phải hoàn thành
Thu thập và tiền xử lý dữ liệu: thu thập và xử lý thô nhằm loại bỏ nhiễu (làm sạch dữ
liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn dữ liệu nếu
cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri
thức.
Khai phá dữ liệu, rút ra các tri thức: trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ
liệu. Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và
mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào.
Sử dụng các tri thức phát hiện được: hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các
mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể
được lấy trung bình trên tất cả các lần thực hiện. Do các kết quả có thể là các dự đoán
hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự
động hoá quá trình này.
7
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

II. Bài toán gom nhóm dữ liệu (clustering)
II.1. Giới thiệu:
Gom nhóm dữ liệu là gom những đối tượng dữ liệu tương tự vào 1 nhóm thỏa điều kiện:
- Các đối tượng trong 1 nhóm tương tự nhau

- Các đối tượng khác nhóm thì không tương tự nhau
Gom nhóm dữ liệu giúp giải quyết vấn đề tìm kiếm, phát hiện các cụm, các mẫu dữ liệu
trong một tập hợp ban đầu các dữ liệu không có nhãn.

Hình 1: Mô hình gom nhóm dữ liệu
Với:
 X : 1 tập các điểm dữ liệu
 

: cụm thứ i


 

 








8
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

Một số độ đo trong gom nhóm:

- Minkowski















- Manhattan














- Euclidean















- Độ đo tương tự (gần nhau): cosin 2 vector










II.2. Mục đích gom nhóm:
Xác định được bản chất của việc nhóm các đối tượng trong một tập dữ liệu không có
nhãn. Gom nhóm không dựa trên một tiêu chuẩn chung nào, mà dựa vào tiêu chí mà

người dùng cung cấp trong từng trường hợp.
II.2.1. Một số phương pháp gom nhóm điển hình
- Gom nhóm phân hoạch
- Gom nhóm phân cấp
- Gom nhóm dựa trên mật độ
- Gom nhóm dựa trên lưới
- Gom nhóm dựa trên mô hình
9
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

- Gom nhóm có ràng buộc
- Gom nhóm phân hoạch
Trong phạm vi giới hạn, đề tài đề cập chi tiết đến gom nhóm phân hoạch. Gom nhóm
phân hoạch dùng để phân 1 tập dữ liệu có n phần tử cho trước thành K dữ liệu (k<= n),
mỗi tập con biểu diễn 1 gom nhóm. Các nhóm hình thành trên cơ sở làm tối ưu giá trị
hàm đo độ tương tự sao cho:
- Các đối tượng trong 1 nhóm là tương tự
- Các đối tượng trong các nhóm khác nhau là không tương tự
Đặc điểm:
- Mỗi đối tượng chỉ thuộc về 1 nhóm.
- Mỗi nhóm có tối thiểu 1 đối tượng.
Một số thuật toán điển hình: K-mean, PAM, CLARA … Nội dung đề tài sẽ đi vào thuật
toán K-mean, ứng dụng trong phân đoản ảnh.
II.3. Phát biểu thuật toán K-mean:
II.3.1. Phát biểu bài toán:
Đầu vào: tập các đối tượng X :













Số nhóm: K
Đầu ra: Các nhóm 



  

tách rời và hàm tiêu chuẩn E đạt giá trị tối thiểu.
II.3.2. Khái quát về thuật toán:
Thuật toán hoạt động trên 1 tập vector d chiều, tập dữ liệu X gồm N phần tử








K-mean lập lại nhiều lần quá trình:

- Gán dữ liệu
10
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

- Cập nhật lại quá trình trọng tâm
Quá trình lặp dừng lại khi trọng tâm hội tụ và mỗi đối tượng là 1 bộ phận của 1 nhóm.
Hàm đo độ tương tự sử dụng khoảng cách Euclidean
















trong đó 

là trọng tâm của nhóm 



Hàm trên không âm, giảm khi có 1 sự thay đổi 1 trong 2 bước: gán dữ liệu và định lại vị
trí tâm.
II.3.3. Các bước của thuật toán:
Bước 1: khởi tạo, chọn K trọng tâm






  


Bước 2: tính toán khoảng cách:



























Bước 3: cập nhật lại trọng tâm:





















Bước 4: điều kiện dừng là lặp lại bước 2 và 3 cho đến khi không có sự thay đổi trong tâm
của nhóm




11
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU





s







II.3.4. Ví dụ minh họa
Đối tượng
Thuộc tính 1 (X)
Thuộc tính 2 (Y)

A
1
1
B
2
1
C
4
3
D
5
4

bắt đầu
Số nhóm K
trọng tâm
khoảng cách các đối
tượng đến các trọng tâm
nhóm các đối
tượng vào các
nhóm
không có
đối tượng
kết thúc
True
False
12
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG


MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU


Hình 2: Dữ liệu đầu vào K-mean
Bước 1: khởi tạo
Chọn 2 trọng tâm ban đầu 

(1,1)  và 

(2,1) , thuộc 2 nhóm 1 và 2

Hình 3: Chọn A(1, 1) và B(2, 1) làm trọng tâm
Bước 2: tính toán khoảng cách







  




  



13

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU








  




  














 C thuộc nhóm 2







  




  










  





  













 D thuộc nhóm 2

Bước 3: cập nhật lại vị trí trọng tâm
Trọng tâm nhóm 1: 






Trọng tâm nhóm 2: 
















Hình 4: Cập nhật lại centroid c1(1, 1) và c2(11/3, 8/3)
Bước 4-1: lặp lại bước 2 – Tính toán khoảng cách










  A thuộc nhóm 1











  B thuộc nhóm 1










  C thuộc nhóm 2
14
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU












  D thuộc nhóm 2

Bước 4-2: lặp lại bước 3 - Cập nhật trọng tâm






 







 





Hình 5: Cập nhật lại centroid c1(3/2, 1) và c2(9/2, 7/2)
Bước 4-3: lặp lại bước 2











  A thuộc nhóm 1










  B thuộc nhóm 1










  C thuộc nhóm 2











  D thuộc nhóm 2
15
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU


Hình 6: Kết quả sau khi phân nhóm
II.3.5. Đánh giá thuật toán
Ưu điểm:
- Độ phức tạp: O(K.N.L) với L là số lần lặp
- Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới.
- Bảo đảm hội tụ sau một số lần lặp hữu hạn.
- Luôn có K cụm dữ liệu.
- Luôn có ít nhất 1 điểm dữ liệu trong một nhóm dữ liệu
- Các nhóm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
- Các thành viên của 1 nhóm là gần với chính nhóm đó hơn bất cứ 1 nhóm nào
khác.
Nhược điểm:
- Không có khả năng tìm ra các nhóm không lồi hoặc các nhóm có hình dạng phức

tạp.
- Thời gian thực thi lớn khi K, N lớn
- Khó khăn trong việc xác định trọng tâm ban đầu:
o chọn ngẫu nhiên các trung tâm nhóm lúc khởi tạo
16
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

o Độ hội thụ của thuật toán phụ thuộc vào việc khởi tạo các vector trung tâm
nhóm.
o Khó để chọn ra được số lượng nhóm tối ưu ngay từ đầu, mà phải qua nhiều
lần chọn để tìm ra số nhóm tối ưu.
o Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu.
o Không phải lúc nào mỗi đối tượng cũng thuộc về 1 nhóm, chỉ phù hợp với
đường biên giữa các nhóm rõ.

II.3.6. Các biến thể
Thuật toán K-medoid
Tương tự thuật toán K-mean. Một nhóm được đại diện bởi 1 trong các đối tượng của
nhóm. Chọn đối tượng nằm gần tâm nhóm nhất làm đại diện cho nhóm đó. K-medoid
khắc phục được nhiễu nhưng độ phức tạp lớn hơn.
Thuật toán Fuzzy c-mean (FCM)
Chung chiến lược gom nhóm với K-mean. Nếu K-mean là gom nhóm dữ liệu cứng thì
FCM là gom nhóm dữ liệu mờ.
II.3.7. Ứng dụng của thuật toán
- Nghiên cứu thị trường: xác định các nhóm khách hàng tiềm năng.
- Sinh học: gom nhóm động vật và thực vật dựa vào các thuộc tính của chúng.
- Quản lý thư viện: theo dõi độc giả, sách, dự đoán nhu cầu độc giả.

- Tài chính, bảo hiểm: gom nhóm các đối tượng sử dụng bảo hiểm và tài chính, dự
đoán xu hướng của khách hàng, phát hiện gian lận tài chính.
- Gom nhóm tài liệu web
o Tìm kiếm và trích rút dữ liệu
o Tiền xử lý tài liệu: quá trình tách từ và vector hóa tài liệu
o Áp dụng K-mean
- Phân vùng ảnh
17
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

III. Ứng dụng
III.1. Demo giải bài toán K-mean:
Nhập số điểm và số cụm, chọn tọa độ trọng tâm từ các điểm cho trước ban đầu,
chọn “Bắt đầu” và “Bước tiếp theo” để chạy và xem kết quả bài toán.




18
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU






III.2. Giới thiệu ứng dụng K-mean
Ý tưởng ứng dụng thuật toán K-mean phân đoạn ảnh để giảm không gian màu (color
quantization)
Ý nghĩa thực tế, trong nhiều trường hợp thực tế, để giảm không gian lưu trữ ảnh, giải
pháp thường được áp dụng là chuyển các ảnh 24-bits vào về ảnh index color (256, 128,
64, 32, 16, 8, 4, 2). Thường thấy nhất là trong các ứng dụng mobile vốn dĩ có bộ nhớ nhỏ,
băng thông nhỏ và dung lượng giới hạn.
Bài toán được giải quyết thông thường bằng các giải thuật 3D-clustering (dựa trên
khoảng cách Euclidean ba kênh màu red, green, blue)
19
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU






 







 








 




Các thuật toán được sử dụng phổ biến là population algorithm, median cut - Paul
Heckbert hoặc clustering sử dụng octrees.
Trong phạm vi đề tài, bài toán được giải quyết bằng cách sử dụng giải thuật clustering cơ
bản nhất là K-mean.
III.3. Thực hiện
Bước 1: Duyệt ảnh, tìm các màu được sử dụng trong ảnh. Số màu được sử dụng cũng
chính là số samples dùng cho clustering.
Ví dụ dữ liệu đầu vào:


Các màu được tìm thấy:
Màu
Mã màu
Blue
0000FF
Red
FF0000
white

FFFFFF
black
000000
Green
00FF00
Yellow
FFFF00
Pink
FF00FF
Aqua
00FFFF
grey
333333
Bảng 1: Danh sách các màu samples
Bước 2: Áp dụng thuật toán K-mean, phân nhóm các samples ở bước 1. Số nhóm tương
ứng với số màu mong muốn có được (256, 128, 64, …)
Bước 2.1:
20
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

Chọn k phần tử centroid ngẫu nhiên đầu tiên. Việc chọn ngẫu nhiên này làm cho tốc độ
hội tụ bài toán không ổn định. Thay vào đó, k-centroid đầu tiên sẽ được chọn như sau:
- Sắp xếp không gian màu theo thứ tự tăng dần, tính theo khoảng cách từ màu
000000
- Chia dãy màu thành k đoạn, tập hợp giá trị trung bình màu trong mỗi đoạn là tập
k-centroid đầu tiên
Trong ví dụ trên, với k = 3,

Màu
Mã màu
centroid
black
000000
111166
grey
333333
Blue
0000FF
Red
FF0000
AAAAFF
Green
00FF00
Yellow
FFFF00
Aqua
00FFFF
AAAA00
Pink
FF00FF
white
FFFFFF
Bảng 2: Danh sách samples sau khi sắp xếp và k-centroid đầu tiên
Ba màu được chọn làm centroid là 111166, AAAAFF và AAAA00
Bước 2.2:
Hiệu chỉnh các centroid theo thuật toán k-mean
Trong ví dụ trên, kết quả qua các vòng lặp:
Iteration 1:

Màu
Mã màu
Distance
Nhóm
black
000000
104.8
111166
grey
333333
70.09
111166
Blue
0000FF
154.88
111166
21
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

Red
FF0000
190.07
AAAA00
Green
00FF00
190.07
AAAA00

Yellow
FFFF00
120.21
AAAA00
Aqua
00FFFF
190.07
AAAAFF
Pink
FF00FF
120.21
AAAAFF
white
FFFFFF
120.21
AAAAFF

Iteration 2:
Màu
Mã màu
Distance
Nhóm
black
000000
104.8
111166
grey
333333
70.09
111166

Blue
0000FF
154.88
111166
Red
FF0000
190.07
AAAA00
Green
00FF00
190.07
AAAA00
Yellow
FFFF00
120.21
AAAA00
Aqua
00FFFF
190.07
AAAAFF
Pink
FF00FF
120.21
AAAAFF
white
FFFFFF
14450
AAAAFF
Đến đây thuật giải kết thúc khi không có sự thay đổi các centroids
Bước 3:

Thay đổi màu hình gốc bằng cách thay thế các giá trị màu gốc bởi giá trị màu trung bình
của nóm mà màu gốc thuộc về.


III.4. Kết quả demo
Input: ảnh
22
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

Số samples: 10881




Origin 24 bit depth
16 colors
Thời gian: 7.32s
64 colors
Thời gian: 31.19 s
128 colors
Thời gian: 268 s
Hạn chế của thuật giải k-mean là thời gian thực thi quá lớn khi số samples và k lớn.
III.5. Thực hiện demo
Yêu cầu:
 Python 2.7:
 PIL 1.1.7:
Demo gồm 2 file img_op.py và pycmd.py, đặt cùng thư mục

Thực thi:
>python img_op.py <image> <k>
 <image> file hình sử dụng
 <k>: số màu output

E:\demo>python img_op.py Rosa_Gold_Glow_2_small_noblue.png
64
Processing K-means
23
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

MÔN HỌC: KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU

+ samples: 10881
+ K: 64
Finalize
Elapsed 30.75 sec.
[Done]


×