Khái niệm và mục đích của phân cụm dữ liệu Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng thực thể hay trừu tượng thành lớp các đối tượng tương tự.. Các kỹ thuật phân cụm dữ l
Trang 1- -
TRƯƠNG ĐỨC CƯỜNG
PHÂN CỤM DỮ LIỆU SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ MẠNG NƠ RON
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2012
Trang 2- -
TRƯƠNG ĐỨC CƯỜNG
PHÂN CỤM DỮ LIỆU SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ MẠNG NƠ RON
Chuyên ngành : Khoa học máy tính
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS Vũ Mạnh Xuân
Trang 3LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc tới TS Vũ Mạnh Xuân, thầy đã hướng dẫn, chỉ dạy tận tình để em hoàn thành luận văn này Em xin chân thành cảm ơn các thầy, cô giáo Trường Đại học Công nghệ Thông tin & Truyền thông - Đại học Thái Nguyên, cùng các thầy, cô giáo Viện Công nghệ Thông tin - Viện Khoa học và Công nghệ Việt Nam đã truyền thụ kiến thức cho em trong suốt quá trình học tập vừa qua
Tôi cũng xin cảm ơn cơ quan, bạn bè đồng nghiệp, gia đình và những người thân đã cùng chia sẻ, giúp đỡ, động viên, tạo mọi điều kiện thuận lợi để tôi có thể học tập và hoàn thành bản luận văn này
Tuy đã có những cố gắng nhất định nhưng do thời gian và trình độ có hạn nên chắc chắn luận văn còn nhiều thiếu sót và hạn chế nhất định Rất mong nhận được sự góp ý của thầy cô và các bạn
Thái Nguyên, ngày 27 tháng 06 năm 2012
Học viên
Trương Đức Cường
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm nghiên cứu, tìm hiểu của riêng cá nhân tôi Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo
quy định cho lời cam đoan của mình
Thái Nguyên, ngày 27 tháng 06 năm 2012
Học viên
Trương Đức Cường
Trang 5MỤC LỤC
MỤC LỤC iii
DANH SÁCH HÌNH VẼ v
DANH SÁCH BẢNG BIỂU vi
DANH SÁCH TỪ VIẾT TẮT vii
MỞ ĐẦU 1
CHƯƠNG I: TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU 3
1.1 Khái niệm và mục đích của phân cụm dữ liệu 3
1.2 Ứng dụng của phân cụm dữ liệu 4
1.3 Một số phương pháp phân cụm dữ liệu 5
1.3.1 Phân cụm phân hoạch 5
1.3.2 Phân cụm phân cấp 7
1.3.3 Phân cụm dựa trên mật độ 9
1.3.4 Phân cụm dựa trên lưới 11
1.3.5 Phân cụm dữ liệu dựa trên mô hình 13
1.3.6 Phân cụm dữ liệu mờ 14
CHƯƠNG II: PHÂN CỤM DỮ LIỆU SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ MẠNG NƠ RON 16
2.1 Giải thuật di truyền 16
2.1.1 Sơ đồ thực hiện giải thuật di truyền 17
2.1.2 Các quá trình chính trong giải thuật di truyền 19
Trang 62.1.2.1 Biểu diễn các cá thể 19
2.1.2.2 Hàm mục tiêu (Fitness) 21
2.1.2.3 Toán tử tái tạo (Reproduction) 21
2.1.2.4 Toán tử lai ghép (Crossover) 24
2.1.2.5 Toán tử đột biến (Mutation) 26
2.1.2.6 Các thông số cơ bản của giải thuật di truyền 27
2.1.3 Ưu và nhược điểm của giải thuật di truyền 28
2.2 Mạng nơ ron 30
2.2.1 Định nghĩa 30
2.2.2 Nơ ron sinh học và mạng nơ ron sinh học 31
2.2.3 Cấu trúc mạng nơ ron 32
2.2.4 Phân loại mạng nơ ron 33
2.3 Mối quan hệ giữa giải thuật di truyền và mạng nơ ron trong phân cụm dữ liệu 35
2.3.1 Một số phương thức kết hợp giữa GA và mạng nơ ron 36
2.3.2 Một số ví dụ về việc kết hợp giữa GA và mạng nơ ron 38
CHƯƠNG III: BÀI TOÁN ỨNG DỤNG 42
3.1 Phát biểu bài toán 42
3.2 Thuật toán 42
3.3 Kết quả thử nghiệm 48
3.4 Nhận xét 49
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 55
Trang 7DANH SÁCH HÌNH VẼ
Hình 1.1 Quy trình phân cụm 3
Hình 1.2 Mô phỏng sự phân cụm dữ liệu 4
Hình 1.3 Các chiến lược phân cụm phân cấp 8
Hình 1.4 Một số hình dạng khám phá bởi phân cụm dựa trên mật độ 10
Hình 1.5 Mô hình cấu trúc dữ liệu lưới 12
Hình 2.1 Lưu đồ giải thuật di truyền 18
Hình 2.2 Bánh xe trọng số 23
Hình 2.3 Lai ghép một điểm 25
Hình 2.4 Lai ghép trong biểu diễn bằng giá trị 26
Hình 2.5 Cấu tạo của nơ ron 31
Hình 2.6 Thu nhận tín hiệu trong nơ ron 31
Hình 2.7 Mạng nơ ron truyền thẳng nhiều lớp 34
Hình 2.8 Mạng hồi quy (Recurrent Neural Network) 34
Hình 2.9 Mô đun ghép cặp Di truyền – Nơ ron trong một hệ thống ứng dụng 38
Hình 2.10 Sơ đồ của hệ thống XROUTE (Kadaba, Nygard và Juell 1991) 38
Hình 3.1 Dữ liệu đầu ra 42
Hình 3.2 Dữ liệu đầu vào sau khi mã hóa 43
Hình 3.3 Quá trình lai ghép 43
Hình 3.4 Tập điểm dữ liệu vào 48
Hình 3.5 Giao diện chương trình 49
Hình 3.6 Kết quả phân cụm với string count = 100 50
Hình 3.7 Kết quả phân cụm với string count = 1 50
Hình 3.8 Kết quả phân cụm bộ dữ liệu giao nhau với stringcount = 1 51
Trang 8DANH SÁCH BẢNG BIỂU
Bảng 2.1 Bảng thể hiện tổng giá trị hàm mục tiêu 22
Bảng 2.2 Chuỗi nhiễm sắc thể 23
Bảng 2.3 Lai ghép mặt nạ 25
Bảng 2.4 So sánh K-mean và Giải thuật di truyền 29
Bảng 2.5 Một số phương thức liên GA với mạng nơ ron 37
Trang 10MỞ ĐẦU
Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông tin và ngành công nghiệp phần cứng đã 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 một cách chóng mặt Bên cạnh đó việc tin học hóa một cách ồ ạt và nhanh chóng các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo cho chúng ta một hệ thống cơ sở dữ liệu khổng lồ Hệ thống này đã đem lại những lợi ích
vô cùng to lớn cho con người trong việc lưu trữ, tìm kiếm và thống kê Tuy vậy, sự bùng nổ này đã dẫn tới một nhu cầu mới là phát hiện tri thức từ kho
dữ liệu khổng lồ đó Đây là một vấn đề rất phức tạp, cần phải có những công
cụ và kỹ thuật xử lý linh hoạt như suy nghĩ của con người
Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt rất quan tâm Mục đích chính của các thuật toán là tìm kiếm thuật giải chất lượng cao và sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt rất cần thiết khi giải quyết các bài toán
có không gian tìm kiếm lớn
Giải thuật di truyền (Genetic Algorithm - GA) là một trong những kỹ thuật tìm kiếm lời giải tối ưu đã đáp ứng được yêu cầu của nhiều bài toán và ứng dụng Hiện nay, thuật toán di truyền cùng với mạng nơ ron được ứng dụng rất rộng rãi trong các lĩnh vực phức tạp Thuật toán di truyền kết hợp với mạng nơ ron chứng tỏ được hiệu quả của nó trong các vấn đề khó có thể giải quyết bằng các phương pháp thông thường hay các phương pháp cổ điển, nhất là trong các bài toán cần có sự lượng giá, đánh giá sự tối ưu của kết quả thu được
Chính vì vậy, trong phạm vi đề tài này, tôi chọn hướng kết hợp giữa mạng nơ ron và giải thuật di truyền áp dụng vào bài toán phân cụm dữ liệu,
Trang 11đặc biệt với các bài toán có tập dữ liệu đầu vào lớn mà nếu áp dụng phương pháp truyền thống sẽ gặp nhiều khó khăn
Bố cục của đề tài gồm 3 phần chính:
Chương 1: Tổng quan về phân cụm dữ liệu
1.1 Khái niệm và mục đích của phân cụm dữ liệu
1.2 Ứng dụng của phân cụm dữ liệu
1.3 Nhận xét
1.4 Một số phương pháp phân cụm dữ liệu
Chương 2: Phân cụm dữ liệu sử dụng giải thuật di truyền và mạng nơ ron
2.1 Giải thuật di truyền
2.2 Mạng nơ ron
2.3 Mối quan hệ giữa giải thuật di truyền và mạng nơ ron trong phân cụm dữ liệu
Chương 3: Bài toán ứng dụng
3.1 Phát biểu bài toán
3.2 Thuật toán
3.3 Kết quả thử nghiệm
3.4 Nhận xét
Trang 12CHƯƠNG I: TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU
Ngày nay, khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền công nghệ thông tin thế giới nói chung và Việt Nam nói riêng 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 kinh doanh
Trong chương 1 sẽ trình bày về khái niệm, ứng dụng, đưa ra nhận xét và một số phương pháp để phân cụm dữ liệu
1.1 Khái niệm và mục đích của phân cụm dữ liệu
Phân cụm dữ liệu là quá trình nhóm một tập các đối tượng thực thể hay trừu tượng thành lớp các đối tượng tương tự Một cụm là một tập hợp các đối tượng dữ liệu mà các phần tử của nó tương tự nhau và phi tương tự với các đối tượng trong các cụm khác Một cụm các đối tượng dữ liệu có thể xem như là một nhóm trong nhiều ứng dụng
N đối tượng
Trang 13Độ tương tự được xác định dựa trên giá trị các thuộc tính mô tả đối tượng Thông thường, phép đo khoảng cách thường được sử dụng để đánh giá
độ tương tự hay phi tương tự Vấn đề phân cụm có thể minh hoạ như hình sau:
Hình 1.2 Mô phỏng sự phân cụm dữ liệu Mục tiêu của phân cụm là xác định được bản chất nhóm trong tập dữ liệu chưa có nhãn Theo các nghiên cứu thì hiện nay chưa có một phương pháp phân cụ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 cấu trúc cụm dữ liệu Hơn nữa, các phương pháp phân cụm cần có cách thức biểu diễn cấu trúc của các cụm dữ liệu, với mỗi cách thức biểu diễn khác nhau sẽ có tương ứng một thuật toán phân cụm phù hợp Vì vậy phân cụm dữ liệu vẫn đang là một vấn đề khó và mở, vì phải giải quyết nhiều vấn đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau, đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị dữ liệu và đây cũng là một trong những thách thức lớn trong lĩnh vực khai phá dữ liệu
1.2 Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu là một trong những công cụ chính của khai phá dữ liệu được ứng dụng trong nhiều lĩnh vực như thương mại và khoa học Các kỹ thuật phân cụm dữ liệu đã được áp dụng cho một số ứng dụng điển hình trong các lĩnh vực sau:
- Thương mại: phân cụm dữ liệu có thể giúp các thương nhân tìm ra các nhóm khách hàng quan trọng có các đặc trưng tương đồng nhau và đặc tả họ
từ các mẫu mua bán trong CSDL khách hàng
Trang 14- Sinh học: phân cụm dữ liệu được sử dụng để xác định các loại sinh vật, phân loại các Gen với chức năng tương đồng và thu được các cấu trúc trong các mẫu
- Phân tích dữ liệu không gian: do sự đồ sộ của dữ liệu không gian như dữ liệu thu được từ các hình ảnh chụp từ vệ tinh, các thiết bị y học hoặc hệ thống thông tin địa lý (GIS),… làm cho người dùng rất khó để kiểm tra các dữ liệu không gian một cách chi tiết Phân cụm dữ liệu có thể trợ giúp người dùng tự động phân tích và xử lý các dữ liệu không gian như nhận dạng và chiết xuất các đặc tính hoặc các mẫu dữ liệu quan tâm có thể tồn tại trong CSDL không gian
- Lập quy hoạch đô thị: nhận dạng các nhóm nhà theo kiểu và vị trí địa lý,… nhằm cung cấp thông tin cho quy hoạch đô thị
- Nghiên cứu trái đất: phân cụm để theo dõi các tâm động đất nhằm cung cấp thông tin cho nhận dạng các vùng nguy hiểm
- Địa lý: phân lớp các động vật, thực vật và đưa ra đặc trưng của chúng
- Khai phá Web: phân cụm dữ liệu có thể khám phá các nhóm tài liệu quan trọng, có nhiều ý nghĩa trong môi trường Web Các lớp tài liệu này trợ giúp cho việc khám phá tri thức từ dữ liệu Web, khám phá ra các mẫu truy cập của khách hàng đặc biệt hay khám phá ra cộng đồng Web,…
1.3 Một số phương pháp phân cụm dữ liệu
1.3.1 Phân cụm phân hoạch
Ý tưởng chính của kỹ thuật này là 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 Các thuật toán phân hoạch có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề PCDL, vì nó phải tìm kiếm tất cả các cách phân hoạch có thể được
Trang 15Chính vì vậy, trên thực tế người ta thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của các cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu
Với chiến lược này, thông thường người ta bắt đầu khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo phép ngẫu nhiên hoặc theo heuristic và liên tục tinh chỉnh nó cho đến khi thu được một phân hoạch mong muốn, thỏa mãn các điều kiện ràng buộc cho trước
Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ưu cục
bộ là sử dụng chiến lược ăn tham để tìm kiếm nghiệm
Lớp các thuật toán phân cụm phân hoạch bao gồm các thuật toán đề xuất đầu tiên trong lĩnh vực khai phá dữ liệu (KPDL) cũng là các thuật toán
được áp dụng nhiều trong thực tế như K-mean, PAM, CLARA, CLARANS
Sau đây là một thuật toán kinh điển được kế thừa sử dụng rộng rãi:
* Thuật toán K-mean
Thuật toán phân cụm K-mean do MacQueen đề xuất trong lĩnh vực
thống kê năm 1967 Tư tưởng chính của thuật toán là tìm cách phân nhóm
các đối tượng (objects) đã cho vào k cụm (k là số các cụm được xác định trước, k nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối
tượng đến tâm nhóm (centroid) là nhỏ nhất Trọng tâm của một cụm là một vector, trong đó giá trị của mỗi phần tử của nó là trung bình cộng các thành phần tương ứng của các đối tượng vector dữ liệu trong cụm đang xét
Thuật toán K-mean được chứng minh là hội tụ và có độ phức tạp tính
toán là: O((n*k*d) * *T flop) Trong đó:
- n là số đối tượng dữ liệu
- k là số cụm dữ liệu
- d là số chiều
Trang 16mean còn rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu
Hơn nữa, chất lượng PCDL của thuật toán K-mean 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-mean là rất thấp, nghĩa là
các cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế
Trên thực tế người ta chưa có một giải pháp tối ưu nào để chọn các tham
số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị
đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất
Đến nay, đã có rất nhiều thuật toán kế thừa tư tưởng của thuật toán
K-mean áp dụng trong KPDL để giải quyết tập dữ liệu có kích thước rất lớn
đang được áp dụng rất hiệu quả và phổ biến như thuật toán K-medoid,
PAM, CLARA, CLARANS, K-prototype,
1.3.2 Phân cụm phân cấp
Phân cụm phân cấp 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 phân cấp này được xây dựng theo kỹ thuật đệ quy Cây phân cụm có thể được xây dựng theo hai phương pháp tổng quát: phương pháp “trên xuống” (Top down) và phương pháp “dưới lên” (Bottom up)
- Phương pháp Bottom up: phương pháp này 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, sau đó tiến hành nhóm các đối tượng theo một độ đo tương tự (như khoảng cách giữa hai trung tâm
Trang 17của hai nhóm), quá trình này được thực hiện cho đến khi tất cả các nhóm được hòa nhập vào một nhóm (mức cao nhất của cây phân cấp) hoặc cho đến khi các điều kiện kết thúc thoả mãn Như vậy, cách tiếp cận này sử dụng chiến lược ăn tham trong quá trình phân cụm
- Phương pháp Top down: 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 Mỗi vòng lặp thành công, một cụm được tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ tương tự nào đó 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 Cách tiếp cận này sử dụng chiến lược chia để trị trong quá trình phân cụm
Sau đây là minh họa chiến lược phân cụm phân cấp Bottom up và Top down
Hình 1.3 Các chiến lược phân cụm phân cấp Trong thực tế áp dụng, có nhiều trường hợp người ta kết hợp cả hai phương pháp phân cụm phân hoạch và phân cụm phân cấp, nghĩa là kết quả thu được của phương pháp phân cấp có thể cải tiến thông qua bước phân cụm phân hoạch Phân cụm phân hoạch và phân cụm phân cấp là hai phương pháp PCDL cổ điển, hiện nay đã có nhiều thuật toán cải tiến dựa trên hai
Trang 18phương pháp này đã được áp dụng phổ biến trong KPDL Một số thuật toán
phân cụm phân cấp điển hình như: CURE, BIRCH, Chemeleon, AGNES,
DIANA,
* Thuật toán BIRCH
BIRCH (Balanced Iterative Reducing and Clustering Using Hierarchies) do Tian Zhang, Amakrishnan và Livny đề xuất năm 1996, đây là
thuật toán phân cụm phân cấp sử dụng chiến lược Top down
Ý tưởng của thuật toán là không cần lưu toàn bộ các đối tượng dữ liệu của các cụm trong bộ nhớ mà chỉ lưu các đại lượng thống kê Đối với mỗi
cụm dữ liệu, BIRCH chỉ lưu một bộ ba (n, LS, SS), với n là số đối tượng trong cụm, LS là tổng các giá trị thuộc tính của các đối tượng trong cụm và SS là
tổng bình phương các giá trị thuộc tính của các đối tượng trong cụm
Các bộ ba này được gọi là các đặc trưng của cụm CF = (n, LS, SS)
(Cluster Features - CF) và được lưu giữ trong một cây được gọi là cây CF BIRCH chỉ duyệt toàn bộ dữ liệu một lần với một lần quét thêm tùy chọn,
nghĩa là độ phức tạp của nó là O(n)
Nhược điểm của nó là chất lượng của các cụm được khám phá không được
tốt Nếu BIRCH sử dụng khoảng cách Euclide, nó thực hiện tốt chỉ với các dữ liệu số Mặt khác, tham số vào T có ảnh hưởng rất lớn tới kích thước và tính tự
nhiên của cụm Việc ép các đối tượng dữ liệu làm cho các đối tượng của một cụm có thể là đối tượng kết thúc của cụm khác, trong khi các đối tượng gần nhau có thể bị hút bởi các cụm khác nếu chúng được biểu diễn cho thuật toán
theo một thứ tự khác BIRCH không thích hợp với dữ liệu đa chiều
1.3.3 Phân cụm dựa trên mật độ
Phương pháp này nhóm các đối tượng theo hàm mật độ xác định Mật
độ được định nghĩa như là số các đối tượng lân cận của một đối tượng dữ liệu theo một ngưỡng nào đó
Trang 19Trong cách tiếp cận này, khi một cụm dữ liệu đã xác định thì nó tiếp tục được phát triển thêm các đối tượng dữ liệu mới, miễn là số các đối tượng lân cận của các đối tượng này phải lớn hơn một ngưỡng đã được xác định trước
Phương pháp phân cụm dựa vào mật độ của các đối tượng để xác định các cụm dữ liệu và có thể phát hiện ra các cụm dữ liệu với hình thù bất kỳ Tuy vậy, việc xác định các tham số mật độ của thuật toán là rất khó khăn, trong khi các tham số này lại có tác động rất lớn đến kết quả PCDL
Hình dưới minh họa về các cụm dữ liệu với các hình thù khác nhau dựa trên mật độ được khám phá từ ba CSDL khác nhau:
Hình 1.4 Một số hình dạng khám phá bởi phân cụm dựa trên mật độ Các cụm có thể được xem như các vùng có mật độ cao, được tách ra bởi các vùng không có hoặc ít mật độ Khái niệm mật độ ở đây được xem như
là các số các đối tượng láng giềng
Một số thuật toán PCDL dựa trên mật độ điển hình như: DBSCAN,
OPTICS, DENCLUE, SNN,…
* Thuật toán DBSCAN
Thuật toán phân cụm dựa trên mật độ thông dụng nhất là thuật
toán DBSCAN (Density Based Spatial Clustering of Applications with
Noise) do Ester, P Kriegel và J Sander đề xuất năm 1996
Thuật toán đi tìm các đối tượng mà có số đối tượng láng giềng lớn hơn một ngưỡng tối thiểu Một cụm được xác định bằng tập tất cả các đối tượng
liên thông mật độ với các láng giềng của nó Thuật toán DBSCAN dựa trên
Trang 20các khái niệm mật độ có thể áp dụng cho các tập dữ liệu không gian lớn đa chiều
Thuật toán DBSCAN có thể tìm ra các cụm với hình thù bất kỳ, trong
khi đó tại cùng một thời điểm ít bị ảnh hưởng bởi thứ tự của các đối tượng dữ liệu nhập vào Khi có một đối tượng được chèn vào chỉ tác động đến một láng
giềng xác định Mặt khác, DBSCAN yêu cầu người dùng xác định bán kính
Eps của các láng giềng và số các láng giềng tối thiểu MinPts, thông thường
các tham số này được xác định bằng phép chọn ngẫu nhiên hoặc theo kinh nghiệm
Trừ một số trường hợp ngoại lệ, kết quả của DBSCAN độc lập với thứ tự duyệt các đối tượng dữ liệu Eps và MinPts là hai tham số toàn cục được xác định bằng thủ công hoặc theo kinh nghiệm Tham số Eps được đưa vào là
nhỏ so với kích thước của không gian dữ liệu thì độ phức tạp tính toán trung
bình của mỗi truy vấn là O(nlogn)
1.3.4 Phân cụm dựa trên lưới
Kỹ thuật phân cụm dựa trên mật độ không thích hợp với dữ liệu nhiều chiều, để giải quyết cho đòi hỏi này, người ta đã sử dụng phương pháp phân cụm dựa trên lưới Đây là phương pháp dựa trên cấu trúc dữ liệu lưới để PCDL, phương pháp này chủ yếu tập trung áp dụng cho lớp dữ liệu không gian
Cách tiếp cận dựa trên lưới này không di chuyển các đối tượng trong các
ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một ô Trong ngữ cảnh này, phương pháp này gần giống với phương pháp phân cụm phân cấp nhưng chỉ có điều chúng không trộn các ô Do vậy các cụm không dựa trên độ đo khoảng cách (hay còn gọi là độ đo tương tự đối với các dữ liệu không gian) mà nó được quyết định bởi một tham số xác định trước
Trang 21Tầng 1
Ưu điểm của phương pháp PCDL dựa trên lưới là thời gian xử lý nhanh
và độc lập với số đối tượng dữ liệu trong tập dữ liệu ban đầu, thay vào đó
là chúng phụ thuộc vào số ô trong mỗi chiều của không gian lưới Một thí
dụ về cấu trúc dữ liệu lưới chứa các ô trong không gian như hình sau:
Hình 1.5 Mô hình cấu trúc dữ liệu lưới Một số thuật toán PCDL dựa trên cấu trúc lưới điển hình như:
STING, WaveCluster, CLIQUE,…
* Thuật toán STING
STING (STatistical INformation Grid) do Wang, Yang và Muntz đề xuất
năm 1997, nó phân rã tập dữ liệu không gian thành số hữu hạn các cell sử dụng cấu trúc phân cấp chữ nhật Có nhiều mức khác nhau cho các cell trong cấu trúc lưới, các cell này hình thành lên cấu trúc phân cấp như sau: mỗi cell
ở mức cao được phân hoạch thành các cell mức thấp hơn trong cấu trúc phân cấp
Trang 22Một truy vấn không gian được xác định như là một thông tin khôi
phục lại của dữ liệu không gian và các quan hệ của chúng STING có khả
năng mở rộng cao, nhưng do sử dụng phương pháp đa phân giải nên nó phụ thuộc chặt chẽ vào trọng tâm của mức thấp nhất
Đa phân giải là khả năng phân rã tập dữ liệu thành các mức chi tiết khác nhau Khi hòa nhập các cell của cấu trúc lưới để hình thành các cụm, các nút của mức con không được hòa nhập phù hợp (do chúng chỉ tương ứng với các cha của nó) và hình thù của các cụm dữ liệu khám phá được có các biên
ngang và dọc, theo biên của các cell STING sử dụng cấu trúc dữ liệu lưới cho phép khả năng xử lý song song, STING duyệt toàn bộ dữ liệu một lần nên độ phức tạp tính toán để tính toán các đại lượng thống kê cho mỗi cell là O(n), trong đó n là tổng số đối tượng
Sau khi xây dựng cấu trúc dữ liệu phân cấp, thời gian xử lý cho các
truy vấn là O(g) với g là tổng số cell tại mức thấp nhất (g<<n)
1.3.5 Phân cụm dữ liệu dựa trên mô hình
Phương pháp này cố gắng khám phá các phép xấp xỉ tốt của các tham
số mô hình sao cho khớp với dữ liệu một cách tốt nhất Chúng có thể sử dụng chiến lược phân cụm phân hoạch hoặc chiến lược phân cụm phân cấp, dựa trên cấu trúc hoặc mô hình mà chúng giả định về tập dữ liệu và cách mà chúng tinh chỉnh các mô hình này để nhận dạng ra các phân hoạch
Phương pháp PCDL dựa trên mô hình cố gắng khớp giữa dữ liệu với mô hình toán học, nó dựa trên giả định rằng 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ác thuật toán phân cụm dựa trên mô hình có hai
tiếp cận chính là: Mô hình thống kê và Mạng nơ ron Một số thuật toán điển hình như: EM, COBWEB,
Trang 23* Thuật toán EM
Thuật toán EM (Expectation - Maximization) được nghiên cứu từ 1958
bởi Hartley và được nghiên cứu đầy đủ bởi Dempster, Laird và Rubin công
bố năm 1977
Thuật toán này nhằm tìm ra sự ước lượng về khả năng lớn nhất của các tham số trong mô hình xác suất (các mô hình phụ thuộc vào các biến tiềm ẩn chưa được quan sát), nó được xem như là thuật toán dựa trên mô hình hoặc
là mở rộng của thuật toán K-mean EM gán các đối tượng cho các cụm đã cho
theo xác suất phân phối thành phần của đối tượng đó
EM có thể khám phá ra nhiều hình dạng cụm khác nhau, tuy nhiên do
thời gian lặp của thuật toán khá nhiều nhằm xác định các tham số tốt nên chi phí tính toán của thuật toán là khá cao Đã có một số cải tiến được đề xuất
cho EM dựa trên các tính chất của dữ liệu: có thể nén, có thể sao lưu trong bộ
nhớ và có thể huỷ bỏ
Trong các cải tiến này, các đối tượng bị huỷ bỏ khi biết chắc chắn được nhãn phân cụm của nó, chúng được nén khi không bị loại bỏ và thuộc về một cụm quá lớn so với bộ nhớ và sẽ được lưu lại trong các trường hợp còn lại
1.3.6 Phân cụm dữ liệu mờ
Thông thường, mỗi phương pháp PCDL phân một tập dữ liệu ban đầu thành các cụm dữ liệu có tính tự nhiên và mỗi đối tượng dữ liệu chỉ thuộc về một cụm dữ liệu, phương pháp này chỉ phù hợp với việc khám phá
ra các cụm có mật độ cao và rời nhau
Tuy nhiên, trong thực tế, các cụm dữ liệu lại có thể chồng lên nhau (một số các đối tượng dữ liệu thuộc về nhiều các cụm khác nhau), người
ta đã áp dụng lý thuyết về tập mờ trong PCDL để giải quyết cho trường hợp này, cách thức kết hợp này được gọi là phân cụm mờ Trong phương pháp
Trang 24phân cụm mờ, độ phụ thuộc của đối tượng dữ liệu xk tới cụm thứ i (uik) có
giá trị thuộc khoảng [0,1]
Ý tưởng trên đã được giới thiệu bởi Ruspini (1969) và được Dunn áp dụng năm 1973 nhằm xây dựng một phương pháp phân cụm mờ dựa trên tối thiểu hoá hàm tiêu chuẩn Bezdek (1982) đã tổng quát hoá phương pháp này
và xây dựng thành thuật toán phân cụm mờ C-mean có sử dụng trọng số mũ
C-mean là thuật toán phân cụm mờ (của K-mean) Thuật toán C-mean
mờ hay còn gọi tắt là thuật toán FCM (Fuzzy C-mean) đã được áp dụng thành
công trong giải quyết một số lớn các bài toán PCDL như trong nhận dạng
mẫu, xử lý ảnh, y học,… Tuy nhiên, nhược điểm lớn nhất của thuật toán FCM
là nhạy cảm với các nhiễu và phần tử ngoại lai, nghĩa là các trung tâm cụm có thể nằm xa so với trung tâm thực tế của cụm
Đã có nhiều các phương pháp đề xuất để cải tiến cho nhược điểm trên
của thuật toán FCM bao gồm: Phân cụm dựa trên xác suất (Keller, 1993), phân cụm nhiễu mờ (Dave, 1991), Phân cụm dựa trên toán tử LP Norm
(Kersten, 1999) Thuật toán - Insensitive Fuzzy c-mean ( FCM - không nhạy cảm mờ C-mean)
TỔNG KẾT CHƯƠNG 1
Chương 1 đã trình bày chi tiết về khái niệm, các ứng dụng của phân cụm
dữ liệu Có rất nhiều phương pháp dùng để phân cụm dữ liệu như đã trình bày
ở trên, trong đó mỗi phương pháp có những đặc điểm riêng phù hợp với một lớp các bài toán với các dạng dữ liệu và miền dữ liệu nhất định: Phân cụm phân hoạch sử dụng chiến lược ăn tham để tìm kiếm nghiệm, phân cụm phân cấp thì dùng kỹ thuật đệ quy,
Trong chương 2 sẽ giới thiệu chi tiết về giải thuật di truyền và mạng nơ ron trong phân cụm dữ liệu
Trang 25CHƯƠNG II: PHÂN CỤM DỮ LIỆU SỬ DỤNG GIẢI THUẬT
DI TRUYỀN VÀ MẠNG NƠ RON
Giải thuật di truyền cung cấp một cách tiếp cận cho việc học dựa vào mô phỏng sự tiến hóa Các giả thuyết thường được mô tả bằng các chuỗi bit, việc hiểu các chuỗi bit này tùy thuộc vào ứng dụng, ý tưởng các giả thuyết cũng có thể được mô tả bằng các biểu thức ký hiệu hoặc ngay cả các chương trình máy tính Giải thuật di truyền đã được ứng dụng một cách thành công cho những tác vụ học khác nhau và cho các vấn đề tối ưu hóa khác Việc kết hợp mạng nơ ron và giải thuật di truyền sẽ giúp quá trình phân cụm tối ưu hơn Trong chương 2 sẽ trình bày về giải thuật di truyền, mạng nơ ron và cách kết hợp chúng vào bài toán phân cụm dữ liệu
2.1 Giải thuật di truyền
Giải thuật di truyền (Genetic Algorithm – GA), do John Holland (1975)
và Goldberg (1989) đề xuất và phát triển Ý tưởng của giải thuật di truyền là
mô phỏng theo cơ chế của quá trình tiến hóa trong tự nhiên Từ tập các lời giải ban đầu, thông qua nhiều bước tiến hóa để hình thành các tập mới với những lời giải tốt hơn, cuối cùng sẽ tìm được lời giải gần tối ưu nhất
GA sử dụng các thuật ngữ lấy từ di truyền học:
- Một tập hợp các lời giải được gọi là một Lớp hay Quần thể (Population)
- Mỗi lời giải được biểu diễn bởi một Nhiễm sắc thể (NST) hay Cá thể (Chromosome)
- NST được tạo thành từ các Gen
Một quá trình tiến hóa được thực hiện trên một quần thể tương đương với sự tìm kiếm trên không gian các lời giải có thể của bài toán Quá trình tìm kiếm này luôn đòi hỏi sự cân bằng giữa hai mục tiêu: khai thác lời giải tốt
Trang 26nhất và xem xét toàn bộ không gian tìm kiếm GA thực hiện tìm kiếm theo
nhiều hướng bằng cách duy trì tập hợp các lời giải có thể và khuyến khích sự hình thành và trao đổi thông tin giữa các hướng Tập lời giải phải trải qua nhiều bước tiến hoá, tại mỗi thế hệ, một tập mới các cá thể được tạo ra có chứa các phần của những cá thể thích nghi nhất trong thế hệ cũ Đồng thời giải thuật di truyền khai thác một cách có hiệu quả thông tin trước đó để suy xét trên điểm tìm kiếm mới với mong muốn có được sự cải thiện qua từng thế
hệ
2.1.1 Sơ đồ thực hiện giải thuật di truyền
1 Khởi tạo một quần thể ban đầu (các đáp án ban đầu của bài toán)
2 Xác định giá trị hàm mục tiêu (fitness) cho mỗi cá thể trong quần thể
3 Tạo ra quần thể mới bằng cách lai ghép chéo (crossover) từ các cá thể hiện tại có chọn lọc (selection), đồng thời tạo ra các đột biến (mutation)
trong quần thể mới theo một xác suất nhất định
4 Các cá thể trong quần thể mới sinh ra được thay thể cho các cá thể trong quần thể cũ
5 Nếu điều kiện dừng thỏa thì giải thuật dừng lại và trả về cá thể tốt nhất cùng với giá trị hàm mục tiêu của nó, nếu không thì quay lại bước 2
Trang 27Chọn lọc Lai ghép Đột biến
Thỏa điều kiện dừng Kết quả
Kết thúc
Không Thỏa
Tạo quần thể mới
Trang 28x 2 t, ,x n t} bằng cách chọn lựa các NST thích nghi hơn từ P(t-1)
Mỗi NST x i t được đánh giá để xác định độ thích nghi của nó và một
số thành viên của P(t) lại được tái sản xuất nhờ các toán tử Lai ghép
mà có những cách biểu diễn khác nhau sao cho phù hợp, thuận lợi khi giải toán Trong đó có hai cách biểu diễn thông dụng nhất là biểu diễn nhị phân và biểu diễn bằng giá trị
- Biểu diễn nhị phân
Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1, ý nghĩa của các bit này phụ thuộc vào từng tình huống cụ thể Đây là cách biểu diễn đơn giải nhất và là cách thông dụng nhất trong các cách biểu diễn
Ví dụ trong bài toán cái túi: có n đồ vật với trọng lượng và giá trị
được cho trước và một cái túi có trọng lượng đã biết Hãy chọn ra các đồ vật để cho vào túi sao cho tổng giá trị các đồ vật trong túi là lớn nhất?
Trang 29Ở đây, đồ vật được đánh số từ 1 đến n, mỗi cá thể được biểu diễn bằng một xâu nhị phân độ dài n Trong đó, bit thứ i bằng 1 có nghĩa là đồ vật thứ i được cho vào túi, bằng 0 thì bỏ lại
- Biểu diễn sử dụng hoán vị
Mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó
Chẳng hạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch:
+ Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ
trình đi qua tất cả các thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗi thành phố chỉ đi qua một lần
+ Kí hiệu các thành phố là T 1 , T 2 , , T n mỗi cá thể - sự mã hóa của
lời giải - sẽ là một danh sách hoán vị của T 1 , T 2 , , T n biểu diễn lộ
trình mà người thương gia đã đi qua Thí dụ T 8 T 5 T 9 T 3 sẽ là ký
hiệu của hành trình từ T 8 T 5 T 9 T 3
Như vậy mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìm kiếm và qua đó thể hiện được cách trả lời có thể có của bài toán Sau này mỗi chuỗi NST sẽ được giải mã lại để trả về các thông số ban đầu của bài toán
- Biểu diễn bằng giá trị
Biểu diễn giá trị trực tiếp có thể được dùng trong các bài toán có chứa những giá trị phức tạp, chẳng hạn như số thực Nếu dùng biểu diễn nhị phân cho loại bài toán này thì rất phức tạp Trong mã hóa giá trị, mọi NST là một chuỗi chứa những giá trị nào đó Những giá trị này có thể có dạng bất kỳ liên quan đến bài toán, từ số nguyên, số thực, ký tự cho đến các đối tượng phức tạp hơn Một ví dụ cho cách mã hóa này là bài toán tìm trọng số mạng nơ ron
Trang 30- Biểu diễn theo cây
Mã hóa theo cây được dùng chủ yếu cho các chương trình (hoặc biểu thức) tiến hóa, cho lập trình Gen Trong mã hóa theo cây mọi NST là một cây chứa các đối tượng chẳng hạn như hàm hoặc lệnh trong một ngôn ngữ lập trình nào đó
Ví dụ: bài toán tìm hàm từ những giá trị cho trước Cho trước một số đầu vào và đầu ra Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào
Mã hóa: NST là các hàm được biểu diễn bằng cây
Sau khi đã biểu diễn được các cá thể cho bài toán rồi thì có thể bắt tay ngay vào việc thực hiện giải thuật di truyền theo sơ đồ đã có trong phần trước Bước đầu tiên là cần có một quần thể ban đầu Nó có thể có được bằng cách chọn ngẫu nhiên các cá thể hoặc có thể dùng chiến thuật lựa chọn thông qua hàm mục tiêu sẽ được trình bày ngay sau đây
2.1.2.2 Hàm mục tiêu (Fitness)
Một hàm mục tiêu (fitness) sẽ lấy một chuỗi NST như là đầu vào và trả
về giá trị tượng trưng cho chuỗi NST đó để đánh giá trên vấn đề cần giải quyết
Hàm mục tiêu có vai trò tương tự như là môi trường sống trong sự tiến hóa của tự nhiên Vấn đề tương tác giữa một cá thể với môi trường sống được thể hiện qua giá trị của hàm mục tiêu trong mỗi một cá thể
Giá trị hàm mục tiêu là Maximum hay Minimum tùy theo bài toán sẽ quyết định xác suất của mỗi chuỗi có thể tham gia vào các toán tử di truyền
2.1.2.3 Toán tử tái tạo (Reproduction)
Là một quá trình mà trong đó các chuỗi được lựa chọn tùy thuộc vào giá
trị hàm mục tiêu Hàm mục tiêu f(i) được gán cho mỗi cá thể trong một quần
thể, và những cá thể nào có giá trị hàm mục tiêu cao sẽ đại diện cho những cá thể tốt, thích nghi và sẽ có xác suất chọn lọc lớn Toán tử này có thể được
Trang 31xem như là quá trình chọn lọc trong tự nhiên: các cá thể tốt, thích nghi với môi trường sẽ có cơ hội được sống sót nhiều hơn
Có nhiều cách để thực hiện toán tử này
- Chọn lọc dùng bánh xe Roulette
Đây được coi là phương pháp chọn lọc đơn giản nhất, ở đấy mỗi chuỗi
(cá thể) trong quần thể chiếm một khe trong vòng tròn Roulette có độ rộng tỷ
lệ với giá trị hàm mục tiêu của chuỗi Mỗi lần quay vòng tròn Roulette chúng
ta nhận được một chuỗi và coi như đó là cách lựa chọn chuỗi cho việc tái tạo
Các bước thực hiện:
+ Tính tổng các giá trị mục tiêu của các cá thể trong một dân số và gán
kết quả này vào biến Total fitness
+ Ở thế hệ thứ n, lấy một số ngẫu nhiên giữa 0 và Total fitness
+ Trả về số cá thể đầu tiên của một dân số mới, dựa vào giá trị mục tiêu của nó
Ví dụ: Giả sử ta có một dân số ban đầu với 6 chuỗi NST, tổng giá trị của hàm mục tiêu là 50 như thể hiện trong bảng 2.1
STT Chuỗi Hàm mục tiêu Tỷ lệ % Total
Trang 32Bánh xe trọng số được thể hiện trong hình như sau:
Số ngẫu nhiên 26 16 46 30 5 18
Bảng 2.2 Chuỗi nhiễm sắc thể
Ví dụ này chứng tỏ rằng các chuỗi nào có giá trị mục tiêu cao thì sẽ
có nhiều con cháu hơn trong thế hệ sau
- Chọn lọc Stochastic universal sampling
Thực hiện giống như phương pháp bánh xe Roulette, nhưng cách chọn các giá trị ngẫu nhiên như sau: giả sử cần chọn ra N cá thể, khi
đó khoảng cách giữa các lát cắt là 1/N Chúng ta chọn một số ngẫu
nhiên trong đoạn [0, 1/N] rồi từ đó xác định các lát cắt