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

Tiểu luận PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU

29 1,9K 14

Đ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 29
Dung lượng 1,93 MB

Nội dung

Kỹ thuật phân cụm dữ liệu Clustering: - Phân cụm dữ liệu là phương pháp phân hoạch tập hợp dữ liệu thành nhiều tập con C sao cho mỗi tập con c ⊂ C chứa các phầntử có những tính chất giốn

Trang 1

ĐẠI HỌC QUỐC GIA

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP HỒ CHÍ MINHCHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT KHÓA 6



BÁO CÁO CHUYÊN ĐỀ

KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU

Đề tài:

PHƯƠNG PHÁP PHÂN CỤM DỮ LIỆU

GVHD: PGS.TS ĐỖ PHÚC

SVTH: VƯƠNG THỊ NGỌC ẨN MAHV: CH1101063

TP HCM, 11/2012

Trang 2

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU 1

1 Kỹ thuật phân cụm dữ liệu (Clustering): 1

2 Phân cụm dữ liệu là gì? 1

3 Một số ứng dụng tiêu biểu của phân cụm: 1

CHƯƠNG 2 TÌM HIỂU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU 3

1 Thuật toán K-Means 3

2 Thuật toán K-Medoids 9

3 Thuật toán K-Nearest Neighbors (KNN) 11

4 Thuật toán Fuzzy C-Mean(FCM) 15

5 Tối ưu hóa các tham số cho thuật toán phân nhóm FUZZY C-MEAN 19

6 Tối ưu hóa trọng số cho thuật toán phân lớp KNN 25

KẾT LUẬN, HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN 27

1 Kết quả đạt được 27

2 Chưa đạt được: 27

TÀI LIỆU THAM KHẢO 27

Trang 3

MỞ ĐẦU

Ngày nay sự phát triển mạnh mẽ của CNTT đã 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 Bên cạnh đó, các hoạt động sản xuất,kinh doanh và 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ưutrữ khổng lồ Hàng triệu CSDL đã được sử dụng trong các hoạt động sản xuất, kinhdoanh, quản lý…trong đó có nhiều CSDL cực lớn

Để đáp ứng được yêu cầu này, cấp thiết phải có những kỹ thuật và công cụ mới đểchuyển đổi dữ liệu khổng lồ này 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 quan tâm hàng đầu của ngành CNTT hiện nay 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 khác nhau

Bài thu hoạch này trình bày một số kỹ thuật phân cụm dữ liệu, chuẩn hóa tham sốcho một số thuật toán

Em xin chân thành cảm ơn PGS.TS Đỗ Phúc đã tận tình giảng dạy, truyền đạt nhữngkiến thức quý báu và hướng dẫn về nguồn tài liệu tham khảo để em có thể hoàn thànhmôn học này

Em xin chân thành cảm ơn!

Trang 4

CHƯƠNG 1 TỔNG QUAN LÝ THUYẾT VỀ PHÂN CỤM DỮ LIỆU

1 Kỹ thuật phân cụm dữ liệu (Clustering):

- Phân cụm dữ liệu là phương pháp phân hoạch tập hợp dữ liệu thành nhiều tập

con C sao cho mỗi tập con c ⊂ C chứa các phầntử có những tính chất giống

nhau theo tiêu chuẩn nào đó, mỗi tập con c được gọi là một cụm

- Như vậy quá trình phân cụm là một quá trình phân các phần tử q ∈ Q vào trong các cụm c ⊂C

- Nguyên lý thường được dùng để phân cụm dữ liệu là nguyên tắc cực tiểukhoảng cách (thường là khoảng cách Euclide)

2 Phân cụm dữ liệu là gì?

- Phân cụm là một tiến trình gom nhóm các vector đặc trưng vào trong các cụm

- Phân các đối tượng dữ liệu tương tự với một đối tượng khác trong cùng cụm

- Phân các đối tượng dữ liệu không tương tự với các đối tượng trong cụm khác

- Mục tiêu của phân cụm : để gom tập các đối tượng thành các nhóm

- Phân cụm dữ liệu là hình thức học không giám sát trong đó các mẫu học chưađược gán nhãn

- Các điểm dữ liệu trong các cụm khác nhau có độ tương tự thấp hơn các điểmnằm trong cùng một cụm

3 Một số ứng dụng tiêu biểu của phân cụm:

- Xem xét phân bố dữ liệu

- Tiền xử lý cho các thuật toán khác

- Khám phá thói quen và nhu cầu của khách hàng để có phương pháp tiếp thịthích hợp

- Phân loại đất theo công năng hoặc thực tế sử dụng đề có chính sách quy hoạchphù hợp

- Phân loại nhà theo vị trí, giá trị

- Phân loại khách hàng để có chính sách bảo hiểm hợp lý

- Phân loại bệnh nhân

• Một số phương pháp phân cụm tốt nếu đạt được tính chất sau:

Trang 5

- Có độ tương tự thấp giữa các cụm

- Có khả năng phát hiện các mẫu ẩn

- Có khả năng làm việc hiệu quả với lượng dữ liệu lớn

- Có khả năng làm việc với nhiều loại dữ liệu khác nhau

- Có khả năng khám phá ra các cụm có phân bố theo các dạngkhác nhau

- Yêu cầu tối thiểu tri thức lĩnh vực nhằm xác định các tham biến nhập

- Có khả năng làm việc với nhiễu và mẫu cá biệt

- Không bị ảnh hưởng bởi thứ tự nhập của dữ liệu

- Làm việc tốt trên cơ sở dữ liệu có số chiều cao

- Chấp nhận các ràng buộc do người dùng chỉ định

- Có thể hiểu và sử dụng được kết quả gom cụm

• Dựa trên cách tiếp cận và thuật toán sử dụng, người ta phân các thuật toán phân cụmtheo các phương pháp chính sau:

a Thuật toán phân cụm dữ liệu dựa vào phân cụm phân cấp

Thuật toán BIRCHThuật toán CUREThuật toán ANGNESThuật toán DIANAThuật toán ROCKThuật toán Chameleon

b Thuật toán phân cụm dữ liệu mờ

Thuật toán FCMThuật toán εFCMFCM

c Thuật toán phân cụm dữ liệu dựa vào cụm trung tâm

Thuật toán K – MEANSThuật toán K- MEDOIDSThuật toán K-Nearest Neighbors (KNNThuật toán PAM

Thuật toán CLARA

Trang 6

Thuật toán CLARANS

d Thuật toán phân cụm dữ liệu dựa vào tìm kiếm

Thuật toán di truyền (GAS)J- Means

e Thuật toán phân cụm dữ liệu dựa vào

STINGThuật toán CLIQUEThuật toán WaveCluster

f Thuật toán phân cụm dữ liệu dựa vào mật độ

Thuật toán DBSCANThuật toán OPTICSThuật toán DENCLUDE

g Thuật toán phân cụm dữ liệu dựa trên mẫu

Thuật toán EMThuật toán COBWEB

CHƯƠNG 2 TÌM HIỂU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU

1 Thuật toán K-Means

Đây là thuật toán nổi tiếng và được sử dụng nhiều nhất trong hướng tiếp cậnphân nhóm phân hoạch Thuật toán này có nhiều biến thể khác nhau nhưng đượcđưa ra đầu tiên bởi J.B MacQueen vào năm 1967 Đầu vào của thuật toán này làmột tập gồm n mẫu và một số nguyên K Cần phân n đối tượng này thành K clustersao cho sự giống nhau giữa các mẫu trong cùng cluster là cao hơn là giữa các đốitượng khác cluster

Tư tưởng của thuật toán này như sau: Đầu tiên chọn ngẫu nhiên K mẫu, mỗimẫu này coi như biểu diễn 1 cluster, như vậy lúc này trong mỗi cluster thì đối mẫu

đó cũng là tâm của cluster (hay còn gọi là nhân) Các mẫu còn lại được gán vào

Trang 7

trình đó cho đến khi hàm tiêu chuẩn hội tụ Hàm tiêu chuẩn hay được dùng nhất làhàm tiêu chuẩn sai-số vuông Thuật toán này có thể áp dụng được đối với CSDL

đa chiều, nhưng để dễ minh họa chúng tôi mô tả thuật toán trên dữ liệu hai chiều

Phát biểu bài toán:

Trong đó cj là trọng tâm của cụm Cj

 Hàm trên không âm, giảm khi có 1 sự thay đổi trong 1 trong 2 bước: gán dữliệu và định lại vị trí tâm

Các bước của thuật toán

 Bước 1 - Khởi tạo

Chọn K trọng tâm {ci} (i = 1÷K)

 Bước 2 - Tính toán khoảng cách

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

2 1

Trang 8

 Bước 4 – Điều kiện dừng

Lặp lại các bước 2 và 3 cho tới khi không có sự thay đổi trọng tâm củacụm

Trang 9

Bước 1: Khởi tạo

Chọn 2 trọng tâm ban đầu:

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

 Trọng tâm cụm 1 c1 ≡ A (1, 1)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5

Trang 11

Đánh giá thuật toán:

- Ưu điểm:

 Độ phức tạp: O(K.N.l) với 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 l số bước 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 1 cụm dữ liệu

 Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau

 Mọi thành viên của 1 cụm là gần với chính cụm đó hơn bất cứ 1 cụm nàokhác

- Nhược điểm:

 Không có khả năng tìm ra các cụm không lồi hoặc các cụm có hình dạngphức tạp

 Khó khăn trong việc xác định các trọng tâm cụm ban đầu

- Chọn ngẫu nhiên các trung tâm cụm lúc khởi tạo

- Độ hội tụ của thuật toán phụ thuộc vào việc khởi tạo các vector trung tâmcụm

 Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua nhiềulần thử để tìm ra được số lượng cụm tối ưu

 Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu

 Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm, chỉ phù hợpvới đường biên giữa các cụm rõ

Trang 12

2 Thuật toán K-Medoids

Thuật toán K-Means nhạy cảm đối với dữ liệu có nhiễu vì tâm của mộtnhóm lại không phải là một đối tượng trong nhóm Thay vì lấy giá trị trung bìnhcủa các đối tượng trong cụm làm tâm, thuật toán k-medoids lấy một đối tượngtrong cụm làm tâm của cụm (gọi là đối tượng tâm) Thuật toán này vẫn dựa trênnguyên tắc làm cực tiểu sự khác nhau giữa các đối tượng trong cùng một cụm

Ý tưởng chính của thuật toán k-medoids như sau:

Để tìm ra k cụm với n đối tượng thì k-medoids chọn ngẫu nhiên k đối tượngvào k cụm, coi mỗi đối tượng này là tâm của cụm Phân bổ các đối tượng còn lạivào cụm mà sự khác nhau của nó với đối tượng tâm của cụm là ít nhất (gọi là gầnnhất) Sau đó lặp lại quá trình: Thay đổi đối tượng tâm của mỗi cụm sao cho chấtlượng của cụm được cải thiện Chất lượng của cụm được lượng giá bởi một hàm

đo sự khác nhau giữa một đối tượng và đối tượng tâm của cụm chứa nó Quá trìnhlặp cho đến khi không còn sự thay đổi nào về lực lượng cũng như hình dạng củacác cụm

Để chọn một đối tượng không là đối tượng tâm Orandom thay thế tốt cho mộtđối tượng tâm Oj thì mỗi đối tượng p xét theo 4 trường hợp sau đây:

Trường hợp 1: p đang thuộc vào cụm có tâm là Oj (gọi là cụm Oj) Nếu Oj được thaythế bởi Orandom và p gần nhất với Oi (ij) thì p được gán lại vào Oi

Trường hợp 2: p đang thuộc vào Oj Nếu Oj được thay thế bởi Orandom và p gần nhấtvới Orandom thì p được gán lại vào Orandom

Trường hợp 3: p đang thuộc vào Oi (ij) Nếu Oj được thay thế bởi Orandom và p vẫngần nhất với Oi thì không thay đổi gì cả Tức là p vẫn thuộc Oi

Trường hợp 4: p đang thuộc vào Oi (ij) Nếu Oj được thay thế bở Orandom và p gầnnhất với Orandom thì p được gán lại vào Orandom

Trang 13

Hình minh họa bốn trường hợp trên:

Bốn trường hợp đối với điểm p

Thuật toán k-medoid có thể được mô tả cụ thể như sau:

Input: Số nguyên k và CSDL gồm n đối tượng cần phân cụm.

Output: Một tập gồm k cụm mà tổng giá trị của sự khác nhau của tất cả các đối tượng

đến đối tượng tâm của nhóm chứa nó là nhỏ nhất

Bước 4: Chọn ngẫu nhiên một đối tượng không là đối tượng tâm, Orandom

Bước 5: Tính lại giá trị, S, đối với việc đổi Oj với Orandom

Bước 6: Nếu S<0 thì đổi Oj với Orandom để tạo ra một tập với đối tượngtâm mới

Bước 7: Đến khi không có sự thay đổi nào nữa thì dừng.

Ví dụ: Giả sử trong không gian hai chiều cho n = 10 điểm, như hình 13, cần chia thành k

=2 cụm Các bước thực hiện của thuật toán k-medoids được chỉ ra trong hình 13:

Trang 14

Các bước thực hiện của k-medoidsĐầu tiên chọn hai điểm bất kì vào hai cụm giả sử chọn điểm có màu xanh đậm trênhình vẽ, sau đó xét các điểm còn lại và đưa chúng vào một trong hai cụm với điểm tâmlần lượt là hai điểm đã chọn ban đầu Tiếp theo chọn một điểm bất kì khác điểm tâm, giả

sử điểm có màu đỏ Tính giá của phép chuyển đổi điểm tâm từ điểm màu xanh ban đầusang điểm màu đỏ Nếu giá này chất lượng hơn thì coi điểm đỏ là tâm của cụm mới vàthực lặp lại quá trình đó cho đến khi không còn sự thay đổi nào

Thuật toán k-medoids mạnh hơn thuật toán k-means trong các trường hợp dữ liệu cónhiễu vì k-medoids chịu ảnh hưởng ít hơn của nhiễu và các giá trị chênh lệnh so với giátrị trung bình Tuy nhiên cả hai thuật toán này đều yêu cầu đưa vào số lượng cụm k

3 Thuật toán K-Nearest Neighbors (KNN)

Biểu diễn đầu vào của bài toán

• Mỗi ví dụ x được biểu diễn là một vectơ n chiều trong không giancácvector

X∈ Rn

• x = (x1,x2,…,xn), trong đó xi (∈ R) là một số thực

Có thể áp dụng được với cả 2 kiểu bài toán học

• Bài toán phân lớp (classification)

Hàm mục tiêu có giá trị rời rạc (a discrete-valued target function)

Đầu ra của hệ thống là một trong số các giá trị rời rạc đã xác định

Trang 15

• Bài toán dự đoán/hồi quy (prediction/regression)

Hàm mục tiêu có giá trị liên tục (a continuous-valued target function)

Đầu ra của hệ thống là một giá trị số thực

Ví dụ bài toán phân lớp:

Xét 1 láng giềng gần nhất→ Gán z vào lớp c2

Xét 3 láng giềng gần nhất→ Gán z vào lớp c1

Xét 5 láng giềng gần nhất → Gán z vào lớp c1

Giải thuật phân lớp K-NN:

Mỗi ví dụ học x được biểu diễn bởi 2 thành phần:

• Mô tả của ví dụ: x=(x1,x2,…,xn), trong đó xi∈ R

• Nhãn lớp : c (∈ C, với C là tập các nhãn lớp được xác định trước)

Giai đoạn học

• Đơn giản là lưu lại các ví dụ học trong tập học: D = {x}

Giai đoạn phân lớp: Để phân lớp cho một ví dụ (mới) z

Trang 16

• Với mỗi ví dụ học x∈ D, tính khoảng cách giữa x và z

• Xác định tập NB(z) – các láng giềng gần nhất của z

Gồm k ví dụ học trong D gần nhất với z tính theo một hàm khoảng cách d

• Phân z vào lớp chiếm số đông (the majority class) trong số các lớp

của các ví dụ học trong NB(z)

Một hay nhiều láng giềng gần nhất?

Việc phân lớp (hay dự đoán) chỉ dựa trên duy nhất một láng giềng gần nhất (là ví dụ họcgần nhât với ví dụ cần phân lớp/dự đoán) thường không chính xác

• Nếu ví dụ học này là một ví dụ bất thường, không điển hình (anoutlier) rất khác so với các ví dụ khác

• Nếu ví dụ học này có nhãn lớp (giá trị đầu ra) sai – do lỗi trong quá trình thu thập (xâydựng) tập dữ liêu5

Thường xét k (>1) các ví dụ học (các láng giềng) gần nhất với ví dụ cần phânlớp/dự đoán

Đối với bài toán phân lớp có 2 lớp, k thường được chọn là một số lẻ, để tránh cânbằng về tỷ lệ các ví dụ giữa 2 lớp

Hàm khoảng cách Hamming: Dành cho các bài toán có các thuộc tính đầu

vào là kiểu nhị phân

Trang 17

p

p

Hàm tính độ tương tự Cosine: Dành cho các bài toán phân lớp văn bản (xi là

giá trị trọng số TF/IDF của khóa thứ i)

Các hàm tính khoảng cách hình học (Geometry distance functions)

Trang 18

4 Thuật toán Fuzzy C-Mean(FCM)

 Gom cụm mờ đóng vai trò quan trọng trong các lĩnh vực nhận dạng (patternrecognition) và định dạng mô hình mờ Một phương pháp phân cụm được sửdụng rộng rãi nhất hiện nay là thuật toán Fuzzy C-mean (FCM) Nó sử dụngmối tương quan khoảng cách để tính toán các trọng số mờ

- Chung chiến lược phân cụm với K-mean

- Nếu K-mean là phân cụm dữ liệu cứng (1 điểm dữ liệu chỉ thuộc về 1 cụm) thìFCM là phân cụm dữ liệu mờ (1 điểm dữ liệu có thể thuộc về nhiều hơn 1 cụmvới 1 xác suất nhất định)

- Thêm yếu tố quan hệ giữa các phần tử và các cụm dữ liệu thông qua các trọng

số trong ma trận biểu biễn bậc của các thành viên với 1 cụm

- FCM khắc phục được các cụm dữ liệu chồng nhau trên các tập dữ liệu có kíchthước lớn hơn, nhiều chiều và nhiều nhiễu, song vẫn nhạy cảm với nhiễu và cácphần tử ngoại lai

 Nguyên tắc của thuật toán:

Trang 19

- Mỗi phần tử q ∈V ban đầu được gán cho một tập trọng số Wqk, trong đóWqk cho biết khả năng q thuộc về cụm k, Σ(k=1,K)Wqk=1 Có nhiều cáchtính trọng số Wqk khác nhau, trong đó Wqk=1/Dqk thường được sử dụngnhất (Dqk là khoảng cách từ q đến trọng tâm của cụm k).

- Trong quá trình gom cụm trọng số này có thể được cập nhật ở mỗi bước lặpkhi trọng tâm của cụm bị thay đổi

- Sau khi kết thúc quá trình gom cụm, một cụm không có mẫn nào sẽ bị loại,

do đó số cụm tìm được thường không biết trước

 Thuật toán fuzzy C-mean gồm các bước:

Bước 0: Khởi tạo các giá trị K: số cụm, Imax: số lần lặp, p: hệ số được sửdụng để tính trọng số (p>1)

Bước 1: Khởi tạo trọng số cho các mẫu

Bước 2: Chuẩn hóa các trọng số khởi tạo trong K

Bước 3: Chuẩn hóa các trọng số trong Q

Bước 4: Tính trọng tâm mới của mẫu

Bước 5: Tính trọng số mới

Bước 6: Nếu I < Imax quay lại bước 3

Bước 7: Phân chia các mẫu vào trong các cụm

Bước 8: Khử bỏ các cụm không có mẫu nào

Bước 9: Tính toán trọng tâm của các cụm

 Mã giả thuật toán FCM (Fuzzy C-Mean)

K là số cụm Imax là bước lặp của thuật toán C-Mean

p là trọng số -Bước 1: -for k = 0 to K-1

for q = 0 to Q-1w[q,k] = random();

-Bước 2: for q = 0 to Q-1

-sum = 0.0;

for k = 0 to K-1

Trang 20

sum = sum + w[q,k];

for k = 0 to K-1w[q,k] = w[q,k]/sum;

-Bước 3: for k = 0 to K-1

-min = 99999.0;

max =0.0;

for q = 0 to Q-1

if (w[q,k] > max)max = w[q,k];

if (w[q,k] < min)min = w[q,k];

sum = 0.0for q = 0 to Q-1sum = sum + (w[q,k] – min) /( max –min);

for q = 0 to Q-1w[q,k] = w[q,k]/sum;

-Bước 4: for k = 0 to K-1

-for n = 0 to N-1sum = 0.0;

for q = 0 to Q-1sum = sum + w[q,k] x[n,q];

z[n,k] = sum;

-Bước 5: for q = 0 to Q-1

-sum = 0.0for k = 0 to K-1D[q,k] =0.0;

for n = 0 to N-1

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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w