Ứng dụng mạng Kohonen vào bài toán phân cụm dữ liệu môn học của HSSV trường Cao đẳng nghề LICOGI qua việc khảo sát, thống kê kết quả học các môn để đánh giá chất lượng đào tạo nghề của n
Trang 2ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi, không sao chép của ai do tôi tự nghiên cứu, đọc, dịch tài liệu, tổng hợp và thực hiện Nội dung
lý thuyết trong trong luận văn tôi có sử dụng một số tài liệu tham khảo như đã trình bày trong phần tài liệu tham khảo Các số liệu, chương trình phần mềm và những kết quả trong luận văn là trung thực và chưa được công bố trong bất kỳ một công trình nào khác
Thái Nguyên, tháng 9 năm 2013
Học viên thực hiện
Đỗ Thị Hồng
Trang 4Tôi cũng xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè những người
đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để tôi có thể hoàn thành tốt luận văn Tôi cũng xin gửi lời cảm ơn tới Ban giám hiệu trường Cao đẳng nghề LICOGI đã tạo điều kiện thuận lợi cho tôi tham gia khóa học và trong suốt quá trình hoàn thành luận văn
Một lần nữa, xin chân thành cảm ơn
Trang 5MỤC LỤC LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC i
DANH MỤC CÁC KÍ HIỆU, CHỮ CÁI VIẾT TẮT iv
DANH MỤC CÁC BẢNG v
DANH MỤC CÁC HÌNH vi
MỞ ĐẦU 1
CHƯƠNG 1 MẠNG NƠRON KOHONEN VÀ BÀI TOÁN PHÂN CỤM 2
1.1 Cấu trúc và mô hình mạng Nơron 2
1.1.1 Giới thiệu về mạng Nơron 2
1.1.2 Mô hình một Nơron sinh học 2
1.1.2.1 Cấu trúc một nơron sinh học 2
1.1.2.2 Hoạt động của nơron sinh học 3
1.1.3 Mô hình Nơron nhân tạo 4
1.1.3.1 Cấu trúc và mô hình của một nơron nhân tạo 4
1.1.3.2 Mô hình mạng Nơron nhân tạo 7
1.1.3.3 Các luật học 9
1.2 Mạng Kohonen và bài toán phân cụm 12
1.2.1 Giới thiệu về mạng nơron Kohonen (SOM - Self-Organizing Maps) 12
1.2.2 Bài toán phân cụm 13
1.2.2.1 Khái niệm 13
1.2.2.2 Mục đích của phân cụm dữ liệu 14
1.2.2.3 Ứng dụng của bài toán phân cụm 15
1.2.2.4 Các yêu cầu khi phân cụm 15
1.2.2.5 Các kiểu dữ liệu và các thuộc tính trong phân cụm 16
1.3 Các hướng tiếp cận của bài toán phân cụm 18
1.3.1 Phương pháp phân cụm phân cấp 18
1.3.2 Phương pháp phân cụm phân hoạch 19
Trang 61.3.3 Phương pháp phân cụm dựa trên mật độ 19
1.3.4 Phân cụm dữ liệu dựa trên lưới 19
1.3.5 Phân cụm dữ liệu dựa trên sự ràng buộc 20
CHƯƠNG 2 MỘT SỐ VẤN ĐỀ VỀ PHÂN CỤM DỮ LIỆU BẰNG MẠNG KOHONEN 22
2.1 Thuật toán phân cụm dữ liệu 22
2.2 Một số thuật toán cơ bản trong phân cụm dữ liệu 23
2.2.1 Thuật toán phân cụm phân cấp 23
2.2.2 Thuật toán phân cụm phân hoạch (Thuật toán K-means) 24
2.2.3 Thuật toán phân cụm dựa trên mật độ (Thuật toán DBSCAN) 26
2.2.4 Thuật toán phân cụm dựa trên lưới (Thuật toán STING) 28
2.2.5 Các thuật toán phân cụm dựa trên mô hình (Thuật toán EM) 29
2.3 Thuật toán phân cụm bằng mạng Kohonen 30
2.3.1 Mạng Kohonen là gì? 30
2.3.2 Cấu trúc mô hình mạng Kohonen 30
2.3.3 Thuật toán phân cụm bằng mạng Kohonen 31
2.4 Một số vấn đề phân cụm bằng mạng Kohonen 36
2.4.1 Khởi tạo mạng Kohonen (SOM) 36
2.4.2 Huấn luyện mạng Kohonen 37
2.4.3 Tỉ lệ học 38
2.4.4 Cập nhật lại trọng số 39
2.4.5 Xác định nơron chiến thắng 40
2.5 Kohonen (SOM) sử dụng trong phân cụm dữ liệu 40
2.5.1 SOM phân cụm với bản đồ một chiều 41
2.5.2 SOM phân cụm với bản đồ 2 chiều 41
2.5.3 Xác định ranh giới các cụm 42
2.5.4 Trực quan mạng 43
2.5.5 Số lượng nhóm khi phân cụm 44
Trang 7CHƯƠNG 3 ỨNG DỤNG MẠNG KOHONEN VÀO BÀI TOÁN PHÂN CỤM
DỮ LIỆU MÔN HỌC CỦA HSSV TRƯỜNG CAO ĐẲNG NGHỀ LICOGI QUA VIỆC KHẢO SÁT, THỐNG KÊ KẾT QUẢ HỌC CÁC MÔN ĐỂ ĐÁNH GIÁ CHẤT LƯỢNG ĐÀO TẠO NGHỀ CỦA NHÀ TRƯỜNG 45
3.1 Phát biểu bài toán 45 3.2 Khảo sát, đánh giá, thống kê tình hình học tập của học sinh sinh viên trường Cao đẳng nghề LICOGI 45 3.2.1 Thu thập dữ liệu 45 3.2.2 Phân tích dữ liệu 50 3.3 Thử nghiệm sử dụng mô hình mạng Kohonen để khảo sát, đánh giá, thống kê tình hình học tập của HSSV trường Cao đẳng nghề LICOGI 55 3.3.1 Các chức năng của chương trình 55 3.3.2 Giao diện chương trình 55 3.3.3 Kết quả và phân tích kết quả sau khi huấn luyện mô hình mạng
Kohonen 57
3.3.3.1 Kết quả phân cụm môn học, mô đun 57 3.3.3.2 Kết quả phân cụm học sinh theo kết quả thi kết thúc môn học, mô đun 64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68 TÀI LIỆU THAM KHẢO 69
Trang 8DANH MỤC CÁC KÍ HIỆU, CHỮ CÁI VIẾT TẮT
BMU(Best - Matching unit): Đơn vị phù hợp nhất
U-matrix (unified distance matrix): Ma trận thống nhất khoảng cách
EM (Expectation maximization): Thuật toán tối đa hóa
STING (STatistical INformation Grid ): Thuật toán thống kê thông tin lưới DBSCAN (Density Based Spatial : Phân cụm dữ liệu dựa trên không
Clustering of Applications with Noise) gian mật độ ứng với nhiễu
Trang 9DANH MỤC CÁC BẢNG Bảng 3.1 Dữ liệu thống kê phân cụm môn học, mô đun 52
Bảng 3.2 Dữ liệu thống kê phân cụm học sinh
theo điểm thi kết thúc môn học, mô đun 53
Bảng 3.3 Kết quả các cụm môn sau khi huấn luyện mạng Kohonen 58 Bảng 3.4 Kết quả các cụm học sinh sau khi huấn luyện mạng Kohonen 67
Trang 10DANH MỤC CÁC HÌNH
Hình 1.1 Cấu tạo mô hình nơron sinh học 3
Hình 1.2 Cấu trúc mô hình một nơron nhân tạo cơ bản 4
Hình 1.3 Đồ thị các dạng hàm chuyển 7
Hình 1.4 Mô hình mạng nơron 3 lớp 8
Hình 1.5 Cấu trúc huấn luyện mạng nơron 9
Hình 1.6 Học có giám sát 10
Hình 1.7 Học không có giám sát 10
Hình 1.8 Sơ đồ cấu trúc chung của quá trình học 11
Hình 1.9 Các cách phân cụm phân cấp 18
Hình 1.10 Cấu trúc phân cụm dựa trên lưới điểm 20
Hình 1.11 Cấu trúc phân cụm dựa trên sự ràng buộc 21
Hình 2.1 Các thiết lập để xác định ranh giới các cụm ban đầu 24
Hình 2.2 Tính toán trọng tâm của các cụm mới 25
Hình 2.3 Hình dạng các cụm được khám phá bởi thuật toán DBSCAN 27
Hình 2.4 Cấu trúc mạng Kohonen 31
Hình 2.5 Phần tử nơron chiến thắng BMU 31
Hình 2.6 Các vùng lân cận 32
Hình 2.7 U-Matrix biểu diễn cho SOM 34
Hình 2.8 Những bức tường trong Kohonen 35
Hình 2.9: Hàm tỉ lệ học theo thời gian 39
Hình 3.1 Kết quả phân cụm môn học, mô đun sử dụng phương pháp trực quan U-Matrix 57
Hình 3.2.Kết quả phân cụm sử dụng phương pháp trực quan các bản đồ thành phần 61
Hình 3.3 Kết quả phân cụm học sinh theo môn học, mô đun sử dụng phương pháp trực quan U-Matrix 65
Trang 11MỞ ĐẦU
Ngày nay, cùng với sự phát triển của mô hình dữ liệu, chúng ta ngày càng có nhiều kho dữ liệu với lượng dữ liệu rất lớn Để khai thác có hiệu quả những dữ liệu khổng lồ này, đòi hỏi chúng ta - những người sử dụng - phải biết khai thác và chọn lọc dữ liệu có ích cho mình Đó cũng chính là lý do mà Data Mining (DM) ra đời và
đã được áp dụng trong thực tế theo nhiều hướng quan trọng và một trong các hướng
đó là phân cụm dữ liệu (Data Clustering)
Thông tin giáo dục đào tạo của các trường hiện nay hầu hết được lưu trữ trong máy tính và chúng ta cần phải tìm ra những thông tin hữu ích từ cơ sở dữ liệu đó để
có các biện pháp phù hợp, cần thiết cho việc cải cách, nâng cao chất lượng giáo dục đào tạo thông qua việc khảo sát, đánh giá, thống kê, báo cáo
Luận văn với đề tài “Ứng dụng Mạng Kohonen cho khảo sát, đánh giá,
thống kê tình hình của trường Cao đẳng nghề” khảo sát lĩnh vực KPDL dùng
mạng nơron Luận văn tập trung vào tìm hiểu về mạng nơron Kohonen (SOM) và dùng thuật toán SOM để giải quyết bài toán phân cụm dữ liệu theo mô hình
mạng nơron
Nội dung luận văn gồm có 3 chương:
Chương I Mạng Kohonen và bài toán phân cụm
Chương II Một số vấn đề về phân cụm bằng Kohonen
Chương III Ứng dụng mạng Kohonen vào bài toán phân cụm dữ liệu môn học của HSSV trường Cao đẳng nghề LICOGI qua việc khảo sát, thống kê kết quả học các môn để đánh giá chất lượng đào tạo nghề của nhà trường
Do thời gian nghiên cứu và trình độ có hạn, luận văn không tránh khỏi hạn chế
và thiếu xót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy, cô giáo cũng như bạn bè và đồng nghiệp
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 9 năm 2013
Người viết luận văn
Đỗ Thị Hồng
Trang 12CHƯƠNG 1 MẠNG NƠRON KOHONEN VÀ BÀI TOÁN PHÂN CỤM
1.1 Cấu trúc và mô hình mạng Nơron
1.1.1 Giới thiệu về mạng Nơron
Trong những năm gần đây người ta thường nhắc đến “Trí tuệ nhân tạo” như là một phương thức mô phỏng trí thông minh của con người từ việc lưu trữ đến xử lý thông tin Và nó thực sự trở thành nền tảng cho việc xây dựng các thế hệ máy tính thông minh hiện đại Cùng với mục đích đó, nhưng dựa trên quan điểm hoàn toàn khác, một môn khoa học đã ra đời mang tên “Lý thuyết mạng Nơron”
Mạng Nơron nhân tạo là sự mô phỏng xử lý thông tin, được nghiên cứu ra từ
hệ thần kinh của sinh vật cũng như bộ não của con người Nó bao gồm số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ giải quyết rõ ràng Mạng nơron cũng giống như con người được học hỏi bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử dụng chúng trong những tình huống phù hợp Mạng Nơron nhân tạo áp dụng thành công trong nhiều lĩnh vực khác nhau như tài chính, ngân hàng, điện tử, kỹ thuật….và mới nhất là nghiên cứu ứng dụng trong lĩnh vực quản lý dự án xây dựng Ngoài ra, mạng Nơron nhân tạo là công cụ tốt nhất trong việc giải quyết các bài toán như phân lớp đối tượng, xấp xỉ hàm số, tối
ưu hóa, định hướng vectơr, phân cụm dữ liệu…Nó thay thế hiệu quả các công cụ tính toán truyền thống
1.1.2 Mô hình một Nơron sinh học
1.1.2.1 Cấu trúc một nơron sinh học
Theo các nghiên cứu sinh học về bộ não, hệ thống thần kinh của con người bao gồm khoảng 100 tỷ tế bào thần kinh, thường được gọi là nơron Mỗi tế bào thần kinh nơron bao gồm 03 thành phần:
- Thân nơron (gọi là Soma) với nhân bên trong là nơi tiếp nhận hay phát ra các xung động thần kinh
Trang 13- Một hệ thống mạng các dây thần kinh vào (gọi là Dendrites) truyền tín hiệu (dưới dạng xung điện) tới nhân nơron để xử lý Các dây thần kinh vào tạo thành một lưới dày đặc xung quanh thân nơron, chiếm diện tích khoảng 0,25mm2
, bên trong thân các dữ liệu đó được tổng hợp lại
- Đầu dây thần kinh (gọi là sợi trục Axon) phân nhánh dạng hình cây, có thể dài từ 1cm đến hàng mét Chúng nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bào của các nơron khác thông qua các khớp nối (gọi là Synapse) Thông thường mỗi nơron có thể có từ vài chục cho tới hàng trăm ngàn khớp nối để nối với các nơron khác Có hai loại khớp nối, khớp nối kích thích (excitatory) sẽ cho tín hiệu qua nó để tới nơron còn khớp nối ức chế (inhibitory) có tác dụng làm cản tín hiệu tới nơron Người ta ước tính mỗi nơron trong bộ não của con người có khoảng
104 khớp nối (hình 1.1)
Hình 1.1 Cấu tạo mô hình nơron sinh học
1.1.2.2 Hoạt động của nơron sinh học
Các tín hiệu đưa ra bởi một khớp nối và được nhận bởi các dây thần kinh vào
là kích thích điện tử Việc truyền tín hiệu như trên liên quan đến quá trình hóa học phức tạp mà trong đó các chất truyền đặc trưng được giải phóng từ phía gửi của nơi tiếp nối Điều này làm tăng hay giảm điện thế bên trong thân của noron nhận Nơron nhận tín hiệu sẽ kích hoạt nếu điện thế vượt ngưỡng nào đó Và một điện thế hoạt động với cường độ cùng thời gian tồn tài cố định được gửi ra ngoài thông qua đầu
Trang 14dây thần kinh tới phần dây thần kinh vào rồi tới chỗ khớp nối để đến nơron khác Sau khi kích hoạt, noron sẽ chờ trong một khoảng thời gian được gọi là chu kỳ cho đến khi nó có thể được kích hoạt lại
Có hai loại khớp nối là khớp nối kích thích và khớp nối ức chế Khớp nối kích thích sẽ cho tín hiệu qua nó để tới nơron, còn khớp nối ức chế có tác dụng làm cản tín hiệu của noron
Cấu trúc mạng noron luôn thay đổi và phát triển, các thay đổi có khuynh hướng chủ yếu là làm tăng hay giảm độ mạnh các mối liên kết thông qua các khớp nối Các khớp nối đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tập thì hoạt động của cácg khớp nối được tăng cường, tạo nên nhiều liên kết mạnh giữa các nơron Có thể nói rằng người nào học càng giỏi thì càng có nhiều khớp nối và các khớp ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các nơron càng nhiều, càng nhạy bén
1.1.3 Mô hình Nơron nhân tạo
1.1.3.1 Cấu trúc và mô hình của một nơron nhân tạo
Năm 1943, Warren MuCulloch và Walter Pitts đã đề xuất mô hình nơron nhân tạo đầu tiên thường được gọi là nơron M-P, nó còn được gọi là phần tử xử lý và được ký hiệu là PE (Processing Element)
Mô hình nơron nhân tạo cơ bản có n đầu vào x1, x2, , xn, và một đầu ra yi như sau:
Hình 1.2 Cấu trúc mô hình một nơron nhân tạo cơ bản
.
Trang 15Một nơron thực hiện nhiệm vụ rất đơn giản là: nó nhận tín hiệu từ các đơn vị phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác Trong đó:
- Tập các đầu vào, được ký hiệu là xi , là các tín hiệu vào của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector n chiều
- Tập các liên kết (các trọng số) tương ứng với các đầu vào, những trọng số này tương ứng với các Synapse trong noron sinh học Mỗi liên kết được thể hiện bởi một trọng số (thường được gọi là trọng số liên kết) Trọng số liên kết giữa tín hiệu vào thứ j cho nơron i thường được ký hiệu là wij Thông thường các trọng số này được khởi tạo ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng Nếu w > 0 thì nơron đang ở trạng thái kích thích, ngược lại w <
0 thì nơron đang ở trạng thái kiềm chế
- Độ lệch hay ngưỡng, được ký hiệu là b, là tham số điều chỉnh vô hướng của nơron Thường được đưa vào như là một thành phần của hàm chuyển
Ta thấy w và b đều là các tham số điều chỉnh vô hướng của nơron Ý tưởng cơ bản của mạng nơron là điều chỉnh các tham số này để mạng đạt được mục đích mong muốn
- Hàm tổng, được ký hiệu là ∑ , thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó
- Hàm kích hoạt hay còn gọi là hàm chuyển, được ký hiệu là f, hàm này dùng
để giới hạn phạm vi đầu ra của mỗi nơron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1,1] Các hàm chuyển rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm chuyển tùy thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng
- Đầu ra, được ký hiệu là y: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ
có tối đa một đầu ra
Tổng quát ta có với vector nhập x = (x1, x2,…xn), trọng số
Trang 16w = (w11, w12,…,w1n), ngưỡng b và hàm chuyển f Tổng đối số và ngưỡng tạo
ở đầu ra m là:
m = w11*x1 + w12*x2+…+w1n*x+b (1.1)
Vậy véctơ đầu ra có giá trị: yi = f(w*x+b) (1.3)
Hàm chuyển hay còn gọi là hàm phi tuyến, chuyển đổi một tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra Hàm chuyển này đảm bảo tính chất phi tuyến cho tính toán mạng nơron Nó được xem như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn
Một số dạng hàm chuyển thường được sử dụng:
Hàm bước nhảy
00
01
)(
x khi
x khi x
Hàm giới hạn chặt (hay còn gọi là hàm bước)
01
01
)sgn(
)(
x khi
x khi x
x
Hàm bậc thang
0 0
1 0
1 1
) sgn(
) (
x khi
x khi
x
x khi x
f
1
1)
Hàm ngưỡng hai cực
11
2)
e x
Trang 17* Đồ thị các dạng hàm chuyển được biểu diễn như sau:
Hình 1.3 Đồ thị các dạng hàm chuyển
1.1.3.2 Mô hình mạng Nơron nhân tạo
Mạng nơron gồm một số lượng lớn các đơn vị xử lý kết nối với nhau hoạt động song song và cấu hình nên kiểu kiến trúc của hệ thống Do mô phỏng cách thức hoạt động của nơron thần kinh, nên mạng nơron có khả năng học, tái tạo, tổng quát hóa từ dữ liệu đã được huấn luyện
Đơn vị tạo nên mạng nơron là các nút Các nút này sẽ nằm ở các lớp (Layer) khác nhau Mỗi lớp có một nhiệm vụ riêng:
- Lớp vào (Input layer): nhận dữ liệu đầu vào, các nút thuộc lớp vào gọi là nút vào
- Lớp ra (Output layer): kết xuất dữ liệu, các nút thuộc lớp ra gọi là nút ra
- Lớp ẩn (Hidden layer): lớp này có thể có hoặc không, tùy loại mạng Số lượng lớp ẩn của một nơron cũng tùy theo người thiết kế mạng Các nút thuộc lớp
ẩn gọi là nút ẩn
Trang 18Khi mạng được huấn luyện xong, thì người ta có thể dùng mạng cho các mục đích của mình Nghĩa là bây giờ, đưa dữ liệu các biến độc lập vào mạng sẽ cho giá trị các biến phụ thuộc cần xác định
x2
x3
y2
y3
Trang 191.1.3.3 Các luật học
Thông thường, mạng nơron được điều chỉnh hoặc được huấn luyện để hướng các đầu vào riêng biệt đến đích ở đầu ra Cấu trúc huấn luyện mạng được chỉ ra ở hình dưới Ở đây, hàm trọng số của mạng được điều chỉnh trên cơ sở so sánh đầu ra với đích mong muốn (taget), cho tới khi đầu ra của mạng phù hợp với đích Những cặp vào/đích (input/taget) được dùng để giám sát cho sự huấn luyện mạng
Hình 1.5 Cấu trúc huấn luyện mạng nơron
Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và giá trị ra tương ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá trị mong muốn Bình thường, nó sẽ tồn tại một sai số vì giá trị mong muốn không hoàn toàn phù hợp với giá trị thực Sau mỗi lần chạy, ta có tổng bình phương của tất cả các sai số Sai số này được sử dụng để xác định các hàm trọng số mới
Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơn tương ứng với đặc tính mong muốn Từng cặp giá trị vào/ra phải được kiểm tra và trọng số được điều chỉnh một vài lần Sự thay đổi các hàm trọng số của mạng sẽ được dừng lại, nếu tổng các bình phương sai số nhỏ hơn một giá trị đặt trước, hoặc
đã chạy đủ một số lần chạy xác định (trong trường hợp này, mạng có thể không thoả mãn yêu cầu đặt ra do sai lệch còn cao) Có hai kiểu học:
- Học tham số: là các tham số về trọng số cập nhật kết nối giữa các nơron
- Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng nơron gồm số lượng nút và các loại liên kết
Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng nơron Nhiệm vụ của việc học tham số là tìm ra được ma trận chính xác mong muốn từ ma
Trang 20trận giả thiết ban đầu (với cấu trúc của mạng nơron có sẵn) Để làm được điều này thì mạng nơron phải sử dụng các trọng số điều chỉnh, với nhiều phương pháp học khác nhau để có thể tính toán gần đúng ma trận W cần tìm đặc trưng cho mạng Sau đây là 3 phương pháp học:
Học có giám sát
Học có giám sát: là quá trình học có tín hiệu chỉ đạo bên ngoài d (Hình 1.6) Trong học có giám sát, thì tại mỗi thời điểm khi đầu vào được cung cấp tới mạng nơron, phản ứng đầu ra mong muốn d tương ứng của hệ thống được đưa ra Ở hình (1.6), khi mỗi đầu vào x(k) được đặt vào mạng, đầu ra mong muốn tương ứng d(k)cũng được cung cấp tới mạng Hiệu giữa đầu ra thực y(k)
và đầu ra mong muốn d(k) được đo trong máy phát tín hiệu lỗi Máy này sẽ tạo ra tín hiệu lỗi cho mạng để hiệu chỉnh các trọng số của mạng, và với các hiệu chỉnh này thì đầu ra thực sẽ tiến sát với đầu ra mong muốn
Hình 1.6 Học có giám sát Học không có giám sát
Hình 1.7 Học không có giám sát
Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là không
có tín hiệu d cung cấp tới mạch phản hồi Điều này cho thấy, ta sẽ không biết đầu ra đạt giá trị gì Với loại này, thì các nơron tự xoay xở với các dữ liệu mẫu mà nó có được, chứ không có “thầy” gợi ý cần luyện theo hướng nào Mạng phải tự khám phá mẫu, đặc tính, sự tương quan hay loại đầu vào Trong khi khám phá những đặc tính
Trang 21này, tham số của mạng sẽ bị thay đổi Quá trình này được gọi là tự tổ chức Một ví
dụ điển hình là quá trình phân loại đối tượng không có thầy, những lớp thích hợp được hình thành bằng cách khám phá sự tương tự và không tương tự trong số các đối tượng
Học củng cố
Tín hiệu chủ đạo d có thể lấy từ môi trường bên ngoài, nhưng tín hiệu này không được đầy đủ, mà chỉ có một vài bit đại diện có tính chất kiểm tra quá trình tốt hay xấu Học củng cố cũng là một dạng của học có giám sát, bởi vì mạng vẫn nhận một số tín hiệu từ bên ngoài Nhưng tín hiệu phản hồi chỉ mang tính chất đánh giá hơn là mạng tính chất chỉ dẫn Nó cho biết mức độ tốt hay xấu của một đầu ra đặc biệt Tín hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín hiệu đánh giá
để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng để điều chỉnh các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn
Hình (1.8) mô tả cấu trúc chung của quá trình học của ba phương pháp học
đã nêu ở trên Trong tín hiệu vào xj (j = 1,2, ,m), có thể được lấy từ đầu ra của các nơron khác hoặc có thể được lấy ra từ bên ngoài Trọng số của nơron thứ i được thay đổi tùy theo tín hiệu ở đầu vào mà nó thu nhận giá trị đầu ra của nó
Dạng tổng quát của luật học trọng số của mạng nơron cho biết số gia của vector wi là w i tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t)
Trang 22Từ hình (1.8) ta thấy, vector trọng số wi = [wi1, wi2, , wim]T có số gia tỷ lệ với tín hiệu vào x và tín hiệu học r Vector trọng số ở thời điểm (t+1) được tính như sau:
wi(t+1) = wi(t) + fr(wi(t),x(t),d(t)).x(t) (1.11)
Phương trình liên quan đến sự biến đổi trọng số trong mạng nơron rời rạc, và tương ứng với sự thay đổi trọng số trong mạng nơron liên tục theo biểu thức sau:
) ( r x t dt
dw i
Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giám sát hay không có giám sát, hoặc học củng cố là tín hiệu học r Như vậy, đối với tín hiệu học r thì nó làm thế nào để thay đổi hoặc cập nhật trọng số trong mạng nơron
Mạng nơron nhân tạo có các tính chất sau:
1.2 Mạng Kohonen và bài toán phân cụm
1.2.1 Giới thiệu về mạng nơron Kohonen (SOM - Self-Organizing Maps)
Mạng Kohonen (hay còn được gọi là Self Organizing Maps viết tắt là SOMs)
là một kỹ thuật trực quan dữ liệu được giáo sư, tiến sĩ Teuvo Kohonen phát triển vào những năm 80 Giáo sư Kohonen được biết đến nhiều trong các lĩnh vực về mạng nơron, bao gồm các thuật toán phép học lượng tử véctơ, các lý thuyết cơ bản
về phân bố và ánh xạ tối ưu…Ông đã xuất bản một số sách và viết khoảng 200 bài báo Đóng góp nổi tiếng nhất của ông là SOM (Self Organizing Maps) hay còn gọi
là bản đồ tự tổ chức hay bản đồ Kohonen
SOM là một mô hình mạng nơron nhân tạo được huấn luyện sử thuật học cạnh tranh, “không giám sát” để biểu diễn dữ liệu với số chiều thường là 2, nó có khả năng ánh xạ dữ liệu đầu vào (có số chiều lớn) lên một mảng có số chiều thấp hơn,
Trang 23thông thường là hai chiều Đây là một phép chiếu phi tuyến tính đem lại một ”bản
đồ đặc trưng” hai chiều có thể được sử dụng trong việc phát hiện và phân tích những đặc trưng trong không gian đầu vào
SOM là một công cụ thích hợp trong khai phá dữ liệu Nó được ứng dụng nhiều trong các bài toán như nhận dạng tiếng nói (Kohonen, 1989), máy ảo (Oja, 1992), tối ưu tổ hợp (Fort, 1988), phân lớp ảnh (Kohonen, 1984) Mạng Kohonen được thiết kế chủ yếu để giảm số chiều dữ liệu và trực quan thông tin Tuy nhiên có thể kết hợp Kohonen với các kỹ thuật xác định cụm khác để phân cụm dữ liệu
1.2.2 Bài toán phân cụm
1.2.2.1 Khái niệm
Phân cụm là quá trình nhóm một tập các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng
Phân cụm là một kỹ thuật trong khai phá dữ liệu nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn quan trọng trong tập dữ liệu lớn từ đó cung cấp thông tin hữu ích cho việc ra quyết định
Quá trình phân cụm là quá trình tìm ra các đối tượng trong cơ sở dữ liệu một cách tự động Phân cụm là một ví dụ của phương pháp học không có thầy Không giống như phân lớp, phân cụm không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm là một cách học bằng quan sát, trong khi phân lớp là học bằng
Đã có rất nhiều thuật toán được phát triển cho bài toán phân cụm trong cơ sở
dữ liệu lớn và được áp dụng vào nhiều lĩnh vực như xử lý ảnh, nhận dạng, đánh giá kinh doanh Sự đa dạng của thuật toán phân cụm là do sự khác nhau của các ứng dụng thực tế dẫn tới những yêu cầu khác nhau và đòi hỏi các thuật toán phân cụm khác nhau
Một trong những câu hỏi lớn đặt ra cho bài toán phân cụm là độ đo tương
đồng không gian giữa các đối tượng dữ liệu (spantal similarity) Trong dữ liệu
không gian thì độ đo tương đồng được xem như sự quan hệ về vị trí không gian
Trang 24giữa các đối tượng dữ liệu Nói cách khác thì hai đối tượng dữ liệu được gọi là tương đồng nếu "khoảng cách không gian" giữa chúng là nhỏ
Một trong những phương pháp độ đo tương đồng giữa hai đối tượng là bằng
nghịch đảo của hàm không tương đồng (dissimilarity function) Hàm không tương
đồng, hàm dựa vào những thuộc tính trong không gian của đối tượng như : tọa độ của các đối tượng, độ cao của đối tượng Trong nhiều trường hợp thì hàm không tương đồng được xem như hàm khoảng cách không gian giữa các đối tượng như hàm khoảng cách Euclid, hàm khoảng cách Manhattan, hàm khoảng cách Minkowski
Bài toán phân cụm thường được hiểu là một bài toán không giám sát và được phát biểu như sau: Cho tập N đối tượng dữ liệu X = {x1, x2,…,xn}(bài toán chỉ xét các đối tượng trong không gian số học n chiều; xi Rn), ta cần chia X thành các cụm đôi một không giao nhau: X =
i
Yc
k
i 1
sao cho các đối tượng trong cùng một cụm
Ci thì tương tự nhau và các đối tượng trong các cụm khác nhau thì khác nhau hơn theo một cách nhìn nào đó Số lượng k các cụm có thể cho trước hoặc xác định nhờ phương pháp phân cụm Để thực hiện phân cụm, ta cần xác định được mức độ tương tự giữa các đối tượng, tiêu chuẩn để phận cụm, trên cơ sở đó xây dựng mô hình và các thuật toán phân cụm theo nhiều cách tiếp cận Mỗi cách tiếp cận cho ta kết quả phân cụm với ý nghĩa sử dụng khác nhau
Bài toán phân cụm là quá trình nhóm một cơ sở dữ liệu thành những nhóm đối tượng dữ liệu phục vụ cho mục đích cụ thể của từng ứng dụng thực tế Không có một thuật toán phân cụm nào là tốt nhất và thích hợp cho tất cả mọi ứng dụng mà mỗi ứng dụng khác nhau thì người sử dụng phải lựa chọn một thuật toán phân cụm
cụ thể phù hợp với ứng dụng đó Kết quả đánh giá cho từng thuật toán cũng phụ thuộc vào yêu cầu của từng ứng dụng
1.2.2.2 Mục đích của phân cụm dữ liệu
Mục đích của phân cụm dữ liệu là xác định được bản chất bên trong nhóm của
dữ liệu chưa có nhãn Nó có thể không có tiêu chuẩn tuyệt đối "tốt" mà có thể
Trang 25không phụ thuộc vào kết quả phân nhóm Vì vậy, nó đòi hỏi người sử dụng phải cung cấp tiêu chuẩn phân cụm một cách rõ ràng theo cách mà kết quả phân cụm sẽ đáp ứng yêu cầu
Hiện nay chưa có một phương pháp phân cụm nào có thể giải quyết trọn vẹn cách biểu diễn cấu trúc dữ liệu, và 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
1.2.2.3 Ứng dụng của bài toán phân cụm
Phân cụm dữ liệu đã và đang được ứng dụng trong nhiều lĩnh vực khác nhau như:
Thương mại : Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn;
Sinh học: Phận nhóm động vật và thực vật dựa vào các thuộc tính của chúng; Thư viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…;
Bảo hiểm, tài chính: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch
vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds);
WWW: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog);…
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 những vùng nguy hiểm
1.2.2.4 Các yêu cầu khi phân cụm
Phân cụm là một thách thức trong lĩnh vực nghiên cứu ở chỗ những ứng dụng tiềm năng của chúng được đưa ra ngay chính những yêu cầu đặc biệt của chúng Sau đây là những yêu cầu cơ bản của phân cụm trong KPDL:
- Thuật toán phải hiệu quả và thời gian chạy phải là tăng tuyến tính theo kích thước của dữ liệu
Trang 26- Thuật toán phải xử lý và áp dụng được với cơ sở dữ liệu nhiều nhiễu, phức tạp bao gồm cả dữ liệu không gian, phi không gian, dữ liệu số, phi số, kiểu nhị phân, dữ liệu định danh, hạng mục, thích nghi với kiểu dữ liệu hỗn hợp
- Thuật toán phải có khả năng xác định được với những cụm với hình dáng bất
kỳ bao gồm cả những cụm có hình dáng lồng nhau, cụm có hình dạng lõm, hình cầu, hình que…
- Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào Do các giá trị đầu vào thường thường ảnh hưởng rất lớn đến thuật toán phân cụm và rất phức tạp
để xác định các giá trị vào thích hợp với CSDL lớn
- Thuật toán phải thực hiện với mọi thứ tự đầu vào dữ liệu Nói cách khác kết quả của thuật toán nên độc lập với dữ liệu đầu vào
- Thuật toán không đòi hỏi những tri thức về CSDL từ người dùng
- Thuật toán phải làm việc được với CSDL chứa nhiều lớp đối tượng dữ liệu phức tạp và có tính chất khác nhau
- Thuật toán phải thích nghi với dữ liệu đa chiều: Thuật toán có khả năng áp dụng hiệu quả cho dữ liệu có số chiều khác nhau
- Thuật toán phải dễ hiểu, dễ cài đặt và khả thi: Người sử dụng có thể chờ đợi các kết quả phân cụm dễ hiểu, dễ lý giải và dễ sử dụng Nghĩa là, sự phân cụm có thể cần được giải thích ý nghĩa và ứng dụng rõ ràng Việc nghiên cứu để một ứng dụng đạt được mục tiêu rất quan trọng có thể gây ảnh hưởng tới sự lựa chọn các phương pháp phân cụm
1.2.2.5 Các kiểu dữ liệu và các thuộc tính trong phân cụm
Cho một CSDL D chứa n đối tượng trong không gian k chiều; x, y, z là các đối tượng thuộc D: x = (x1,x2,…,xk); y = (y1,y2,…,yk); z = (z1,z2,…,zk)
Trong đó xi, yi, zi với i = 1….k là các đặc trưng hoặc các đặc tính tương ứng của các đối tượng x, y, z như vậy sẽ có các kiểu dữ liệu như sau:
* Dữ liệu dựa trên kích thước miền:
Thuộc tính liên tục (Continuouns Attribute): Nếu miền giá trị của nó là vô hạn
Trang 27không đếm được có nghĩa là giữa hai giá trị tồn tại vô số giá trị khác nhau (ví dụ: các thuộc tính màu, nhiêt độ hoặc cường độ âm thanh….)
Thuộc tính rời rạc (Discrette Attribute): Nếu miền giá trị của nó là tập hữu
hạn, đếm được (ví dụ: các thuộc tính số…) trường hợp đặc biệt của thuộc tính rời rạc là thuộc tính thập phân mà miền giá trị chỉ có hai giá trị (ví dụ Yes/No, Nam/Nữ, True/False, On/Off…)
* Dữ liệu dựa trên hệ đo
Thuộc tính định danh (Nominal Scale): Là dạng thuộc tính khái quát hóa của
thuộc tính nhị phân, trong đó miền giá trị là rời rạc không phân biệt thứ tự và có nhiều hơn hai phần tử, nghĩa là nếu x và y là đối tượng thuộc tính thì chỉ có thể xác định là x ≠ y hoặc x = y
Thuộc tính có thứ tự (Ordinal Scale): Là thuộc tính định danh có thêm thứ
tự, nhưng chúng không được định lượng Nếu x và y là hai thuộc tính thứ tự thì có thể xác định là x ≠ y hoặc x = y hoặc x > y hoặc x < y
Thuộc tính khoảng cách (Interval Scale): Để đo các giá trị theo xấp xỉ tuyến
tính Với thuộc tính khoảng cách, chúng ta có thể xác định một thuộc tính là đứng trước hoặc sau thuộc tính khác với một khoảng bao nhiêu Nếu xi > yi thì ta nói x cách y một khoảng xi - yi tương ứng với thuộc tính thứ i Sau khi chuẩn hóa, độ đo phi tương tự của hai đối tượng dữ liệu x, y được xác định bằng các metric khoảng cách như sau:
trong đó q là số tự nhiên dương
Khoảng cách Euclide: đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q = 2
Khoảng cách Manhattan: đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q = 1
Khoảng cách cực đại: đây là trường hợp đặc biệt của khoảng cách Minskowski trong trường hợp q
Trang 28Thuộc tính tỷ lệ (Ratio Scale): Là thuộc tính khoảng nhưng được xác định
một cách tương đối so với điểm mốc, ví dụ như thuộc tính chiều cao hoặc cân nặng lấy điểm 0 làm mốc Có nhiều cách khác nhau để tính độ tương tự giữa các thuộc tính tỷ lệ Có thể sử dụng công thức tính logarit cho mỗi thuộc tính xi
1.3 Các hướng tiếp cận của bài toán phân cụm
Có nhiều hướng tiếp cận và các ứng dụng trong thực tế nhưng tất cả đều hướng tới hai mục tiêu chung đó là chất lượng của các cụm khám phá được và tốc
độ thực hiện các thuật toán Các kỹ thuật đó có thể phân loại theo các cách tiếp cận chính sau :
1.3.1 Phương pháp phân cụm phân cấp
Cấu trúc phân cụm phân cấp xây dựng trên một hệ thống phân cấp cụm Các cụm chứa các nút cụm con Các cụm ngang hàng được phân chia thành các điểm cùng cụm cha Cách tiếp cận này cho phép tìm hiểu chi tiết dữ liệu ở các cấp độ khác nhau Phương pháp phân cụm được chia làm hai loại là phân cụm phân cấp hội
tụ Bottom - Up và phân cụm phân cấp chia nhóm Top-Down
Hình 1.9 Các cách phân cụm phân cấp
Phân cụm phân cấp hội tụ khởi đầu với một điểm cụm và kết hợp đệ quy với hai hoặc nhiều cụm thích hợp nhất Phân cụm phân cấp chia nhóm đầu tiên là một cụm chia tách bắt đầu với một cụm của tất cả các điểm dữ liệu và đệ quy chia tách các cụm thích hợp nhất Quá trình này tiếp tục cho đến khi đạt được một tiêu chí
Trang 29dừng lại được Phân cụm phân cấp dựa trên kết quả thống kê kết quả liên kết trong cụm
1.3.2 Phương pháp phân cụm phân hoạch
Phân cụm phân hoạch phân chia dữ liệu thành các tập số Kiểm tra tất cả các
hệ thống tập hợp con có thể là tính toán không khả thi Di chuyển lặp đi lặp lại các điểm trong cụm Sau khi các cụm được xây dựng phương pháp phân cụm phân hoạch sẽ xem xét lại các cụm để cải thiện các cụm tốt hơn Với dữ liệu thích hợp sẽ đem lại hiệu quả cao trong phân cụm
1.3.3 Phương pháp phân cụm dựa trên mật độ
Một tập mở trong không gian Euclide có thể được chia thành một tập hợp các thành phần kết nối Việc thực hiện ý tưởng này cho phân vùng của một tập hợp hữu hạn các điểm đòi hỏi phải có khái niệm về kết nối, mật độ, ranh giới Chúng liên quan đến điểm lân cận gần nhất Một cụm quy định như là một thành phần kết nối dày đặc, phát triển ở bất kỳ hướng nào mà mật độ cao nhất Dựa trên các thuật toán mật độ có khả năng phát hiện các cụm với hình dạng bất kỳ điều này giúp loại bỏ các giá trị ngoại lai hoặc nhiễu
1.3.4 Phân cụm dữ liệu dựa trên lưới
Phương pháp phân cụm dựa trên lưới đã được sử dụng trong một số nhiệm vụ khai thác dữ liệu của cơ sở dữ liệu lớn Trong phân cụm dữ liệu dựa trên lưới, không gian đặc trưng được chia thành một số hữu hạn các ô hình chữ nhật hình thành lên lưới Trên cấu trúc của lưới quá trình phân cụm được thực hiện Quá trình
đa phân tích thay đổi kích thước của ô hình chữ nhật có thể hình thành lên lưới Trong không gian đa chiều d, lưới có dạng một hình lập phương với kích thước d tương ứng với các ô Trong cấu trúc lưới phân cấp kích thước ô có thể được giảm để đạt được một cấu trúc ô chính xác hơn Cấu trúc phân cấp có thể được chia thành nhiều cấp độ giải quyết Mỗi ô ở mức độ cao hơn k sẽ được phân chia thành các ô
có cấp độ thấp hơn k+1 Các ô ở mức độ thấp k+1 sẽ được hình thành bởi việc chia tách các ô k vào các ô nhỏ hơn
Trang 30Hình 1.10 Cấu trúc phân cụm dựa trên lưới điểm
1.3.5 Phân cụm dữ liệu dựa trên sự ràng buộc
Trong phân cụm dữ liệu để có những hiểu biết về những trường hợp nên hay không nên gom cụm lại với nhau người ta có thể áp dụng phương pháp phân cụm dựa trên những ràng buộc Phân cụm ràng buộc dựa trên sự thay đổi của thuật toán K-mean dựa vào tính toán những liên kết bắt buộc giữa hai điểm trong cùng một cụm và hạn chế những liên kết không thể thực hiện được giữa hai điểm trong một cụm Những yêu cầu đó là bắt buộc trong khi phân cụm dữ liệu Khi các ràng buộc không được đáp ứng các liên kết ràng buộc được gán bằng 0 Phân cụm ràng buộc dựa trên các liên kết liên quan nhưng sự khác biệt đến từ phân cụm bán giám sát khi
có một số nhãn được biết trước
Hình 1.11 Cấu trúc phân cụm dựa trên sự ràng buộc
Trang 31Hiện nay, các phương pháp phân cụm trên đã và đang được phát triển [5] và
áp dụng nhiều trong các lĩnh vực khác nhau và đã có một số nhánh nghiên cứu được phát triển trên cơ sở của các phương pháp đó như: Phân cụm thống kê, phân cụm khái niệm, phân cụm mờ
Phân cụm thống kê : Dựa trên các khái niệm phân tích hệ thống, nhánh nghiên cứu này sử dụng các độ đo tương tự để phân hoạch các đối tượng, chúng chỉ áp dụng cho các dữ liệu có thuộc tính số
Phân cụm khái niệm : Kỹ thuật này được phát triển áp dụng cho dữ liệu hạng mục, chúng phân cụm các đối tượng theo các khái niệm mà chúng sử lý
Phân cụm mờ : Sử dụng kỹ thuật mờ để PCDL Các thuật toán thuộc loại này chỉ ra lược đồ phân cụm thích hợp với tất cả các hoạt động đời số hàng ngày, chúng chỉ sử lý các dữ liệu không chắc chắn
Phân cụm sử dụng mạng Kohonen SOM (Self-Organizing Maps): Loại phân cụm này dựa trên khái niệm của các mạng nơron Mạng SOM có tầng nơron vào và các tầng nơron ra Mỗi nơron của tầng vào tương ứng với mỗi thuộc tính của bản ghi, mỗi một nơron vào kết nối với tất cả các nơron của tầng ra Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí của nơron ra tương ứng
Trang 32CHƯƠNG 2 MỘT SỐ VẤN ĐỀ VỀ PHÂN CỤM DỮ LIỆU BẰNG MẠNG KOHONEN
2.1 Thuật toán phân cụm dữ liệu
PCDL 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, cụm phân biệt Bài toán phân cụ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 cụm để định nghĩa trước các lớp Vì lý do này mà công việc phân cụm thường được nhìn dưới con mắt của học máy không giám sát, phương pháp học mà khi ta cho trước một mẫu chỉ gồm các đối tượng cần tìm một cấu trúc đáng quan tâm của dữ liệu và nhóm lại các dữ liệu giống nhau
Thuật toán phân cụm phát triển có thể cho kết quả tốt nhất với một loại tập hợp dữ liệu, nhưng có thể thất bại hoặc cho kết quả kém với các dữ liệu của các loại khác Mặc dù đã có nhiều nỗ lực để tiêu chuẩn hóa các thuật toán có thể thực hiện tốt trong tất cả các trường hợp tình huống tuy nhiên vẫn chưa đạt được kết quả như mong muốn Nhiều thuật toán phân nhóm đã được đề xuất Mỗi thuật toán có giá trị riêng và điểm yếu riêng và không thể làm việc cho tất cả các tình huống thực tế Phân cụm là quá trình phân vùng dữ liệu được thiết lập thành các nhóm dựa trên những đặc điểm tương tự nhau Đây là vấn đề quan trọng trong học không giám sát
Nó thực hiện công việc với cấu trúc tìm kiếm trong một bộ dữ liệu không được dán nhãn Để thực hiện tốt các thuật toán phân cụm thì cần phải có những điều kiện[6]:
- Khả năng mở rộng - dữ liệu phải được mở rộng nếu không sẽ đưa ra kết quả sai
- Thuật toán phân cụm phải có khả năng giải quyết với các loại thuộc tính khác nhau
- Thuật toán phân cụm phải tìm ra các cụm dữ liệu với những hình dạng khác nhau
- Thuật toán phân cụm không bị ảnh hưởng bởi nhiễu và giá trị ngoại lệ
Trang 33- Kết quả thu được có thể giải thích được và có thể sử dụng để hiểu biết tối đa các thông số đầu vào
- Thuật toán phân cụm phải có khả năng giải quyết tập dữ liệu đa chiều
2.2 Một số thuật toán cơ bản trong phân cụm dữ liệu
2.2.1 Thuật toán phân cụm phân cấp
Thuật toán phân cụm phân cấp gồm có 2 loại: Thuật toán phân cụm theo thứ bậc trên xuống (Agglomerative Hierarchical) Thuật toán phân cụm theo thứ bậc từ dưới lên (Divisive Hierarchical) Hai thuật toán này trình tự làm việc ngược nhau Thuật toán phân cụm phân cấp Thuật toán này hoạt động bằng cách nhóm dữ liệu từng cặp một trên cơ sở các biện pháp khoảng cách gần nhất của khoảng cách giữa các điểm dữ liệu tất cả các cặp Một lần nữa khoảng cách giữa các điểm dữ liệu được tính toán lại Khi các nhóm đã được hình thành cần xem xét lại khoảng cách giữa các điểm dữ liệu Một số phương pháp xem xét khoảng cách giữa các điểm dữ liệu:
- Khoảng cách gần nhất hoặc liên kết đơn nhất
- Khoảng cách xa nhất hoặc liên kết đầy đủ
- Khoảng cách trung bình hoặc liên kết trung bình
- Tổng bình phương Euclide là nhỏ nhất
Thuật toán phân cụm phân cấp:
Cho X={x1,x2…xn} là tập hợp các điểm dữ liệu
Bước 1: Bắt đầu với phân chia các nhóm có mức L(0) = 0 và dãy số m = 0 Bước 2: Tìm khoảng cách tối thiểu của cụm trong cụm hiện tại biểu diễn bằng
cặp (r), (s) theo công thức d[(r),(s)]=min d[i,j] là nhỏ nhất so với các cụm hiện tại
Bước 3: Tăng số thứ tự m=m+1 Hợp nhất các cụm (r) và (s) vào một cụm duy
nhất hình thành m cụm tiếp theo Thiết lập mức của nhóm này là L (m)=d[(r),(s)]
Bước 4: Cập nhật ma trận khoảng cách D bằng cách xóa các hàng và cột
tương ứng với cụm (r) và (s) và thêm một hàng và cột tương ứng với cụm mới được thành lập Khoảng cách giữa cụm mới ký hiệu là (r,s) và cụm cũ (k) được định nghĩa d[(k),(r,s)] = min(d[(k),(r)],d[(k),(s)])
Trang 34Bước 5: Nếu tất cả các điểm dữ liệu trong một cụm thì dừng lại nếu không lặp
lại từ bước 2
Ưu điểm của thuật toán phân cụm phân cấp
- Không có thông tin về các cụm được yêu cầu
- Dễ dàng thực hiện và cho kết quả tốt nhất trong một số trường hợp
Nhược điểm của thuật toán phân cụm phân cấp
Thuật toán không thể quay lại những gì đã thực hiện trước đó Độ phức tạp của thuật toán O(n2log n) với n là số điểm dữ liệu Không có hàm mục tiêu được giảm thiểu ngay lập tức Khó xác định số lượng các cụm chính xác bởi sơ đồ nhánh
Phân cụm phân cấp bao gồm một số thuật toán như: Thuật toán CURE; Thuật toán BIRCH; Thuật toán AGNES; Thuật toán DIANA; Thuật toán ROCK; Thuật toán CHANMELEON
2.2.2 Thuật toán phân cụm phân hoạch (Thuật toán K-means)
Thuật toán K-mean là một trong các thuật toán học không giám sát để thực hiện phân cụm dữ liệu Thủ tục đơn giản và dễ dàng để phân loại dữ liệu được thiết lập thông qua số lượng nhất định các cụm (giả sử k cụm)
Hình 2.1 Các thiết lập để xác định ranh giới các cụm ban đầu
Xác định trung tâm của mỗi cụm Trung tâm của mỗi cụm phải được đặt ở những vị trí chính xác vì đặt ở những vị trí khác nhau sẽ đưa ra kết quả khác nhau
Vị trí đặt các trung tâm ở những vị trí càng xa nhau càng tốt Bước tiếp theo là lấy mỗi điểm thuộc một tập hợp dữ liệu đưa ra và liên kết đến trung tâm gần nhất Khi không có điểm chờ xử lý bước đầu tiên được hoàn thành và một nhóm đầu tiên được thực hiện Tại thời điểm này chúng ta cần phải tính toán lại trọng tâm k mới
Trang 35như là trọng tâm của các cụm kết quả từ bước trước Sau khi có những trọng tâm k một ràng buộc mới có thể được thực hiện giữa tập hợp điểm dữ liệu và trung tâm mới gần nhất Tạo ra một vòng lặp kết quả của vòng lặp này có thể nhận thấy rằng các trung tâm k thay đổi vị trí của chúng cho đến khi các trung tâm không có bất kì
di chuyển nào Thuật toán này nhằm mục đích giảm thiểu hàm mục tiêu như là hàm bình phương sai số:
C C
i j
i 1 j 1
f (v) ( x v ) (2.1) Trong đó:
i j
x v : là khoảng cách Euclide
Ci: Số điểm dữ liệu trong cụm thứ i
C: Số lượng các trung tâm cụm
Hình 2.2 Tính toán trọng tâm của các cụm mới
Các bước thực hiện thuật toán K-mean
Cho X={x1,x2…xn} là tập hợp các điểm dữ liệu, V={v1,v2,v3…vn} là tập các trung tâm
Bước 1: Chọn ngẫu nhiên trung tâm cụm c
Bước 2: Tính khoảng cách giữa các điểm với trung tâm cụm
Bước 3: Gán các điểm dữ liệu đến trung tâm cụm có khoảng cách tối thiểu của tất
1
Trang 36Trong đó: ci đại diện cho số lượng các điểm dữ liệu trong cụm thứ i
Bước 5: Tính toán lại khoảng cách giữa mỗi điểm dữ liệu và các trung tâm cụm mới
thu được
Bước 6: Nếu không có điểm dữ liệu được gán lại khi dừng thì lặp lại bước 3
Ưu điểm của thuật toán K-mean:
- Thuật toán thực hiện cho ra kết quả nhanh chóng, mạnh mẽ và dễ hiểu
- Độ phức tạp của thuật toán O(tknd) trong đó n là các đối tượng, k là các cụm,
d kích thước của từng đối tượng t là số lần lặp thông thường k,d,t<<n
- Cho kết quả tốt nhất với tập dữ liệu riêng biệt hoặc tách rời nhau
Nhược điểm của thuật toán K-mean:
- Thuật toán yêu cầu biết trước số lượng trung tâm cụm
- Nếu có nhiều hơn 2 bộ dữ liệu chồng chéo nhau thì thuật toán khó phân cụm
- Dữ liệu đại diện cho mẫu của tọa độ đề các và tọa độ cực sẽ cho kết quả khác nhau
- Lựa chọn ngẫu nhiên trung tâm các cụm có thể dẫn tới kết quả không tối ưu
- Không thể xử lý nhiễu và dữ liệu ngoại lai
- Thuật toán thất bại với tập dữ liệu phi tuyến tính
Ngoài ra thuật toán K-means ra, phân cụm phân hoạch còn bao gồm một
số các thuật toán khác như: Thuật toán PAM; Thuật toán CLARA; Thuật toán CLARANS
2.2.3 Thuật toán phân cụm dựa trên mật độ (Thuật toán DBSCAN)
Thuật toán phân cụm dựa trên mật độ đóng vai trò quan trọng trong tìm kiếm cấu trúc phi tuyến tính dựa trên mật độ Thuật toán phân cụm dựa trên không gian mật độ DBSCAN (Density-Based Spatial Clustering of Applications with Noise) là một giải thuật phân cụm dựa trên mật độ, được phát triển bởi Ester, Kriegel, Sander
và Xu (1996) được sử dụng rộng rãi dựa trên mật độ Nó dựa trên hai khái niệm khả năng tiếp cận mật độ và khả năng kết nối mật độ
Trang 37Khả năng tiếp cận mật độ: Một điểm p được gọi là mật độ truy cập từ một điểm q nếu p nằm trong khoảng cách ε từ điểm q và q có đủ số điểm lân cận với khoảng cách trong phạm vi ε
Khả năng kết nối mật độ: Một điểm p và q được cho là kết nối mật độ nếu có tồn tại một điểm r trong đó có đủ số điểm trong lân cận và cả hai điểm p và q nằm trong khoảng cách ε Nếu q là lân cận của r, r là lân cận của s, s là lân cận của t, t là lân cận của p có nghĩa là q là lân cận của p
Hình 2.3 Hình dạng các cụm đƣợc khám phá bởi thuật toán DBSCAN
Các bước của thuật toán phân cụm dựa trên mật độ DBSCAN:
Cho tập hợp các điểm dữ liệu X={x1,x2,x3…xn} DBSCAN yêu cầu hai tham số: ε và số lượng tối thiểu các điểm cần thiết để tạo thành một cụm
Bước 1: Bắt đầu với một điểm tùy ý không được kiểm tra
Bước 2: Rút ra các lân cận của điểm này bằng cách sử dụng khoảng cách ε
Bước 3: Nếu có đầy đủ các điểm lân cận xung quanh điểm này thì bắt đầu
quá trình phân cụm và điểm được đánh dấu truy cập khác thời điểm này được dán nhãn như là nhiễu
Bước 4: Nếu một điểm được tìm thấy là một phần của cụm thì lân cận ε của
nó cũng là một phần của cụm và thủ tục trên từ bước 2 được lặp đi lặp lại cho tất cả các điểm lân cận ε Điều này được lặp đi lặp lại cho đến khi tất cả các điểm trong cụm được xác định
Bước 5: Một điểm mới ghé thăm thường xuyên được lấy ra và xử lý, dẫn
đến việc phát hiện ra một cụm hoặc nhiễu
Bước 6: Quá trình này được thực hiện cho tới khi các điểm viếng thăm được
đánh dấu
Trang 38Ngoài thuật toán DBSCAN ra, phân cụm dựa trên mật độ còn bao gồm 2
thuật toán khác như: Thuật toán OPTICS; Thuật toán DENCLUE
2.2.4 Thuật toán phân cụm dựa trên lưới (Thuật toán STING)
Thuật toán STING là kỹ thuật phân cụm đa phân giải dựa trên lưới, trong đó vùng không gian dữ liệu được phân rã thành số hữu hạn các ô chữ nhật, điều này
có nghĩa là các ô lưới được hình thành từ các ô lưới con để thực hiện phân cụm
Có nhiều mức của các ô chữ nhật tương ứng với các mức khác nhau của phân giải trong cấu trúc lưới, và các ô này hình thành cấu trúc phân cấp: mỗi ô ở mức cao được phân hoạch thành số các ô nhỏ ở mức thấp hơn tiếp theo trong cấu trúc phân cấp Các điểm dữ liệu được nạp từ CSDL, giá trị của các tham số thống kê cho các thuộc tính của đối tượng dữ liệu trong mỗi ô lưới được tính toán từ dữ liệu và lưu trữ thông qua các tham số thống kê ở các ô mức thấp hơn Các giá trị của các tham
số thống kê gồm: số trung bình - mean, số tối đa - max, số tối thiểu - min, số đếm - count, độ lệch chuẩn - s,
Các đối tượng dữ liệu lần lượt được chèn vào lưới và các tham số thống kê ở trên được tính trực tiếp thông qua các đối tượng dữ liệu này 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 Cấu trúc dữ liệu lưới thuận tiện cho quá trình xử lí song song và cập nhật liên tục, khi duyệt toàn bộ CSDL một lần để tính toán các đại lượng thống kê cho mỗi ô, nên nó rất hiệu quả và do đó độ phức tạp thời gian để tạo các cụm xấp xỉ O(n), trong đó n là tổng số các đối tượng Sau khi xây dựng cấu trúc phân cấp, thời gian xử lý cho các truy vấn là O(g), trong đó g là tổng số ô lưới ở mức thấp (g << n)
Thuật toán STING gồm các bước sau:
Bước 1: Xác định tầng để bắt đầu:
Bước 2: Với mỗi cái của tầng này, tính toán khoảng tin cậy (hoặc ước
lượng khoảng) của xác suất mà ô này liên quan tới truy vấn
Bước 3: Từ khoảng tin cậy của tính toán trên, gán nhãn cho là có liên
quan hoặc không liên quan
Trang 39Bước 4: Nếu lớp này là lớp dưới cùng, chuyển sang Bước 6; nếu khác thì
chuyển sang Bước 5
Bước 5: Duyệt xuống dưới của cấu trúc cây phân cấp một mức Chuyển
sang Bước 2 cho các ô mà hình thành các ô lên quan của lớp có mức cao hơn
Bước 6: Nếu đặc tả được câu truy vấn, chuyển sang Bước 8; nếu không
thì chuyển sang Bước 7
Bước 7: Truy lục dữ liệu vào trong các ô liên quan và thực hiện xử lí Trả
lại kết quả phù hợp yêu cầu của truy vấn Chuyển sang Bước 9
Bước 8: Tìm thấy các miền có các ô liên quan Trả lại miền mà phù hợp
với yêu cầu của truy vấn Chuyển sang Bước 9
Bước 9: Dừng
Ngoài thuật toán STING ra, phân cụm dựa trên lưới còn có thêm một
thuật toán khác là: Thuật toán CLIQUE
2.2.5 Các thuật toán phân cụm dựa trên mô hình (Thuật toán EM)
Thuật toán 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 đó Phân phối xác suất thường được sử dụng là phân phối xác suất Gaussian với mục đích là khám phá lặp các giá trị tốt cho các tham số của nó bằng hàm tiêu chuẩn là hàm logarit khả năng của đối tượng dữ liệu, đây là hàm tốt để mô hình xác suất cho các đối tượng dữ liệu 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 khá cao Thuật toán được chia thành hai bước và quá trình đó được lặp lại cho đến khi vấn đề được giải quyết: Các bước thực hiện của thhuật toán EM
1 2