Rất nhiều thuật toán phân nhóm có thể làmviệc tốt với lượng đối tượngnhỏ, ít hơn 100 đối tượng đối tượng màchưa làm tốt với lượng đối tượng lớn, trong khi đó tập đối tượng lớnchứa hàng t
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
TIỂU LUẬN NHẬN DẠNG
Tên đề tài: Phương pháp học không có giám sát Các thuật toán học phân cấp nhóm dựa trên sự kết hợp các phần tử Tìm hiểu phân tích ứng dụng cụ
-thể thuật toán học không giám sát.
BÙI ANH QUANG PHẠM HOÀNG HÙNG
HàNội - 12/2012
Trang 2MỤC LỤC
PHÂN CÔNG CÔNG VIỆC 3
PHẦN I BÀI TOÁN PHÂN NHÓM 4
I Khái niệm 4
II Yêu cầu đối với bài toán phân nhóm 4
III Một số khó khăn của bài toán phân nhóm 6
PHẦN II PHÂN NHÓM CÂY PHÂN CẤP 7
I Phương pháp HAC 7
II Một số phương pháp tính khoảng cách nhóm của HAC 8
III Đặc điểm phân nhóm HAC 9
PHẦN III THUẬT TOÁN K – MEANS 10
I Nguyên lý của thuật toán K-means 10
II Phát biểu bài toán 10
1 Phát biểu bài toán: 10
2 Khái quát về thuật toán 10
3 Các bước của thuật toán 12
III Ví dụ minh họa thuật toán K-means 13
IV Đánh giá ưu nhược điểm của K-means 18
V Các biến thể 19
VI Ứng dụng của thuật toán 19
PHẦN IV THUẬT TOÁN ISODATA 20
I Nguyên lý hoạt động 20
II Đánh giá thuật toán 23
PHẦN V LẬP TRÌNH CÀI ĐẶT THUẬT TOÁN K-MEANS 25
TÀI LIỆU THAM KHẢO 27
Trang 3PHÂN CÔNG CÔNG VIỆC
Bùi Anh Quang Ths Kỹ Thuật
KTMT&TT - 2012B
- Phần I - Bài toán phân nhóm
- Phần II - Phân nhóm cây phân cấp
KTMT&TT - 2012B
- Phần III - Thuật toán K-means
- Phần V - Lập trình ứng dụng K-means Phạm Hoàng Hùng Ths Kỹ Thuật
KTMT&TT - 2012B - Phần IV - Thuật toán ISODATA
Trang 4PHẦN I BÀI TOÁN PHÂN NHÓM
Ngày nay, khi mà sự phát triển và ứng dụng của Internet cực kỳ phổbiến thì khối lượng đối tượngđã tăng trưởng không ngừng theo cả haiphương diện tạo mới và lưu trữ Sự phát triển vượt bậc của công nghệ khoahọc kỹ thuật và sự mở rộng các đối tượngkhoa học về địa lý, địa chất, khítượng thủy văn… cùng với việc tin học hóa sâu rộng trong hầu hết các lĩnhvực đã tạo ra một khối lượng đối tượngkhổng lồ Tự động phân nhóm là mộtnhiệm vụ rất quan trọng, đặc biệt là trong việc tổ chức cũng như tìm kiếmthông tin trên nguồn tài nguyên lớn này
I Khái niệm
Phân nhóm đối tượnglà một kỹ thuật trong khai phá đối tượng, nhằm đưa ra các nhóm mà các phần tử trong nhóm có độ tưong đồng cao và các phần tử khác nhóm nhau lại có độ tương đồng thấp.
Như vậy, phân nhóm đối tượng là kỹ thuật sử dụng quan sát đốitượng, mục đích để tổ chức một tập các đối tượng cụ thể hoặc trừu tượngvào các nhóm phân biệt Những đối tượng có tương tự nhau sẽ được xếp vàocùng một nhóm và những đối tượng có khác nhau được xếp vào các nhómkhác nhau
Bài toán phân nhóm thường được thực hiện khi chúng ta không biếtđược nội dung thông tin của các thành phần thuộc nhóm để định nghĩa trướccác nhóm Vì lý do này mà công việc phân nhóm thường được nhìn nhận làcác phương pháp học máy không giám sát,
II Yêu cầu đối với bài toán phân nhóm
Sau đây chúng ta sẽ tìm hiểu một số tính chất của đối tượngvà yêu cầucủa một thuật toán phân nhóm Hầu hết các nghiên cứu và phát triển các thuật toán phân nhóm đối tượngnói chung đều nhằm thỏa mãn các yêu cầu
cơ bản sau:
Có khả năng mở rộng, gia tăng: Thuật toán phân nhóm cần có khảnăng gia tăng, mở rộng Rất nhiều thuật toán phân nhóm có thể làmviệc tốt với lượng đối tượngnhỏ, ít hơn 100 đối tượng đối tượng màchưa làm tốt với lượng đối tượng lớn, trong khi đó tập đối tượng lớnchứa hàng triệu đối tượng vì vậy ta cần mở rộng bộ phân nhóm đó đểbao trùm cả tập đối tượng lớn
Trang 5 Khả năng thích nghi với các kiểu và thuộc tính đối tượng khác nhau:
có nhiều thuật toán phân nhóm, có những thuật toán phù hợp với đốitượng số, có những thuật toán khi áp dụng cho loại đối tượng nhị phânhay đối tượng ảnh …
Nhận biết được các nhóm với hình thù bất kỳ: một số thuật toán xácđịnh nhóm dựa vào việc tính khoảng cách Euclidean hay Manhattanvới mục đích nhận biết độ dày và giống nhau của các đối tượng trongnhóm Tuy nhiên, một nhóm có thể có hình dạng bất kỳ vì vậy màviệc phát triển thuật toán có khả năng xác định các nhóm với hình thùbất kỳ là quan trọng và cần thiết
Tối thiểu miền tri thức cho xác định các tham số đầu vào: miền trithức đầu vào cần thiết cho một thuật toán phân nhóm càng ít, chi phícho việc phân nhóm càng giảm và nó càng khả thi hơn
Khả năng thích nghi với đối tượng nhiễu: Phần lớn các tập đối tượngthực tế chứa đựng ngoại lệ hoặc thiếu, không xác định hay khôngđúng Các thuật toán nhạy cảm với nhiễu là nguyên nhân dẫn đến việctạo ra một bộ phân nhóm kém chất lượng
Không nhạy cảm với thứ tự của đói tượng vào: Một số thuật toán phânnhóm không thể sát nhập thêm đối tượng mới vào trong bộ phânnhóm, thêm đối tượng vào nhóm có sẵn hoặc tạo thêm nhóm mới Bêncạnh đó, một thuật toán phân nhóm tốt không tạo ra các bộ phân nhómkhác nhau từ cùng một bộ đối tượng nhưng thứ tự sắp xếp khác nhau.Những thuật toán này gọi là nhạy cảm với thứ tự đối tượng
Thích nghi với đối tượng đa chiều: Đối tượng thông thường thường có
số chiều ít, từ hai đến ba chiều mà một số thuật toán phân nhóm đưa
ra kết quả rất tốt Bên cạnh đó, đối tượng đa chiều (nhiều hơn bachiều) cũng rất đa dạng và cần thiết được phân nhóm cho nhiều ứngdụng thực tế Với loại đối tượng này, việc phân loại dựa vào kiến thứccon người tỏ ra có hiệu quả, tuy nhiên với khối lượng đối tượng lớnnhư vậy, việc sử dụng kiến thức chuyên gia là tốn kém nên chúng tacần tìm các thuật toán phân nhóm để giải quyết được vấn đề này
Phân nhóm trên một số ràng buộc: Trong một số ứng dụng, chúng tacần phân nhóm trên tập đối tượng chứa các liên kết bắt buộc giữa haihay nhiều đối tượng Việc phân nhóm cần đảm bảo các đối tượng nàythỏa mãn các ràng buộc đó
Trang 6 Dễ hiểu, dễ cài đặt và khả thi: một thuật toán càng dễ hiểu và dễ càiđặt và mang tính khả thi cao sẽ được người dung tin cậy và sử dụngrộng rãi.
III Một số khó khăn của bài toán phân nhóm
Xử lý nhiễu: Đối tượng bị nhiễu là đối tượng không chính xác hay làđối tượng khuyết thiếu thông tin về một số thuộc tính Hầu hết các đối tượng
sử dụng để phân nhóm đều bị nhiễu do quá trình thu thập thiếu chính xáchay thiếu đầy đủ Vì vậy cần phải thực hiện bước tiền xử lý đối tượng nhằmkhắc phục hoặc loại bỏ nhiễu trước khi chuyển sang giai đoạn phân tíchnhóm đối tượng Một trong các kỹ thuật xử lý nhiễu hiện nay là thay thế cácgiá trị các thuộc tính của đối tượng nhiễu bằng các giá trị thuộc tính tươngứng
Dò tìm phần tử ngoại lai Phần tử ngoại lai là một nhóm nhỏ các đốitượng khác thường so với các đối tượng trong tập đối tượng Loại bỏ nhữngđối tượng này để tránh ảnh hưởng đến kết quả phân nhóm
Phân nhóm hiện nay đang là vấn đề mở và khó: Vì phân nhóm đangphải giải quyết một số vấn đề cơ bản: Xây dựng hàm tính độ tương tự, xâydựng các tiêu chuẩn phân nhóm, xây dựng mô hình cho dạng đối tượng, xâydựng các thuật toán phân nhóm và xác lập các điều kiện khởi tạo, xây dựng
các thủ tục biểu diễn và đánh giá kết quả phân nhóm Hiện nay chưa có một
phương pháp phân nhóm tổng quát nào có thể giải quyết trọn vẹn cho tất
cả các dạng đối tượng.
Trang 7PHẦN II PHÂN NHÓM CÂY PHÂN CẤP
Phương pháp phân nhóm cây phân cấp xây dựng một cấu trúc câyphân cấp cho các đối tượng, và có hai phương pháp chính là xây dựng cây
theo hướng từ trên xuống (top-down) và xây dựng theo hướng từ dưới lên (bottom-up).
Với phương pháp bottom-up, đầu tiên mỗi đối tượng được coi như
một nhóm phân biệt và sau đó tiến hành ghép lần lượt 2 nhóm giống nhaunhiều nhất hay khác nhau ít nhất làm một đến khi tất cả các nhóm được ghépvào một nhóm duy nhất chứa tất cả các đối tượng Phân nhóm phân cấp
bottom-up được gọi là hierachical agglomerative clustering (HAC) Còn
phân nhóm phân cấp top-down lại đòi hỏi một phương pháp để phân chia
nhóm Phương pháp này được thực hiện bằng thuật toán đệ quy, tiến hànhtách đôi các nhóm đến khi từng đối tượng phân biệt được đưa ra
12345 để tạo thành một cây với gốc 12345 và các lá lần lượt là 1, 2, 3, 4, 5
Trang 8Phân nhóm phân cấp không yêu cầu cố định số nhóm và nếu tất cả cácđối tượng đều thuộc một nhóm thì việc phân nhóm là vô nghĩa Vì thế, trongviệc phân nhóm chúng ta cần bỏ đi một số bước, tức cần dùng một nhát cắt
để đưa ra kết quả phân nhóm của mình
II Một số phương pháp tính khoảng cách nhóm của HAC
Single link hay single-linkage
Với phương pháp này, khoảng cách giữa các nhóm được định nghĩa làkhoảng cách giữa những đối tượng giống nhau nhất giữa 2 nhóm:
D(r,s)= Min d(i,j)Trong đó:
r, s: hai nhóm
i, j: hai đối tượng bất kỳ thuộc hai nhómVới 2 nhóm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳthuộc 2 nhóm đó và khoảng cách nhỏ nhất tìm được chính là khoảng cáchgiữa 2 nhóm đó Tại mỗi bước, 2 nhóm gần nhau nhất sẽ được chọn để ghéplại với nhau, ví dụ
Complete linkage hay còn gọi là fatherest neighbour – người hàng xóm xa nhất
Phương pháp phân nhóm này đối ngược với single linkage Với 2
nhóm, ta tính tất cả các khoảng cách giữa 2 phần tử bất kỳ thuộc 2 nhóm đó
và lấy khoảng cách lớn nhất giữa các đối tượng làm khoảng cách giữa 2nhóm Khoảng cách giữa các nhóm được định nghĩa:
D(r,s)= Max d(i,j)Trong đó:
Trang 9 r, s: hai nhóm
i, j: hai đối tượng bất kỳ thuộc hai nhóm
Và sau đó, hai nhóm có khảng cách nhỏ nhất sẽ được chọn để nhómlàm một nhóm
Group average agglomerative
Phân nhóm bằng các tính khoảng cách giữa các nhóm với Group
Average Agglomerative (GAAC) đánh giá ghép nhóm dựa vào toàn bộ độ
tương tự giữa tất cả các nhóm vì vậy mà nó tránh được những thiếu sót của hai phương pháp single-linkage và complete-linkage – chỉ đánh giá được một phần các nhóm Phương pháp phân nhóm GAAC hay còn được gọi là
average-linkage, tính độ tương tự trung bình sim-ga của tất cả các cặp đối
tượng, bao gồm cả các cặp trong cùng một nhóm, nhưng những độ tương tự
tính trong cùng nhóm này không chứa trong phép tính trung bình
III Đặc điểm phân nhóm HAC
Trang 10PHẦN III THUẬT TOÁN K – MEANS
Thuật toán K-means được đưa ra năm 1957 bởi Stuart Lloyd như là một kỹ thuật điều mã xung K-means là thuật toán thuộc phương pháp phân cụm phân hoạch
I Nguyên lý của thuật toán K-means
Thuật toán này dựa trên độ đo khoảng cách của các đối tượng dữ liệu trong cụm Giải thuật xử lý như sau: trước tiên nó lựa chọn ngẫu nhiên k đối tượng, mỗi đối tượng đại diện cho một trung bình cụm hay tâm cụm Đối vớinhững đối tượng còn lại, một đối tượng được ấn định vào một cụm mà nó giống nhất dựa trên khoảng cách giữa đối tượng và trung bình cụm Sau đó cần tính giá trị trung bình mới cho mỗi cụm Xử lý này được lặp lại cho tới khi hàm tiêu chuẩn hội tụ
Phương pháp này có thể mở rộng có hiệu quả khi xử lý các tập dữ liệulớn bởi độ phức tạp tính toán của giải thuật là O(nkt), với n là số đối tượng,
k là số cụm, t là số lần lặp Thông thường k << n và t << n Phương pháp thường kết thúc tại một điểm tối ưu cục bộ
II Phát biểu bài toán
1 Phát biểu bài toán:
Trang 11 Thuật toán hoạt động trên 1 tập vectơ d chiều, tập dữ liệu X gồm Nphần tử:
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
2 1
Trang 123 Các bước của thuật toán
Bước 1 - Khởi tạo
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ủa cụm
Giải thuật K-means
Trang 13III Ví dụ minh họa thuật toán K-means
Cho tập dữ liệu gồm 4 điểm trong không gian 2 chiều
Đối tượng Thuộc tính 1 (X) Thuộc tính 2 (Y)
Trang 14Bước 1: Khởi tạo
Chọn 2 trọng tâm ban đầu:
Trang 15Bước 3: Cập nhật lại vị trí trọng tâm
Bước 4-1: Lặp lại bước 2 – Tính toán khoảng cách
d(A, c1 ) = 0 < d(A, c2 ) = 9.89 A thuộc cụm 1 d(B, c1 ) = 1 < d(B, c2 ) = 5.56 B thuộc cụm 1
d(C, c1 ) = 13 > d(C, c2 ) = 0.22 C thuộc cụm 2d(D, c1 ) = 25 > d(D, c2 ) = 3.56 D thuộc cụm 2
Trang 16Bước 4-2: Lặp lại bước 3-Cập nhật trọng tâm
c1 = (3/2, 1) và c2 = (9/2, 7/2)
Bước 4-3: Lặp lại bước 2 – Tính toán khoảng cách
d(A, c1 ) = 0.25 < d(A, c2 ) = 18.5 A thuộc cụm 1d(B, c1 ) = 0.25 < d(B, c2 ) = 12.5 B thuộc cụm 1
d(C, c1 ) = 10.25 < d(C, c2 ) = 0.5 C thuộc cụm 2d(D, c1 ) = 21.25 > d(D, c2 ) = 0.5 D thuộc cụm 2
Trang 17Bước 4-4: Lặp lại bước 3 - Cập nhật trọng tâm
c1 = (3/2, 1) và c2 = (9/2, 7/2)
Ta thấy trọng tâm c1 và c2 ở bước 4-3 trùng với bước 4-2 Dừng
Kết luận: Cụm C1 {A,B}, Cụm C2 {C,D}
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Trang 18IV Đánh giá ưu nhược điểm của K-means
1.Ưu điểm
Do k-means đơn giản nên có thể áp dụng đối với tập dữ liệu lớn
Bảo đảm hội tụ sau 1 số bước lặp hữu hạn
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
Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải quanhiều lần thử để tìm ra được số lượng cụm tối ưu
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ìnhdạng phức tạp
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 có khả năng tìm ra các cụm không lồi hoặc các cụm có hìnhdạng phức tạp
Trang 19 Độ hội tụ của thuật toán phụ thuộc vào việc khởi tạo các vectortrung tâm cụmKhông phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1cụm, chỉ phù hợp với đường biên giữa các cụm rõ.
V Các biến thể
1.Thuật toán K-medoid:
Tương tự thuật toán K-mean
Mỗi cụm được đại diện bởi một trong các đối tượng của cụm
Chọn đối tượng ở gần tâm cụm nhất làm đại diện cho cụm đó
K-medoid khắc phục được nhiễu, nhưng độ phức tạp lớn hơn
2.Thuật toán Fuzzy c-mean (FCM):
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ề 1cụ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ụm vớ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 quacá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ích thước lớn hơn, nhiều chiều và nhiều nhiễu, song vẫn nhạy cảmvới nhiễu và các phần tử ngoại lai
VI Ứng dụng của thuật toán
Phân cụm tài liệu web
o Tìm kiếm và trích rút tài liệu
o Tiền xử lý tài liệu: Quá trình tách từ và vecto hóa tài liệu: tìmkiếm và thay thế các từ bới chỉ số của từ đó trong từ điển.Biểudiễn dữ liệu dưới dạng vectơ
o Áp dụng K-Mean
Trang 20Kết quả trả về là các cụm tài liệu và các trọng tâm tương ứng.
Phân vùng ảnh
PHẦN IV THUẬT TOÁN ISODATA
I Nguyên lý hoạt động
Thuật toán ISODATA là thuật toán cải tiến của thuật toán K-means,
do đó về cơ bản hai thuật toán này có nhiều điểm tương đồng, tâm Cluster đều được tính bằng trung bình các mẫu Tuy nhiên, ISODATA mô tả bao quát tập các thủ tục phỏng đoán bổ sung được kết hợp chặt chẽ trong sơ đồ
có ảnh hưởng lẫn nhau
Nếu như kết quả của thuật toán K-means phụ thuộc rất nhiều vào số lượng K nhóm đặt ra ban đầu thì ISODATA linh động hơn, các nhóm có thể được tự động tách hoặc ghép trong giới hạn số nhóm K đặt ra ban đầu Ví
dụ, nếu một nhóm quá tản mạn thì tách làm hai nhóm hoặc nếu hai nhóm quá gần nhau thì gộp vào một nhóm Việc quyết định tách nhóm hay phân nhóm cũng được quyết định dựa vào khoảng cách từ tất cả các phần tử tới tất
cả các tâm
Trước khi thực hiện thuật toán, ta cần xác định rõ tập Nc các tâm Cluster {z1, z2,…,zNc} Tập Nc khởi tạo không nhất thiết phải bằng số tâp cluster yêu cầu, sau quá trình phân tách các nhóm ta sẽ thu được kết quả mong muốn
Dưới đây là mô tả các bước thực hiện của thuật toán ISODATA với tập N mẫu {x1, x2,…,xn}
Bước 1: Xác định các tham số
K: Số Cluster mong muốn (hay số tâm Cluster mong muốn)
θN: Tham số giới hạn số mẫu trong một miền Cluster
θS: Tham số độ lệch chuẩn
θC: Tham số kết hợp
L: Số cặp tâm Cluster cực đại có thể kết hợp
I: Số bước lặp lại cho phép
Bước 2: Nhóm các mẫu vào các Cluster hiện tại, với điều kiện ghép nhóm:
x thuộc Sj nếu ||x-zj|| < || x-zi|| với i = 1,2,…,Nc ; i ≠ j