Tải bản đầy đủ (.doc) (27 trang)

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ạ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 (458.64 KB, 27 trang )

TRƯỜ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.
NHÓM HỌC VIÊN THỰC HIỆN: ĐỖ ĐỨC TÙNG
BÙI ANH QUANG
PHẠM HOÀNG HÙNG
HàNội - 12/2012
MỤC LỤC
PHÂN CÔNG CÔNG VI CỆ 3
BÀI TOÁN PHÂN NHÓM 4
PHÂN NHÓM CÂY PHÂN C PẤ 7
THU T TOÁN K – MEANSẬ 10
THU T TOÁN ISODATAẬ 20
L P TRÌNH CÀI T THU T TOÁN K-MEANSẬ ĐẶ Ậ 25
TÀI LI U THAM KH OỆ Ả 27
27
PHÂN CÔNG CÔNG VIỆC
Họ và tên Lớp Công việc thực hiện
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
Đỗ Đức Tùng
Ths Kỹ Thuật
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
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ả hai
phươ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ệ khoa
họ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ĩnh
vực đã tạo ra một khối lượng đối tượngkhổng lồ. Tự động phân nhóm là một
nhiệm vụ rất quan trọng, đặc biệt là trong việc tổ chức cũng như tìm kiếm
thô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 đối
tượng, mục đích để tổ chức một tập các đối tượng cụ thể hoặc trừu tượng
vào các nhóm phân biệt. Những đối tượng có tương tự nhau sẽ được xếp vào
cùng một nhóm và những đối tượng có khác nhau được xếp vào các nhóm
khá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ước
cá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ầu
củ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àm
việ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ớn
chứ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.
• 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 đối
tượng số, có những thuật toán khi áp dụng cho loại đối tượng nhị phân
hay đố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 Manhattan
với mục đích nhận biết độ dày và giống nhau của các đối tượng trong
nhó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 tri
thứ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ượng
thự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ệc
tạ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ân
nhóm không thể sát nhập thêm đối tượng mới vào trong bộ phân
nhóm, thêm đối tượng vào nhóm có sẵn hoặc tạo thêm nhóm mới. Bên
cạnh đó, một thuật toán phân nhóm tốt không tạo ra các bộ phân nhóm
khá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 ba
chiều) cũng rất đa dạng và cần thiết được phân nhóm cho nhiều ứng
dụ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ức
con người tỏ ra có hiệu quả, tuy nhiên với khối lượng đối tượng lớn
như vậy, việc sử dụng kiến thức chuyên gia là tốn kém nên chúng ta
cầ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 ta
cầ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 hai
hay nhiều đối tượng. Việc phân nhóm cần đảm bảo các đối tượng này
thỏa mãn các ràng buộc đó.
• 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ụng
rộ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ác
hay thiếu đầy đủ. Vì vậy cần phải thực hiện bước tiền xử lý đối tượng nhằm
khắc phục hoặc loại bỏ nhiễu trước khi chuyển sang giai đoạn phân tích
nhóm đối tượng. Một trong các kỹ thuật xử lý nhiễu hiện nay là thay thế các
giá 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 đối
tượ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 đang
phả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ây

dự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ây
dự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.
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ây
phâ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 nhau
nhiề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ép
và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ành
tách đôi các nhóm đến khi từng đối tượng phân biệt được đưa ra.
IV. Phương pháp HAC
HAC dựa theo đặc thù của thuật toán phân nhóm đệ quy và coi mỗi
đối tượng như một điểm đối tượng trong không gian Euclide. Việc tính toán
độ tương tự giữa các nhóm dựa vào cách tính khoảng cách trong không gian
Euclide.
Bằng cách đi lên từ lớp dưới cùng lên nút trên đầu, sơ đồ cây phân cấp
cho chúng ta thấy các bước kết hợp đôi một từng nhóm. Ví dụ nhìn vào sơ
đồ ta có thể thấy rằng 2 nhóm mang nhãn 1 và 2 đầu tiên được nhóm với
nhau, sau đó được nhóm với nhóm mang nhãn 3 trở thành nhóm 123 được
đưa ra. Nhóm 4 và 5 được nhóm với nhau tạo thành nhóm 45, cuối cùng hai
nhóm 123 và 45 ghép lại thành một nhóm tổng thế chứa cả 5 đối tượng là
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.

Phâ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ế, trong
việ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.
V. 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óm
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à khoảng cách nhỏ nhất tìm được chính là khoảng cách
giữa 2 nhóm đó. Tại mỗi bước, 2 nhóm gần nhau nhất sẽ được chọn để ghép
lạ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 2
nhóm. Khoảng cách giữa các nhóm được định nghĩa:
D(r,s)= Max d(i,j)
Trong đó:
• 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óm
là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
VI. Đặc điểm phân nhóm HAC
Ưu điểm:
• Khái niệm đơn giản
Nhược điểm:
• Quyết định trộn tách các nhóm là vĩnh cửu nên chương trình không có
tính quay lui, nếu có quyết định sai thì không thể khắc phục lại.
• Độ phức tạp thuật toán cao, thời gian thực hiện phân nhóm lâu.
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
VII. 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ới
nhữ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ệu
lớ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ộ.

VIII. Phát biểu bài toán
1. Phát biểu bài toán:
• Input
o Tập các đối tượng X = {x
i
| i = 1, 2, …, N}; x
i
R
d
o Số cụm: K
• Output
o Các cụm C
i
( i = 1 ÷ K) tách rời và hàm tiêu chuẩn E đạt giá trị
tối thiểu.
2. Khái quát về thuật toán
• Thuật toán hoạt động trên 1 tập vectơ d chiều, tập dữ liệu X gồm N
phần tử:
X = {x
i
| i = 1, 2, …, N}
• K-Mean lặp lại nhiều lần quá trình:
o Gán dữ liệu.
o Cập nhật lại vị trí 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 cụm.
• Hàm đo độ tương tự sử dụng khoảng cách Euclidean
E =

trong đó cj là trọng tâm của cụm C

j
• 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
(|| || )
i j
N
i j
i x C
x c
= ∈

∑ ∑
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 {c
i
} (i = 1÷K).
Bước 2 - Tính toán khoảng cách
S
i
(t)
= {x
j
:|| x
j
- c
i
(t)

|| || x
j
- c
i*
(t)
với mọi i* = 1, …, k}
Bước 3 - Cập nhật lại trọng tâm
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
IX. 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)
A 1 1
B 2 1
C 4 3
D 5 4
Sử dụng thuật toán K-means phân chia thành 2 cụm dữ liệu
Bước 1: Khởi tạo
Chọn 2 trọng tâm ban đầu:
c1(1,1) ≡ A và c2(2,1) ≡ B, thuộc 2 cụm 1 và 2
Bước 2: Tính toán khoảng cách
d(C, c1) = (4-1)2+(3-1)2 = 13
d(C, c2) = (4-2)2+(3-1)2 = 8
d(C, c1) > d(C, c2)  C thuộc cụm 2
d(D, c1) = (5-1)2+(4-1)2 = 25
d(D, c2) = (5-2)2+(4-1)2 = 18
d(D,c1) > d(D, c2)  D thuộc cụm 2
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)
Trọng tâm cụm 2 c2 (x,y) = ((2+4+5)/3, (1+3+4)/3) = (11/3, 8/3)
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 2
d(D, c1 ) = 25 > d(D, c2 ) = 3.56  D thuộc cụm 2
Bướ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 1
d(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 2
d(D, c1 ) = 21.25 > d(D, c2 ) = 0.5  D thuộc cụm 2
Bướ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}
X. Đá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.
• Độ 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.
• Luôn có K cụm dữ liệu
• 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ào khác.
2.Nhược điểm

• Chất lượng của thuật toán k-means phụ thuộc nhiều vào các tham số
đầu vào như: số cụm k và k trọng tâm khởi tạo ban đầu. Trong trường
hợp các trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm
cụm tự nhiên thì kết quả phân cụm của k-means là rất thấp
• Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua
nhiề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ình
dạ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ình
dạng phức tạp.
• Độ 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âm cụmKhông phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1
cụm, chỉ phù hợp với đường biên giữa các cụm rõ.
XI. 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ề 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ụ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 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ích thướ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ác phần tử ngoại lai.

XII. Ứ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ìm
kiếm và thay thế các từ bới chỉ số của từ đó trong từ điển.Biểu
diễn dữ liệu dưới dạng vectơ.
o Áp dụng K-Mean
Kế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
THUẬT TOÁN ISODATA
XIII. 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 N
c
các tâm
Cluster {z
1,
z
2,…,

z
Nc
}. Tập N
c
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 {x
1
, x
2
,…,x
n
}.
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 S

j
nếu ||x-z
j
|| < || x-z
i
|| với i = 1,2,…,N
c
; i ≠ j
Điều kiện này được áp dụng với mọi x thuộc tập mẫu, S
j
là tập con các mẫu
của tâm z
j
.
Bước 3: Loại bỏ một tập con mẫu có ít hơn θ
N
phần tử
Bước 4: Tính lại các tâm Cluster {z
1,
z
2,…,
z
Nc
}, giá trị tâm mới z
j
bằng trung
bình mẫu của tập mẫu S
j
.
Bước 5: Tính khoảng cách trung bình D

j
của các mẫu trong miền cluster S
j

từ tâm cluster tương ứng với công thức.
Bước 6: Tính khoảng cách trung bình toàn bộ của các mẫu từ các tâm
cluster riêng biệt, sử dụng mối liên hệ.
Bước 7: Nếu đây là bước lặp cuối cùng, đặt N
c
=0 và tới bước 11, Nếu N
c
<
K/2 tới bước 8, Nếu đây đúng là số bước lặp hoặc N
c
≥ 2K, tới bước 11, nếu
không tiếp tục bước 8.
Bước 8: Tìm vector độ lệch chuẩn δ
j
= (δ
1j
, δ
2j
, …, δ
nj
,) cho mỗi tập con mẫu
sử dụng sự liên hệ:
Trong đó n là số chiều của mẫu, x
ik
là thành phần thứ i của mẫu thứ k trong
S

j
, z
ij
là thành phần thứ I của z
j
và N
j
là số mẫu trong S
j
. Mỗi thành phần của
δ
j
là độ lệch chuẩn của các mẫu trong S
j
theo trục tọa độ gốc.
Bước 9: Tìm thành phần cực đại của mỗi δ
j
, j=1,2,…,N
c
và gọi là δ
j max
Bước 10: Nếu với bất cứ δ
j max
, j=1,2,…,N
c
chúng ta có δ
j max
> θ
S
Khi đó chi z

j
thành 2 tâm cluster mới z
j
+
và z
j
-
và tăng N
c
lên 1. Tâm
cluster z
j
+

bằng lượng γ
j
cộng thêm cho các thành phần của z
i
tương ứng với
các thành phần cực đại của δ
j
, z
j
-
bằng lượng z
i
trừ đi lượng γ
j
. Cách xác định
γ

j
cho bằng một phần nhỏ δ
j max
tức là γ
j
=k δ
j max
(0<k≤1). Yêu cầu chọn γ
j

nó tạo ra sự khác biệt có thể nhận ra trong khoảng cách từ mẫu tùy ý tới 2
tâm mới, nhưng cũng không quá lớn tới mức làm thay đổi toàn bộ sự sắp xếp
miền cluster. Nếu sự phân chia xảy ra trong bước này, tới bước 2, các trường
hợp khác tiếp tục.
Bước 11: Tình các khoảng cách D
ij
giữa mọi tâm cluster
D
ij
= ||z
i
– z
j
||, i=1,2,…,N
c
-1; j=i+1,…,N
c
Bước 12: So sánh các khoảng cách D
ij
dựa vào tham số θ

C
. Sắp xếp L
khoảng cách nhỏ nhất, nhỏ hơn θ
C
theo thứ tự tăng dần:
Bước 13: Với mỗi khoảng cách như vậy có một cặp tâm z
il
và z
jl
được kết
hợp lại. Bắt đầu với khoảng cách nhỏ nhất, thực hiện phép toán kết hợp theo
luật sau:
Với l=1,2,…,L nếu z
il
hoặc z
jl
kết hợp trong bước này, hợp nhất 2 tâm
cluster sử dụng sự liên hệ:
Loại bỏ z
il
và z
jl
và giảm N
c
đi một.
Chỉ cho phép nhóm cặp tốt nhất và tâm cluster được nhóm từ trọng
lượng của mỗi tâm cluster cũ bằng số các mẫu trong miền của nó. Thực
nghiệm cho thấy sự kết hợp phức tạp đem lại kết quả không như ý. Thủ tục
trên cho tâm cluster nhóm lại đúng bằng trung điểm của các tập con kết hợp
lại, khi đó tâm cluster chỉ có thể được nhóm lại một lần, bước này không cho

kết quả L tâm nhóm lại.
Bước 14: Nếu đây là bước lặp cuối cùng, thuật toán kết thúc. Trong trường
hợp khác, bắt đầu tiếp tục với bước 1 nếu cần thay đổi bất kỳ tham số nào,
hoặc tới bước 2 nếu các tham số được giữ nguyên cho bước lặp tiếp theo.
Ví dụ:
Xét ví dụ đơn giản với tập mẫu ban đầu gồm 8 phần tử, và các thông
số giới hạn K = 2, θ
N
= 1, θ
S
= 1, θ
c
= 4, L = 0, I = 4.
Giả thiết tâm cluster của tập mẫu ban đầu là z{0;0}, N
c
=1, sau khi thực hiện
các bước trong thuật toán ISODATA ta thu được kết quả là hai cluster như
đồ hình trên với các tâm lần lượt là z
1
{1;1} và z
2
{4.8;3.8}.
XIV. Đánh giá thuật toán
Thuật toán ISODATA là thuật toán khá mềm dẻo, không cần phải cố
định các lớp trước. Một số đặc trưng của thuật toán ISODATA:
• Lựa chọn phân hoạch ban đầu dựa trên các tâm bất kỳ (Thực
nghiệm đã chứng minh, kết quả của quá trình nhận dạng không
phụ thuộc vào phân lớp ban đầu)
• Phân vùng bằng cách xắp xếp các mẫu vào tâm gần nhất
• Tự động phân tách hoặc ghép các cluster nếu thỏa mãn các yêu cầu

được đưa ra ban đầu.
Thuật toán ISODATA không yêu cầu cần phải có quá nhiều thông tin
đầu vào, giải thuật thực hiện không quá phức tạp, không đòi hỏi quá nhiều
sự tham gia của người sử dụng. ISODATA đặc biệt hữu dụng trong việc xác
định ranh giới các cluster trong dữ liệu.
LẬP TRÌNH CÀI ĐẶT THUẬT TOÁN K-MEANS
Ta sẽ lập trình một ứng dụng đơn giản: tách từ và vector hóa tài liệu
sau đó gom cụm các tài liệu có nội dung tương tự nhau.
Tập dữ liệu minh họa sẽ chứa 10 file text, đặt trong cùng thư mục
với chương trình.
Nội dung file sẽ được đọc ra, tách từ và chuyển thành giá trị dạng
vector bằng cách sử dụng bảng băm (Hashtable).
Sử dụng thuật toán K-means, dựa trên tập dữ liệu của bảng băm để
phân cụm nội dung văn bản.
Người dùng cần nhập số cụm cần phân cụm (k<=10)

×