Thuật toán xác định số cụm tối ưu trong thuật toán gom cụm mờ dựa trên hàm chỉ số đánh giá sự kết hợp giữa độ chồng và độ nén dữ liệu .... Ứng dụng được xây dựng dựa trên cơ sở dữ liệu đ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TRẦN THỊ THANH TRÚC
PHÁT TRIỂN THUẬT TOÁN XÁC ĐỊNH SỐ CỤM
TRONG THUẬT TOÁN GOM CỤM MỜ VÀ CÀI ĐẶT ỨNG DỤNG
LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN ĐÌNH THUÂN
TP HỒ CHÍ MINH – Năm 2017
Trang 2Tôi xin cam đoan:
(1) Luận văn này là sản phẩm nghiên cứu của riêng tôi;
(2) Các số liệu, kết quả đƣợc trình bày trong luận văn là trung thực;
(3) Tôi xin chịu trách nhiệm về nghiên cứu của mình
Học viên
Trần Thị Thanh Trúc
Trang 31
MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ 5
MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 7
1.1 Lý do chọn đề tài 7
1.2 Mục tiêu, đối tượng và phạm vi nghiên cứu 8
1.2.1 Mục tiêu 8
1.2.2 Đối tượng 8
1.2.3 Phạm vi 8
1.3 Các đóng góp từ kết quả nghiên cứu của luận văn 8
1.4 Bố cục của luận văn 9
CHƯƠNG 2: GOM CỤM DỮ LIỆU MỜ 10
2.1 Gom cụm dữ liệu và một số kỹ thuật gom cụm 10
2.2 Bài toán gom cụm mờ 10
2.2.1 Giới thiệu gom cụm mờ 10
2.2.2 Thuật toán Fuzzy C_Mean (FCM) 15
2.3 Các phương pháp xác định số cụm trong gom cụm dữ liệu 19
2.3.1 Xác định số cụm dựa trên phương pháp truyền thống 20
2.3.2 Xác định số cụm bằng phương pháp Eblow 20
2.3.3 Xác định số cụm dựa trên phương pháp Cross Validation 23
2.3.4 Xác định số cụm sử dụng thuật toán thống kê khoảng cách 23
CHƯƠNG 3: THUẬT TOÁN XÁC ĐỊNH SỐ CỤM ĐỀ XUẤT 26
3.1 Tổng quan các nghiên cứu phương pháp xác định số cụm dựa trên độ nén và độ chồng của dữ liệu 26
3.2 Xác định số cụm dựa trên độ nén và độ chồng của dữ liệu 27
3.2.1 Độ nén (compactness): 27
3.2.2 Độ chồng (overlap): 32
Trang 42
3.2.3 Độ phân tách (separation): 33
3.3 Thuật toán xác định số lượng cụm tối ưu 34
3.4 Thuật toán xác định số cụm tối ưu trong thuật toán gom cụm mờ dựa trên hàm chỉ số đánh giá sự kết hợp giữa độ chồng và độ nén dữ liệu 35
3.4.1 Sơ đồ của thuật toán 35
3.4.2 Thuật toán dạng liệt kê 35
3.4.3 Xác định độ phức tạp của thuật toán với n bộ dữ liệu đầu vào 36
3.5 Đánh giá thuật toán 37
CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG 38
4.1 Mục đích chương trình 38
4.2 Cơ sở dữ liệu 38
4.3 Các chức năng chính của chương trình 39
4.4 Kết luận 44
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45
5.1 Kết luận 45
5.2 Hướng phát triển 45
TÀI LIỆU THAM KHẢO 46
Trang 53
DANH MỤC CÁC CHỮ VIẾT TẮT
DBLP Digital Bibliography & Library Project FPCM Fuzzy Possibilistic C-Means
𝜀FCM 𝜀-Insensitive Fuzzy C- means (𝜀FCM)THPT Trung học phổ thông
Trang 64
DANH MỤC CÁC BẢNG
Bảng 3.1 Bảng tính độ phức tạp của thuật toán 36 Bảng 3.2 Đánh giá thuật toán đề xuất 37
Trang 75
DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 2.1 Ví dụ về gom cụm dữ liệu 10
Hình 2.2 Gom cụm tập dữ liệu với số lượng cụm khác nhau 19
Hình 2.3 "Eblow" được chỉ định bởi các vòng tròn màu đỏ 20
Hình 2.4 Ví dụ áp dụng phương pháp Eblow cho K-means 21
Hình 2.6 Ví dụ áp dụng phương pháp Eblow cho PAM 22
Hình 2.6 Ví dụ áp dụng thuật toán thống kê khoảng cách cho K-means 24
Hình 2.7 Ví dụ áp dụng thuật toán thống kê khoảng cách cho PAM 25
Hình 3.1 Ví dụ về độ nén 28
Hình 3.2 Độ nén trong cụm dữ liệu 28
Hình 3.3 Biểu đồ minh họa về độ nén 29
Hình 3.4 Hàm liên thuộc dạng sin 29
Hình 3.5 Hàm liên thuộc tuyến tính 30
Hình 3.6 Hình minh họa về độ chồng 32
Hình 3.7 Hình minh họa về độ phân tách 33
Hình 3.8 Quá trình ước lượng số cụm tối ưu 34
Hình 4.1 Cơ sở dữ liệu điểm trường THPT 38
Hình 4.2 Màn hình khởi động 40
Hình 4.3 Hình minh họa chức năng gom cụm dữ liệu 41
Hình 4.4 Hình minh họa kết quả gom cụm dữ liệu với tùy chọn 01 42
Hình 4.5 Hình minh họa kết quả gom cụm dữ liệu với tùy chọn 02 43
Hình 4.6 Hình minh họa kết quả gom cụm dữ liệu với tùy chọn 03 44
Trang 86
MỞ ĐẦU
Với sự bùng nổ và phát triển của công nghệ thông tin đã mang lại nhiều hiệu quả đối với khoa học cũng như các hoạt động thực tế, trong đó khai phá dữ liệu là một lĩnh vực mang lại hiệu quả thiết thực cho con người Khai phá dữ liệu đã giúp con người thu được những tri thức hữu ích từ những cơ sở dữ liệu hoặc các kho dữ liệu khổng lồ khác Khai phá dữ liệu càng ngày càng trở nên quan trọng và là lĩnh vực nhận được nhiều sự quan tâm
Để tiến hành khai phá dữ liệu thì chúng ta có nhiều phương pháp khác nhau, nhưng phương pháp gom cụm dữ liệu được sử dụng nhiều Trong gom cụm ta có hai hướng đó là gom cụm rõ và gom cụm mờ Gom cụm rõ được hiểu là ta có tập dữ liệu X, ta kiểm tra các điểm dữ liệu xem nó giống với đặc điểm của nhóm nào nhất thì ta gán điểm dữ liệu vào nhóm đó Nhưng trong thực tế không phải lúc nào bài toán gom cụm rõ cũng áp dụng được
Gom cụm mờ là phương pháp gom cụm dữ liệu mà cho phép mỗi điểm dữ liệu thuộc về hai hoặc nhiều cụm thông qua bậc thành viên hay độ thuộc Gom cụm
mờ được sử dụng rộng rãi trong gom cụm dữ liệu với số cụm được cho trước Để tăng tính hiệu quả của quá trình gom cụm thì người ta có nhu cầu xác định trước số cụm khi tiến hành gom cụm Do đó mục tiêu của luận văn là phát triển thuật toán xác định số cụm trong thuật toán gom cụm mờ và cài đặt ứng dụng
Trang 9An phối hợp với phụ huynh, ban giám hiệu, giáo viên bộ môn tư vấn việc chọn lớp
ôn tập cho thi trung học phổ thông quốc gia để các em hiểu biết và chọn đúng nguyện vọng khi tham gia kỳ thi, tránh tình trạng chọn nhằm lớp do ảo tưởng về năng lực, giúp học sinh ổn định về mặt tâm lý, chuẩn bị tâm thế sẵn sàng bước vào
kì thi, góp phần nâng cao chất lượng của kì tuyển sinh Từ đó cho thấy, giáo viên, phụ huynh, học sinh cần có công cụ mang tính khoa học để làm cơ sở tham khảo trong việc định hướng lựa chọn lớp học phù hợp với năng lực học tập của học sinh
Xuất phát từ nhu cầu thực tế này, luận văn xây dựng ứng dụng chọn lớp ôn luyện thi trung học phổ thông quốc gia cho trường THPT Chuyên Long An, nhằm góp thêm một giải pháp giúp học sinh chọn đúng lớp học theo năng lực, giảm bớt áp lực thi cử, đồng thời hỗ trợ công tác quản lý về chuyên môn của nhà trường, đồng thời giúp phụ huynh học sinh có định hướng đúng đắn cho học sinh trong việc lựa chọn các tổ hợp ôn luyện trong kỳ thi trung học phổ thông quốc gia
Ứng dụng được xây dựng dựa trên cơ sở dữ liệu điểm của học sinh trường THPT Chuyên Long An với đặc điểm của bài toán gom cụm mờ Với dữ liệu điểm trung bình môn học của học sinh thì một học sinh có thể chọn được các lớp ôn luyện khác nhau tùy theo mức độ của điểm trung bình
Có nhiều thuật toán gom cụm mờ đã được đề xuất để giải quyết bài toán gom cụm mờ Tuy nhiên trong các thuật toán gom cụm cũng như gom cụm mờ thì số
Trang 108
cụm thường được xác định ngẫu nhiên hoặc cho trước nên làm giảm hiệu quả của việc gom cụm Vì vậy, đã có nhiều phương pháp xác định số cụm tối ưu được đề xuất với các ưu điểm và nhược điểm khác nhau Trên cơ sở đó luận văn đã đề xuất một phương pháp xác định số cụm tối ưu cho thuật toán gom cụm mờ dựa trên độ nén và độ chồng dữ liệu để tăng hiệu quả của các thuật toán gom cụm mờ và đã tiến hành cài đặt trên cơ sở dữ liệu điểm của trường THPT Chuyên Long An
1 2 Mục tiêu, đối tượng và phạm vi nghiên cứu
Đối tượng phục vụ của sản phẩm ứng dụng: Cung cấp cho nhà trường, phụ huynh và học sinh công cụ tư vấn lựa chọn lớp ôn thi THPT quốc gia phù hợp với năng lực học tập của học sinh
1.2.3 Phạm vi
Phạm vi nghiên cứu của luận văn là: lý thuyết về bài toán gom cụm mờ, thuật toán gom cụm mờ FCM, phương pháp xác định số cụm tối ưu đã được nghiên cứu, lý thuyết về độ nén và độ chồng dữ liệu
Dữ liệu về điểm của trường THPT Chuyên Long An dùng để thực nghiệm phương pháp xác định số cụm mờ và cài đặt ứng dụng
1 3 Các đóng góp từ kết quả nghiên cứu của luận văn
Trang 111 4 Bố cục của luận văn
Chương 1: Tổng quan về đề tài
Trong chương này luận văn đề cập tới lý do chọn đề tài; mục tiêu, đối tượng, phạm vi nghiên cứu và các đóng góp từ kết quả nghiên cứu của đề tài
Chương 2: Gom cụm dữ liệu mờ
Chương này đề cập về bài toán gom cụm mờ, thuật toán gom cụm mờ, các phương pháp xác định số cụm trong bài toán gom cụm mờ
Chương 3: Thuật toán xác định số cụm tối ưu đề xuất
Chương này đề cập tới thuật toán xác định số cụm tối ưu đề xuất và các khái niệm liên quan trong thuật toán đã đề xuất
Chương 4: Cài đặt ứng dụng
Chương này trình bày về cài đặt ứng dụng dựa trên cơ sở dữ liệu điểm trường THPT Chuyên Long An
Trang 1210
CHƯƠNG 2: GOM CỤM DỮ LIỆU MỜ
2.1 Gom cụm dữ liệu và một số kỹ thuật gom cụm
Gom cụm dữ liệu là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu sao cho các đối tượng trong một cụm “tương tự” (Similar) với nhau
và các đối tượng trong các cụm khác nhau sẽ “không tương tự” (Dissimilar) với nhau Số các cụm dữ liệu được phân ở đây có thể được xác định trước theo kinh nghiệm hoặc có thể được tự động xác định
Hình 1 Hình 2.1 Ví dụ về gom cụm dữ liệu
Các kỹ thuật gom cụm có nhiều cách tiếp cận và các ứng dụng trong thực tế,
nó đề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ủa thuật toán Hiện nay, các kỹ thuật gom cụm có thể phân loại theo các phương pháp tiếp cận chính như sau:
- Phương pháp gom cụm phân cấp
- Phương pháp gom cụm dựa trên mật độ
- Phương pháp gom cụm phân hoạch
- Phương pháp gom cụm dựa trên lưới
- Phương pháp gom cụm dựa trên mô hình
- Phương pháp gom cụm có dữ liệu ràng buộc
2.2 Bài toán gom cụm mờ
2.2.1 Giới thiệu gom cụm mờ
Nhiều vấn đề đã dẫn đến bài toán gom cụm mờ và ứng dụng được nói nhiều trong bài toán gom cụm mờ là: nhận dạng ảnh, xử lý thông tin, phân loại khách hàng trong ngân hàng Đã có nhiều nghiên cứu chuyên sâu trong 2 thập kỷ qua Điểm quan trọng là sự khác nhau của hai hướng tiếp cận, theo hướng mờ (Fuzzy) 1
Trang 13ra khái niệm độ thuộc để chỉ mức độ liên quan của điểm dữ liệu vào cụm mà nó thuộc Giá trị độ thuộc nằm trong khoảng (0,1), trường hợp điểm dữ liệu không thuộc một cụm nào hay chỉ thuộc vào duy nhất một cụm là rất hiếm
Nhiều thuật toán gom cụm mờ đã được xuất phát từ việc cực tiểu giá trị hàm trong dạng:
(2.1)
( , )k j
d x v : là một độ đo không tương tự
ukj : độ thuộc của điểm dữ liệu thứ k vào cụm thứ j
Giải bài toán J u v ( , ) min với ràng buộc sau:
kj j
n kj k
u u
Lấy đạo hàm L theo ukj ta có:
m
kjd x v u
J
,
Trang 1412
1( , )
và kết quả với từng ukj ta có:
1 1, 1, , , k=1, ,n.
( , )
m k
1
m c
1
1 1
Trang 15kj k
Generalized Fuzzy Algorithmic Scheme (GFAS)
Chọn vj (0) khởi tạo đánh giá cho vj , j=1,…,c
1
1 ( )
( , ( ) ( , ( )
Until (thỏa mãn chuẩn)
Chuẩn có thể là ||vj(t+1) - vj(t)|| < , ||.|| là một chuẩn vector bất kỳ và
>0 bé tùy ý
Trong trường hợp gom cụm chặt, điểm đại diện được sử dụng thay cho các cụm, đó là vj, bao gồm l giá trị Trong trường hợp này độ đo không tương tự
Trang 16( 1)
n m
k
m kj k
Kết quả trên còn được biết đến như Fuzzy c_mean (FCM) hay Fuzzy k_mean
và được mở rộng trong tài liệu [5][6] Tiếp theo ta xét trường hợp sử dụng công thức khoảng cách Minkowski với p<+∞:
1
1 1
Trang 1715
1
1 1 1
jr kr m
ks js s
2.2.2 Thuật toán Fuzzy C_Mean (FCM)
Khóa luận sử dụng thuật toán FCM để nghiên cứu gom cụm mờ Thuật toán FCM là sự cải tiến từ thuật toán C_mean của Forgy Ta mô hình hóa bài toán như sau:
Cho tập dữ liệu X={x1,x2,….,xn}, n N , với xk Rp gọi V ( , , , ) v v1 2 vC là các trung tâm cụm Hàm mục tiêu có dạng như sau:
ukj : độ thuộc của điểm dữ liệu thứ k vào cụm thứ j
m: hằng số nguyên dương, được gọi là độ m
||.|| là một chuẩn vector bất kỳ, để đơn giản ở đây ta sử dụng chuẩn Euclidean
Xuất hiện thêm khái niệm về ma trận phân hoạch U
Bài toán gom cụm mờ được phát biểu thành bài toán sau:
Min J(u,v) với điều kiện:
Trang 18kj j
n
kj k
u u
, 1, 2, ,
n m
kj j k
m kj k
Trang 19m k
1
1
m c
2 2
1 1
Ta cũng có thể sử dụng thuật toán FCM để giải bài toán trên, thuật toán FCM được phát triển bởi Dunn vào năm 1973 [8] và được chứng minh bởi Bezdek vào năm 1981 [7] Đầu vào thuật toán là bộ số liệu X, cho trước số lượng cụm C Sử dụng quá trình lặp để xấp xỉ cực tiểu hàm mục tiêu, thuật toán được tiến hành theo 4 bước sau:
1 Khởi tạo ma trận phân hoạch U=[ukj], U(0)
2 Tại bước thứ k: tính vector tâm cụm v(k) với U(k):
Trang 20kj k k
m kj k
u x v
Thuật toán trên đã được chứng minh là hội tụ về điểm cực tiểu hoặc điểm yên ngựa của hàm mục tiêu J
Tuy có ưu điểm so với thuật toán C_mean cho bài toán gom cụm rõ nhưng FCM vẫn tồn tại nhược điểm giống C_mean đó là số lượng tâm cụm ban đầu đưa vào là tùy ý Nếu như không có mục đích gom cụm rõ ràng thì việc tìm “c” sao cho tối ưu việc phân tách bộ số liệu ban đầu là rất khó Hai là kết quả cuối cùng phụ thuộc vào việc chọn công thức tính khoảng cách từ điểm dữ liệu k đến cụm j mà công thức này cũng là do người dùng chọn nên kết quả sẽ khác nhau ở các cách chọn khác nhau
Trang 2119
Thuật toán gom cụm mờ FCM đã có nhiều biến thể, nhiều hướng nghiên cứu khác nhau Nhưng trong khóa luận sẽ đi theo hướng gom cụm mờ có ngữ cảnh Đây
là một hướng đi mới có ý nghĩa thực tiễn cao
2.3 Các phương pháp xác định số cụm trong gom cụm dữ liệu
Trong các thuật toán gom cụm mờ như C-means mờ (FCM), Fuzzy Possibilistic C-Means (FPCM), Gustafson-Kessel (GK), Gath-Geva (GG), 𝜀-Insensitive Fuzzy C- means (𝜀FCM), thường yêu cầu người dùng xác định trước
số cụm
Số cụm là một tham số đầu vào quan trọng và ảnh hưởng nhiều tới kết quả của quá trình gom cụm, ứng với số lượng cụm khác nhau sẽ cho ra các kết quả gom cụm khác nhau, thật khó khăn để quyết định kết quả gom cụm nào là tốt nhất
Quá trình gom cụm dữ liệu nhằm xác định các nhóm đối tượng dữ liệu tương
tự, từ đó khảo sát các cụm sẽ giúp khái quát, nhanh chóng rút ra các đặc điểm của khối dữ liệu lớn Tuy nhiên, trong hầu hết các thuật toán gom cụm, tham số số cụm không được biết trước và thuật toán thường yêu cầu người dùng phải xác định trước
số lượng các cụm, ứng với mỗi số lượng cụm khác nhau sẽ cho ra các kết quả gom cụm khác nhau
Hình 2 Hình 2.2 Gom cụm tập dữ liệu với số lượng cụm khác nhau
Trang 2220
2.3.1 Xác định số cụm dựa trên phương pháp truyền thống
Tập dữ liệu có n đối tượng thì số cụm theo phương pháp truyền thống thường được sử dụng là n 2
Giá trị K= n 2 thường được sử dụng làm giá trị K ban đầu trong thuật toán K-means trong trường hợp bài toán chưa biết trước số cụm
Ưu điểm: thực hiện nhanh chóng
Nhược điểm của: độ chính xác không cao
2.3.2 Xác định số cụm bằng phương pháp Eblow
Phương pháp Eblow xem xét tỉ lệ phần trăm phương sai như một hàm của số cụm Số lượng cụm nên chọn khi thêm cụm khác thì không tạo ra mô hình hóa dữ liệu tốt hơn Chính xác hơn, nếu một giá trị phần trăm phương sai tính bằng tỉ số các cụm so với số lượng cụm thì các cụm đầu tiên sẽ chứa nhiều thông tin (giải thích nhiều biến số), nhưng ở một số điểm thì lợi ích cận biên sẽ giảm, tạo ra một góc trong đồ thị Số lượng các cụm được chọn vào thời điểm này là do “tiêu chí Eblow”
“Eblow” này không phải lúc nào cũng được xác định rõ ràng Tỉ lệ phần trăm phương sai được giải thích là tỷ số phương sai giữa nhóm với tổng phương sai [31]
Hình 3 Hình 2.3 "Eblow" được chỉ định bởi các vòng tròn màu đỏ
Trang 2321
Xác định số cụm K dựa trên phương pháp Elbow là thực hiện việc xác định
số cụm dựa trên độ chính xác của việc thử các giá trị K khác nhau [14] và được thực hiện như sau:
Bước 1: Khởi tạo giá trị K=2
Bước 2: Tính toán cụm và chi phí đi kèm với K khác nhau và mỗi lần tăng K lên 1 đơn vị
Bước 3: Vẽ đường cong biểu diễn phần trăm phương sai theo K
Bước 4: Vị trí uốn cong trong đường cong biểu diễn thường là giá trị số lượng cụm thích hợp
Hình 4 Hình 2.4 Ví dụ áp dụng phương pháp Eblow cho K-means
Trang 2422
Hình 5Hình 2.6 Ví dụ áp dụng phương pháp Eblow cho PAM
Ưu điểm: đơn giản, dễ thực hiện [31]
Nhược điểm: tiêu chí Eblow trong một số trường hợp thì không thể xác định được [31]
Trang 2523
2.3.3 Xác định số cụm dựa trên phương pháp Cross Validation
Cross-validation là một phương pháp kiểm tra độ chính xác của 1 máy học dựa trên một tập dư liệu cho trước Thay vì chỉ dùng một phần dữ liệu làm tập dữ liệu học thì cross-validation dùng toàn bộ dữ liệu để dạy cho máy
Có 3 phương pháp cross-validation phổ biến:
– Hold-out: phương pháp đơn giản nhất Dữ liệu được chia một cách ngẫu nhiên thành một tập dữ liệu học và một tập dữ liệu kiểm tra Dùng tập đầu tiên để dạy máy rồi dùng ngay tập còn lại để kiểm tra – K-fold: đây là phương pháp nâng cấp của hold-out Toàn bộ dữ liệu được chia thành K tập con Quá trình học của máy có K lần Trong mỗi lần, một tập con được dùng để kiểm tra và K-1 tập còn lại dùng
Kỹ thuật này chia dữ liệu thành m phần Sử dụng m-1 phần cho mô hình gom cụm Sử dụng phần còn lại cho việc kiểm tra chất lượng mô hình gom nhóm Kiểm tra với K>0, lặp lại m lần và tìm ra giá trị K phù hợp với dữ liệu
2.3.4 Xác định số cụm sử dụng thuật toán thống kê khoảng cách
Thống kê khoảng cách là một thuật toán xác định số cụm tối ưu Thuật toán này dựa trên ý tưởng rằng sự thay đổi trong cluster với sự gia tăng các cụm được dự kiến dưới phân phối tham chiếu cho dữ liệu ngẫu nhiên
Trước tiên giả sử rằng có một bộ mẫu {xi} sau đó bằng cách sử dụng phương pháp gom cụm ta được các cụm C1, C2,… , Ck Ứng với mỗi cụm Cr thì khoảng cách d2(xi,xi’) trong cụm r đều được tính toán và tổng phân tán W k được xác định bởi công thức sau:
k k
r
1
d x , x