Tải bản đầy đủ (.pdf) (43 trang)

Ứng dụng thuật toán phân cụm mờ theo ngữ cảnh tạo các luật mờ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (511.75 KB, 43 trang )

Mục Lục
Mục Lục .....................................................................................................................1
Lời cảm ơn .................................................................................................................2
Bảng ký hiệu, viết tắt .................................................................................................3
Mở đầu .......................................................................................................................4
Chương 1: Tổng quan về Khai phá dữ liệu...............................................................6
1.1 Giới thiệu về Khai phá dữ liệu .....................................................................6
1.2 Quá trình KPTT............................................................................................7
1.3 Các hướng tiếp cận cơ bản và các hướng áp dụng trong KPDL..................8
1.4 Các ứng dụng thực tiễn của khai phá dữ liệu...............................................9
1.5 Các thách thức và khó khăn trong khai phá dữ liệu ...................................10
Chương 2: Bài toán Phân cụm .................................................................................11
2.1 Hình thành bài toán phân cụm....................................................................11
2.2 Bài toán phân cụm rõ..................................................................................11
2.3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu.......................................12
2.3.1 Phương pháp phân cụm phân hoạch....................................................12
2.3.2 Phương pháp phân cụm phân cấp........................................................13
2.3.3 Phương pháp tiếp cận dựa trên mật độ................................................13
2.3.4 Phương pháp phân cụm dựa trên lưới. ................................................14
2.3.5 Phương pháp phân cụm dựa trên mô hình...........................................14
2.3.6 Phương pháp phân cụm dữ liệu có dữ liệu ràng buộc.........................15
2.3.7 Phương pháp phân cụm mạng Kohonen. ............................................16
2.4 Bài toán phân cụm mờ................................................................................16
2.4.1 Giới thiệu phân cụm mờ. .....................................................................16
2.4.2 Thuật toán Fuzzy C_Mean (FCM) ......................................................21
2.4.3 Phân cụm mờ có ngữ cảnh ..................................................................25
Chương 3: Phân cụm mờ 2 ngữ cảnh và ứng dụng..................................................28
3.1 Thuật toán phân cụm mờ 2 ngữ cảnh .........................................................28
3.2 Song song hoá thuật toán phân cụm mờ 2 ngữ cảnh..................................30
3.3 Kết quả thực nghiệm ..................................................................................32
3.4 Ứng dụng thuật toán phân cụm mờ theo ngữ cảnh tạo các luật mờ...........36


3.4.1. Đặt vấn đề................................................................................................36
3.4.2. Thủ tục tìm luật mờ .................................................................................37
3.4.3. Kết quả thực nghiệm ...............................................................................38
Kết luận ....................................................................................................................41
1. Các kết quả đạt được......................................................................................41
2. Hướng phát triển ............................................................................................41
Tài liệu tham khảo....................................................................................................42

-1-


Lời cảm ơn
Tôi xin gửi lời cám ơn chân thành đến:
- PGS.TSKH. Bùi Công Cường đã nhiệt tình hướng dẫn tôi làm luận văn trong suốt
năm qua. Thầy đã đặt nền móng cho tôi trong nghiên cứu về lĩnh vực phân cụm
mờ. Thầy đã theo sát tôi từng bước, chỉ cho tôi những chỗ chưa đúng và hướng dẫn
tôi cách thức thực hiện đề tài. Qua quá trình làm việc với Thầy, tôi đã học được các
kỹ năng nghiên cứu khoa học và phản biện vấn đề. Tôi xin chân thành cảm ơn thầy.
- Ban Giám đốc và các cán bộ Trung tâm tính toán hiệu năng cao, trường Đại học
Khoa học Tự nhiên - ĐHQGHN đã cho phép tôi đến Trung tâm triển khai bài toán
của mình trên hệ thống song song của Trung tâm. Đặc biệt gửi lời cảm ơn đến Thạc
sỹ Lê Hoàng Sơn, người đã tạo điều kiện thuận lợi và tận tình chỉ bảo để tôi hoàn
thành tốt luận văn này. Tôi xin chân thành cảm ơn.
- Các thầy, cô trong bộ môn Tin học và khoa Toán - Cơ - Tin học đã cung cấp
những kiến thức nền tảng quý báu cả về toán học và tin học để tôi có thể thực hiện
luận văn của mình.
- Ban lãnh đạo trường Đại học Kinh tế - Kỹ thuật - Công nghiệp, các anh chị đồng
nghiệp công tác tại Trung tâm Hợp tác Quốc tế và Bồi duỡng cán bộ của trường đã
động viên khích lệ và tạo điều kiện thuận lợi để tôi hoàn thành khoá học này.
- Cuối cùng, tôi xin dành tặng những kết quả này cho gia đình tôi, những người mà

tôi yêu quý nhất.
Hoàng Thị Minh Châu

-2-


Bảng ký hiệu, viết tắt
KPDL

Khai phá dữ liệu

KPTT

Khai phá tri thức

FCM

Fuzzy C-means

CFCM

Context Fuzzy C-means method

2C-FCM

2-Context Fuzzy C-means method

P2C-FCM

Parallel 2-Context Fuzzy C-means method


UNO

United Nation Organization

UNDP

United Nations Development Programme

-3-


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 phân cụm dữ liệu được sử dụng
nhiều. Trong phân cụm ta có hai hướng đó là phân cụm rõ và phân cụm mờ. Phân
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 phân cụm rõ cũng áp dụng được. Ví dụ như ta
có phép phân loại sau: Những người đi xe máy xịn thì thuộc nhóm người giàu,
những người đi xe máy bình thường thì thuộc nhóm bình dân. Vậy những người
nghèo đi xe máy xịn thì thuộc nhóm nào? Vì vậy chúng ta cần đưa vào khái niệm
bài toán phân cụm mờ. Phân cụm mờ là phương pháp phân 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. Ruspini (1969) giới thiệu khái niệm phân hoạch mờ để mô tả cấu trúc

cụm của tập dữ liệu và đề xuất một thuật toán tối ưu phân hoạch mờ. Dunn (1973)
mở rộng phương pháp phân cụm và đã phát triển thuật toán phân cụm mờ. Ý tưởng
của thuật toán là 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 mục tiêu. Bezdek (1981) cải tiến và tổng quát hoá hàm mục tiêu mờ bằng cách
đưa ra trọng số mũ để xây dựng thuật toán phân cụm mờ và được chứng minh độ
hội tụ của các thuật toán là cực tiểu cục bộ. Và đến năm 1996, Witold Pedrycz đã
đưa biến ngữ cảnh vào trong bài toán phân cụm mờ, kết quả là thông tin nhận được
có ý nghĩa hơn hẳn so với các phương pháp cũ. Đây là một hướng mới và hay nên
tác giả đã chọn hướng phát triển này cho luận văn của mình.
-4-


Các phần chính trong luận văn:
Chương 1: Tổng quan về khai phá dữ liệu.
Trong chương này đề cập đến lịch sử ra đời, tầm quan trọng, ứng dụng và
các khó khăn thách thức trong khai phá dữ liệu. Quá trình khai phá dữ liệu.
Chương 2: Bài toán phân cụm.
Trong chương này đề cập đến bài toán phân cụm rõ, phân cụm mờ, các kỹ
thuật trong bài toán phân cụm. Giới thiệu thuật toán phân cụm mờ FCM, và thuật
toán phân cụm FCM một ngữ cảnh.
Chương 3: Phân cụm mờ 2 ngữ cảnh và ứng dụng.
Trong chương này đề cập đến các kết quả mà tác giả phát triển được từ thuật
toán FCM và thuật toán FCM một ngữ cảnh. Tác giả đưa ra thuật toán 2C-FCM và
P2C-FCM mới. Ứng dụng của phân cụm mờ có ngữ cảnh để tạo ra luật mờ.
Mặc dù tác giả đã cố gắng trình bày luận văn chính xác về nội dung, mạch
lạc về hình thức, song bản luận văn không thể tránh khỏi những thiếu sót. Tác giả
mong nhận được những ý kiến đóng góp quý báu của thầy cô và các anh chị đồng
nghiệp để luận văn được hoàn thiện hơn.
Hà Nội, ngày 28 tháng 9 năm 2010
Hoàng Thị Minh Châu


-5-


Chương 1: Tổng quan về Khai phá dữ liệu
1.1 Giới thiệu về Khai phá dữ liệu
Trong kỷ nguyên Công nghệ thông tin và truyền thông phát triển, đã mở ra
nhiều cơ hội cho những doanh nghiệp, các tổ chức, các cá nhân trong việc thu thập
và xử lý thông tin. Hơn nữa, các công nghệ lưu trữ và phục hồi dữ liệu phát triển
nhanh chóng vì thế cơ sở dữ liệu ở các cơ quan, doanh nghiệp, các tổ chức, cá nhân
ngày càng phong phú và đa dạng.
Chúng ta biết rằng hiện nay đơn vị dữ liệu không chỉ là Terabytes mà đã lên
tới Petabytes, lớn hơn rất nhiều lần. Và dữ liệu được thể hiện dưới nhiều dạng :
- Dữ liệu số
- Dữ liệu định tính
- Dữ liệu văn bản
- Dữ liệu chuỗi thời gian (y học, các khoa học kinh tế….)
- Dữ liệu ảnh (cố định và video)
- Dữ liệu hỗn hợp (Web, hồ sơ y tế….)
Như vậy là con người chúng ta đang chìm ngập trong các khối dữ liệu lớn,
nhưng lại thiếu tri thức. Vì vậy đến những năm cuối của thập kỷ 1980, khái niệm
về khai phá dữ liệu (KPDL) và khám phá tri thức (KPTT) được ra đời để giải quyết
vấn đề trên.
Khám phá tri thức hay phát hiện tri thức trong CSDL là một quy trình nhận
biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: phân tích, tổng hợp,
hợp thức, khả ích và có thể hiểu được.
Khai phá dữ liệu là quá trình tìm kiếm các mẫu mới, những thông tin tiềm ẩn
mang tính dự đoán trong các khối dữ liệu lớn. Những công cụ KPDL có thể phát
hiện những xu hướng trong tương lai, các tri thức mà KPDL mang lại có thể ra
quyết định kịp thời. Với ưu điểm trên, KPDL đã chứng tỏ tính hữu dụng của nó


-6-


trong môi trường kinh doanh và được ứng dụng rộng rãi trong các lĩnh vực thương
mại, tài chính, y học, giáo dục…
Để hình dung vấn đề này ta có thể sử dụng một ví dụ đơn giản như sau: khai
phá dữ liệu được ví như tìm một cây kim trong đống cỏ khô. Trong ví dụ này, cây
kim là một mảnh nhỏ tri thức hoặc một thông tin có giá trị và đống cỏ khô là một
kho cơ sở dữ liệu rộng lớn. Như vậy, những thông tin có giá trị tiềm ẩn trong kho
cơ sở dữ liệu sẽ được chiết xuất ra và sử dụng một cách hữu ích nhờ khai phá dữ
liệu. Chức năng khai phá dữ liệu gồm có gộp nhóm phân loại, dự báo, dự đoán và
phân tích các liên kết. Năm 1989 Fayyad, Smyth và Piatestsky-Shapiro đã dùng
khái niệm Phát hiện tri thức từ cơ sở dữ liệu (Knowledge Discovery in DatabaseKDD). Trong đó, khai phá dữ liệu là một giai đoạn rất đặc biệt trong toàn bộ quá
trình, nó sử dụng các kỹ thuật để tìm ra các mẫu từ dữ liệu.
1.2 Quá trình KPTT
Trong quá trình KPTT thì KPDL là một bước quan trọng nhằm trích rút ra
các mẫu dữ liệu hữu ích từ đó phát hiện ra các tri thức tiềm ẩn trong kho dữ liệu
khổng lồ. Trước khi dữ liệu đến với bước KPDL thì chúng phải trải qua các bước
tiền xử lý để được dữ liệu phù hợp với các thuật toán được sử dụng trong bước
KPDL. Quy trình cụ thể như sau :

Hình 1.1 Tổng quan về KPTT
-7-


Các bước trong quá trình :
1. Làm sạch dữ liệu (Data cleaning): loại bỏ dữ liệu nhiễu và dữ liệu không nhất
quán.
2. Tích hợp dữ liệu (Data intergation): dữ liệu của nhiều nguồn có thể được tổ

hợp lại.
3. Lựa chọn dữ liệu (Data selection): lựa chọn những dữ liệu phù hợp với nhiệm
vụ phân tích trích rút từ cơ sở dữ liệu.
4. Chuyển đổi dữ liệu (Data transformation): dữ liệu được chuyển đổi hay được
hợp nhất về dạng thích hợp cho việc khai phá.
5. Khai phá dữ liệu (Data Mining): đây là một tiến trình cốt yếu trong đó các
phương pháp thông minh được áp dụng nhằm trích rút ra mẫu dữ liệu.
6. Đánh giá mẫu (Pattern Evaluation): trong bước này, các mẫu dữ liệu được
chiết xuất ra bởi phần mềm khai phá dữ liệu. Không phải bất cứ mẫu dữ liệu
nào cũng đều hữu ích, đôi khi nó còn bị sai lệch. Vì vậy, cần phải ưu tiên những
tiêu chuẩn đánh giá để chiết xuất ra các tri thức (Knowlege) hữu ích.
7. Biểu diễn tri thức (Knowledge Presentation): ở giai đoạn này các kỹ thuật
biểu diễn và hiển thị được sử dụng để đưa tri thức lấy ra cho người dùng.
1.3 Các hướng tiếp cận cơ bản và các hướng áp dụng trong KPDL.
Vấn đề khai phá dữ liệu có thể được phân chia theo lớp các hướng tiếp cận
chính sau:
- Phân loại và dự đoán (classification and prediction): là quá trình xếp một đối
tượng vào một trong những lớp đã biết trước. Ví dụ: phân loại các bệnh nhân
theo dữ liệu hồ sơ bệnh án, phân loại vùng địa lý theo dữ liệu thời tiết... Đối
với hướng tiếp cận này thường sử dụng một số kỹ thuật của học máy như cây
quyết định (decision tree), mạng nơron nhân tạo (neural network),...Hay lớp
bài toán này còn được gọi là học có giám sát (supervised learning).

-8-


- Phân cụm (clustering/ segmentation): sắp xếp các đối tượng theo từng cụm
dữ liệu tự nhiên, tức là số lượng và tên cụm chưa được biết trước. Các đối
tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong
cùng một cụm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong

các cụm khác nhau là nhỏ nhất. Lớp bài toán này còn được gọi là học không
giám sát hay học không thầy (unsupervised learning)
- Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng khá
đơn giản. Ví dụ: 80% sinh viên đăng ký học CSDL thì có tới 60% trong số
họ đăng ký học phân tích thiết kế hệ thống thông tin. Hướng tiếp cận này
được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, giáo
dục, tài chính và thị trường chứng khoán…
- Phân tích chuỗi theo thời gian (sequential/temporal patterns): cũng tương tự
như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự và tính thời
gian. Một luật mô tả mẫu tuần tự có dạng tiêu biểu X→Y, phản ánh sự xuất
hiện của biến cố X sẽ dẫn đến việc xuất hiện biến cố Y. Hướng tiếp cận này
được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán bởi
chúng có tính dự báo cao.
- Mô tả khái niệm (concept desccription and summarization): lớp bài toán này
thiên về mô tả, tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản.
1.4 Các ứng dụng thực tiễn của khai phá dữ liệu
KPDL là một lĩnh vực mới phát triển nhưng thu hút được khá nhiều nhà
nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Sau đây là một số lĩnh vực
ứng dụng thực tế điển hình của KPDL:
- Phân tích dữ liệu và hỗ trợ ra quyết định.
- Phân loại văn bản, tóm tắt văn bản, phân loại các trang Web và phân cụm
ảnh màu.

-9-


- Chuẩn đoán triệu chứng, phương pháp trong điều trị y học.
- Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong sinh học.
- Phân tích tình hình tài chính, thị trường, dự báo giá cổ phiếu trong tài chính,
thị trường và chứng khoán...

- Phân tích dữ liệu marketing, khách hàng.
- Điều khiển và lập lịch trình.
- Bảo hiểm.
- Giáo dục…
1.5 Các thách thức và khó khăn trong khai phá dữ liệu
KPTT và KPDL liên quan đến nhiều ngành, nhiều lĩnh vực trong thực tế, vì
vậy các thách thức và khó khăn ngày càng nhiều, càng lớn hơn. Sau đây là một số
các thách thức và khó khăn cần được quan tâm:
+ Các cơ sở dữ liệu lớn, các tập dữ liệu cần xử lý có kích thước cực lớn,
trong thực tế kích thước của các tập dữ liệu thường ở mức tera-byte (hàng ngàn
giga-byte).
+ Mức độ nhiễu cao hoặc dữ liệu bị thiếu.
+ Số chiều lớn.
+ Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không
còn phù hợp.
+ Quan hệ giữa các trường phức tạp.
KPDL là lĩnh vực đã và đang trở thành một trong những hướng nghiên cứu
thu hút được sự quan tâm của nhiều chuyên gia về CNTT trên thế giới. Trong
những năm gần đây, rất nhiều các phương pháp và thuật toán mới liên tục được
công bố. Điều này chứng tỏ những ưu thế, lợi ích và khả năng ứng dụng thực tế
to lớn của KPDL.

- 10 -


Chương 2: Bài toán Phân cụm
2.1 Hình thành bài toán phân cụm.
Mục đích chính của bài toán phân cụm là phân chia bộ số liệu ban đầu thành
các cụm chứa các số liệu có độ gần gũi nào đó. Việc phân cụm giúp ta tìm ra sự
giống và khác nhau giữa các đối tượng (số liệu) để rút ra các thông tin có ích và

cần thiết. Ý tưởng phân cụm xuất hiện trong nhiều lĩnh vực như:


Sinh học: thực vật, động vật.



Y học: các bệnh học.



Khoa học trái đất: Địa lý, địa chất



Khai phá dữ liệu, nhận dạng.

Bài toán phân cụm xuất hiện dưới nhiều tên gọi khác nhau tùy theo yêu cầu,
mục đích của việc sử dụng bài toán. Ngày nay bài toán phân cụm rất phong phú và
được sử dụng trong nhiều lĩnh vực. Đặc biệt trong các lĩnh vực xử lý thông tin như
chúng ta biết, thông tin trong thời đại bây giờ là rất lớn và ngày càng nhiều hơn.
Đòi hỏi là ta phải tìm ra giá trị tri thức từ kho thông tin đó, KPDL ra đời và KPDL
kết hợp với hệ mờ đang được phát triển để tăng giá trị tri thức rút ra từ bộ dữ liệu.
Bài toán phân cụm đang được phát triển theo hướng đó.
2.2 Bài toán phân cụm rõ.
Bài toán phân cụm rõ được phát biểu như sau:
Cho một tập dữ liệu X={x1,x2,….,xn}, với xi ∈ Rp , phân tách tập dữ liệu
thành c cụm : C1,C2,…,Cc rời nhau thỏa mãn điều kiện sau:



C



Ci ∩ C j = ∅ , ∀ i ≠ j

i

≠ ∅ ∀i = 1,..., c

c





Ci = X .

i =1

- 11 -

(2.1)


c: là số cụm sẽ phân thành, phải cho trước c.
Ci: vector tâm cụm, dùng đề chỉ cụm thứ i.
2.3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu.
Các kỹ thuật phân cụm có rất 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 [1]. Hiện nay, các kỹ thuật phân cụm có thể
phân loại theo các cách tiếp cận chính sau:
2.3.1 Phương pháp phân cụm phân hoạch.
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k nhóm cho
đến khi xác định số các cụm được thiết lập. Số các cụm được thiết lập là các đặc
trưng được lựa chọn trước. Phương pháp này là tốt cho việc tìm các cụm hình cầu
trong không gian Euclidean. Ngoài ra, phương pháp này cũng phụ thuộc vào
khoảng cách cơ bản giữa các điểm, để lựa chọn các điểm dữ liệu nào có quan hệ là
gần nhau với mỗi điểm khác và các điểm dữ liệu nào không có quan hệ hoặc có
quan hệ là xa nhau so với mỗi điểm khác. Tuy nhiên, phương pháp này không thể
xử lý các cụm có hình dạng kỳ quặc hoặc các cụm có mật độ các điểm dầy đặc. Các
thuật toán phân hoạch dữ liệu 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 đề phân cụm dữ liệu, do nó phải tìm kiếm tất cả các phân hoạch
có thể được. Chính vì vậy, trên thực tế 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ụm
cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu. 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 (Greedy) để tìm kiếm nghiệm.

- 12 -


2.3.2 Phương pháp phân cụm phân cấp.
Phương pháp này xây dựng một phân cấp trên cơ sở các đối tượng dữ liệu
đang xem xét. Nghĩa là 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ó hai cách tiếp
cận phổ biến của kỹ thuật này đó là:
+ Hoà nhập nhóm, thường được gọi là tiếp cận Bottom-Up
+ Phân chia nhóm, thường được gọi là tiếp cận Top-Down


Hình 2.1 Các chiến lược phân cụm phân cấp.
Thực tế áp dụng, có nhiều trường hợp 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 phân cụm dữ liệu cổ điển, hiện đã
có rất nhiều thuật toán cải tiến dựa trên hai phương pháp này đã được áp dụng phổ
biến trong KPDL.
2.3.3 Phương pháp tiếp cận dựa trên mật độ.
Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ xác định, mật
độ là số các đối tượng lân cận của một đối tượng dữ liệu theo một nghĩa nào đó.
Trong cách tiếp cận này, khi một 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 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 trên mật độ của
các đối tượng, để xác định các cụm dữ liệu có thể phát hiện ra các cụm dữ liệu với

- 13 -


hình thù bất kỳ. Kỹ thuật này có thể khắc phục được các phần tử ngoại lai hoặc giá
trị nhiễu rất tốt, tuy nhiên 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ả phân cụm.
2.3.4 Phương pháp phân cụm dựa trên lưới.
Kỹ thuật phân cụm dựa trên lưới thích hợp với dữ liệu nhiều chiều, dựa trên
cấu trúc dữ liệu lưới để phân cụm, phương pháp này chủ yếu tập trung áp dụng cho
lớp dữ liệu không gian. Mục tiêu của phương pháp này là lượng hoá dữ liệu thành
các ô tạo thành cấu trúc dữ liệu lưới. Sau đó, các thao tác phân cụm chỉ cần làm
việc với các đối tượng trong từng ô trên lưới chứ không phải các đối tượng dữ liệu.
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 ô. 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úng không trộn các ô,

đồng thời giải quyết khắc phục yêu cầu đối với dữ liệu nhiều chiều mà phương
pháp phân cụm dựa trên mật độ không giải quyết được. Ưu điểm của phân cụm 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.

Hình 2.2 Cấu trúc phân cấp
2.3.5 Phương pháp phân cụm 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
- 14 -


phân cụm phân hoạch hoặc phân cụm phân cấp, dựa trên cấu trúc hoặc mô hình này
để nhận dạng ra các phân hoạch. Phương pháp phân cụm dựa trên mô hình cố gắng
khớp giữa các 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 cách tiếp cận chính: mô hình thống kê và mạng nơron. Phương
pháp này gần giống với phương pháp phân cụm dựa trên mật độ, vì chúng phát
triển các cụm riêng biệt nhằm cải tiến các mô hình đã được xác định trước đó,
nhưng đôi khi nó không bắt đầu với một số cụm cố định và không sử dụng cùng
một khái niệm mật độ cho các cụm.
2.3.6 Phương pháp phân cụm dữ liệu có dữ liệu ràng buộc.
Sự phát triển của phân cụm dữ liệu không gian trên CSDL lớn đã cung cấp
nhiều công cụ tiện lợi cho việc phân tích thông tin địa lý, tuy nhiên hầu hết các
thuật toán này cung cấp rất ít cách thức cho người dùng để xác định các ràng buộc
trong thế giới thực cần phải được thoả mãn trong quá trình phân cụm. Để phân cụm
dữ liệu không gian hiệu quả hơn, các nghiên cứu bổ sung cần được thực hiện để
cung cấp cho người dùng khả năng kết hợp ràng buộc trong thuật toán phân cụm.


Hình 2.3 Các cách mà các cụm có thể đưa ra.

- 15 -


2.3.7 Phương pháp phân cụm mạng Kohonen.
Mạng Kohonen (hay còn gọi là Self – Organizing Maps viết tắt là: SOM) là
một kỹ thuật trực quan dữ liệu được phát minh bởi giáo sư Teuvo Kohonen, nó
giúp giảm số chiều (kích thước) của dữ liệu, qua đó giúp chúng ta hiểu được dữ
liệu có kích thước lớn [9].
Điểm nối bật của thuật giải SOM là nó sẽ chuyển các dạng quan hệ phức tạp,
thống kê rời rạc giữa các dữ liệu đa chiều (n chiều) về các quan hệ hình học trực
quan đơn giản với số chiều được rút gọn đi nhiều lần - thường là một hoặc hai
chiều. Về bản chất thuật giải được biết đến như là kỹ thuật nén dữ liệu dựa trên các
véctơ trọng số.
Một trong những khía cạnh thú vị nhất đó là: SOM là một dạng của thuật
toán để phân loại dữ liệu huấn luyện mà không cần bất cứ sự giám sát bên ngoài
nào - học không giám sát.
* Cấu trúc của mạng Kohonen
Mạng Kohonen hai chiều gồm có 2 lớp đó là lớp vào và lớp ra Kohonen.
Lớp vào (Input Layer): dùng để đưa dữ liệu huấn luyện vào mạng Kohonen. Kích
thước của lớp vào tương ứng với kích thước của mỗi mẫu học.
Trong mạng Kohonen hai chiều, các neural của lớp ra được sắp xếp trên một
mạng 2 chiều. Mạng này được gọi là lớp ra Kohonen. Tất cả các neural của lớp vào
đều được nối với các neural trên lớp ra Kohonen. Mỗi liên kết đầu vào và đầu ra
của mạng Kohonen tương ứng với một trọng số. Kích thước của véctơ trọng số
bằng kích thước của lớp vào.
2.4 Bài toán phân cụm mờ
2.4.1 Giới thiệu phân cụm mờ.
Nhiều vấn đề đã dẫn đến bài toán phân cụm mờ và ứng dụng được nói nhiều

trong bài toán phân cụm mờ là: nhận dạng ảnh, xử lý thông tin, phân loại khách
- 16 -


hàng trong ngân hàng. Đã có rất 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
vector thuộc đồng thời vào nhiều cụm, ngược lại theo hướng xác suất vector chỉ
được thuộc vào duy nhất chỉ một cụm. Ưu điểm của phân cụm mờ so với phân cụm
rõ được thể hiện trong thực tế khi mà không thể chỉ ra ranh giới rõ ràng giữa các
cụm. Phân cụm rõ bắt buộc các điểm chỉ được phép thuộc vào duy nhất một cụm.
Còn phân cụm mờ cho phép các điểm dữ liệu linh hoạt hơn, một điểm dữ liệu có
thể thuộc vào nhiều cụm và ta đưa ra 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.
Rất nhiều thuật toán phân cụm mờ đã được xuất phát từ việc cực tiểu giá trị
hàm trong dạng:
c

n

J = ∑∑ukjm d (x k ,v j )

(2.2)

j =1 k =1

d (xk , v j ) : là một độ đo không tương tự.
Giải bài toán


J (u, v) → min với ràng buộc sau:


0 ≤ u ≤ 1
kj

 c
 ∑ u kj = 1
 j =1
n

 0 ≤ ∑ u kj ≤ n
k =1


∀ j = 1, 2, .., c
∀ k = 1, 2, .., n

Xây dựng hàm Lagrange:

- 17 -

(2.3)


 c

L(u, v) = ∑∑ u d ( xk , v j ) −∑ λk  ∑ ukj −1
j =1 k =1
k =1

 j =1

c

n

n

m
kj

(2.4)

Lấy đạo hàm L theo ukj ta có:

∂ L (u , λ )
= mu kjm −1d ( xk , v j ) − λk
∂u kj
Cho

(2.5)

∂ L (u , λ )
= 0 và kết quả với từng ukj ta có:
∂ u kj



λk
ukj = 

 md ( x , v ) 
k
j 


1
m−1

, j = 1,..., c, k=1,..,n.

(2.6)

c

Kết hợp với điều kiện



λk



j =1  md ( x k , v j ) 
c

∑u

kj

j =1


= 1 ta có:

1
m −1

=1

Hoặc
c

λk = m ∑ d ( xk , v j )

(2.7)

j =1

Thay

λk

vào công thức (2.6) ta có:



d
(
x
,
v

)

k
i 

i =1

ukj = 
 d ( xk , v j ) 




c

1
m −1

1

⇔ ukj =

 d ( xk , v j ) 



i =1  d ( xk , vi ) 
c

- 18 -


1
m −1

(2.8)


Với k=1,…n và j=1,..,c
Tiếp theo ta tính các tâm cụm vj. Sử dụng hướng giải Gradient J theo vj và
cho phương trình bằng 0 ta có:

∂J (u, v) n m ∂d ( xk , v j )
= ∑ ukj
= 0,
v
∂v j

k =1
j

k = 1,....n

(2.9)

Từ phương trình trên ta chưa thể tính ngay được vj, ta sẽ sử dụng thuật toán
lặp đi lặp lại, sau đó với kết quả thu được tiến hành đánh giá U và V.
Generalized Fuzzy Algorithmic Scheme (GFAS)
• Chọn vj (0) khởi tạo đánh giá cho vj , j=1,…,c.
• t=0
• Repeat

- For i=1 to N
*For j=1 to m

1

ukj (t) =

1
m−1

 d(xk , vj (t) 



i=1  d(xk , vi (t) 
c

*End(For –j)
- End(For –i)
- t=t+1
- For j=1 to c
* Cập nhật lại giá trị : giải phương trình:
n



u kmj ( t − 1)

k =1


∂ d ( xk ,v j )
∂v j

theo vj và bằng hệ vj(t)
- End (for –j)

- 19 -

= 2


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 phân 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ự (dissimilarity) d ( xk , v j ) có thể là khoảng cách giữa 2 điểm. Có 2 lựa chọn
phổ biến cho d ( xk , v j ) là:


d ( xk , v j ) = ( xk − v j )T A( xk − v j )

(2.10)

trong đó A là ma trận đối xứng, xác định dương và khoảng cách Minkowski:


d ( xk , v j ) =  ∑| xki − v ji |
 i =1

l

p





1
p

(2.11)

trong đó p là số nguyên dương, xik, vjk là thành phần thứ k của xi và vj với

d ( xk , v j )

tính theo công thức (2.10) thay vào thuật toán GFAS


∂J ( xk , v j )
∂v j

= 2A(v j − xk ) thay vào công thức ta có :

n

∑u
k =1

m
kj

(t − 1)2 A(v j − xk ) = 0 , từ đó tính giá
n

∑u
v j (t ) =

m
kj

vj

(t − 1) xk

k =1
n

∑ ukjm (t − 1)


(2.12)

k =1

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<+∞:

- 20 -


∂d ( x k , v j )
∂v jr

(v jr − xkr ) p −1

=

n

1−

(∑ | xks − v js | p )

1
p

, r = 1,.., l


(2.13)

s =1

thay vào trong công thức ta có:

(v jr − xkr ) p −1

n

∑u

m
kj

(t − 1)

n

1−

(∑ | xks − v js | p )

k =1

1
p

= 0, r = 1,..., l


s =1

Ta có l phương trình phi tuyến, l ẩn là tọa độ của vj, có thể giải bằng công thức
Gauss_Newton hay Levenberg-Marquardt. Kết quả của thuật toán được biết đến
như là pFCM, với p là hằng số Minkowski.
2.4.2 Thuật toán Fuzzy C_Mean (FCM)
Trong luận văn này chúng ta tập trung sử dụng thuật toán FCM để nghiên cứu
phân 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:
p
Cho tập dữ liệu X={x1,x2,….,xn}, n ∈ N, với xk ∈R gọi V = (v1,v2,...,vC) là

các trung tâm cụm. Hàm mục tiêu có dạng như sau:
c

J =

n

∑∑u

m
kj

|| x k − v j ||2

(2.14)

j =1 k =1


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.
c

n

j =1

k =1

U = {ukj ∈ (0,1) | ∑ ukj = 1, ∀k = 1,.., n,0 < ∑ ukj
- 21 -


Bài toán phân 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:


0 ≤ u ≤ 1
kj

 c
 ∑ u kj = 1
 j =1
n

 0 ≤ ∑ u kj ≤ n

k =1


∀ j = 1, 2, .., c



∀ k = 1, 2,.., n .

Để giải bài toán này ta tiến hành đạo hàm J theo U và V.
c

n

J = ∑ ∑ u kjm ( xk − v j ) t ( xk − v j )
j =1 k =1
c

n

J = ∑ ∑ u kjm ( xk t xk − v j t xk − xk t v j + v j t v j )
j =1 k =1

với j=1,..,c

n

J (' v j ) = ∑ u kjm ( − 2 xk + 2 v j ) = 0
k =1


n

n

⇔ ∑u x = ∑ukjmv j
m
kj k

k =1

k =1

với j=1,..,c

n

∑u
⇒ vj =

m
kj

xj

k =1
n

∑u

,


j = 1, 2,.., c

m
kj

k =1

Tìm ukj:
Xây dựng hàm Lagrange:

- 22 -

(2.16)


 c

L(u) = ∑∑u || xk − vj || +∑λk  ∑ukj −1
j =1 k =1
k =1
 j=1

c

n

n

2


m
kj

(2.17)

Lấy đạo hàm L theo ukj ta có

∂ L (u , λ )
= mu kjm −1 || xk − v j ||2 − λk
∂u kj

k = 1,…,n; j = 1,..,c

∂ L (u , λ )
= 0 và kết quả với từng ukj ta có:
Cho
∂ u kj



λk
ukj = 
 m || x − v ||2 
k
j



1

m−1

, j = 1,..., c
c

Kết hợp với điều kiện



λk



2 

j = 1  m || x k − v j || 
c

∑u

kj

j =1

= 1 ta có:

1
m −1

=1


hoặc

c

λ k = m ∑ || x k − v j ||2
j =1

Thay λ

k

vào công thức, ta có:


2
 ∑ || xk − vi ||
j =1
u kj = 
 || xk − v j ||2


c









1
m −1

1

⇔ u kj =

 || xk − v j || 



i =1  || x k − vi || 
c

2
m −1

(2.18)

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
- 23 -


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):
n

∑u
vj =

m
kj

xk

k =1
n

với j=1,..,c.

∑ u kjm
k =1

3.

Cập nhật lại U(k), U(k+1)

1

ukj =


với k=1,..,n; j=1,..,c
 || xk − v j || 



x
v
||

||
i =1 
k
i 
Nếu ||U(k+1)- U(k)|| < ε thì dừng, sai thì quay lại bước 2
c

4.

2
m−1

Thuật toán trên gồm 4 bước, trong đó bước đầu tiên, bước 1 khá quan trọng.
Do việc khởi tạo ma trận U là ngẫu nhiên, thỏa mãn các điều kiện ràng buộc nên
nếu khởi tạo tốt thì thời gian kết thúc thuật toán sẽ nhanh. Việc khởi tạo tốt tức là
ma trận khởi tạo gần với ma trận phân hoạch kết quả theo sai số cho trước. Bước 2
và bước 3, sau khi có ma trận khởi tạo ta tính vector tâm cụm, từ vector tâm cụm ta
tính lại ma trận phân hoạch mới. Bước 4 kiểm tra điều kiện ta sử dụng chuẩn ma
trận bất kỳ để đánh giá sai số của ma trận phân hoạch mới với ma trận phân hoạch
bước trước nếu thỏa mãn sai số


ε

cho trước thì thuật toán sẽ dừng.

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 phân 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
- 24 -


vào là tùy ý. Nếu như không có mục đích phân 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.
Thuật toán phân cụm mờ FCM đã có rất nhiều biến thể, nhiều hướng nghiên
cứu khác nhau. Nhưng trong luận văn này chúng ta sẽ đi theo hướng phân cụm mờ
có ngữ cảnh. Một hướng đi mới có ý nghĩa thực tiễn cao.
2.4.3 Phân cụm mờ có ngữ cảnh
Sử dụng thuật toán FCM để phân cụm đã giúp linh hoạt hơn trong việc xử lý
thông tin so với sử dụng thuật toán C_mean. Nhưng ta nhận thấy khi sử dụng thuật
toán FCM thì tất cả các trường (thuộc tính) của dữ liệu đều có vai trò như nhau.
Nói cách khác FCM có vô hướng, thuật toán có xu hướng phân bố đều theo tất cả
các trường dữ liệu. Trong phân cụm nói chung và phân cụm mờ nói riêng việc tiếp
cận thông tin theo một vài thuộc tính nhất định, được hiểu như là thuộc tính quan
trọng. Việc sử dụng các thuộc tính quan trọng này để phân chia các cụm sẽ cho
chúng ta kết quả mang nhiều ý nghĩa hơn.
Witold Pedrycz đã đưa ra khái niệm là phân cụm mờ có điều kiện [10].

Hướng điều kiện của cơ chế phân cụm được giới thiệu trong thuật toán bởi việc cân
nhắc giá trị điều kiện (ngữ cảnh) giả sử gọi là f1, f2,..., fn trên các phần tương ứng.
Trong đó

fk

mô tả mức độ liên quan của dữ liệu thứ k vào ngữ cảnh đang xét. Ý

tưởng của thuật toán là đặt thêm biến ngữ cảnh Y và định nghĩa tập mờ của ngữ
cảnh thông qua ánh xạ :

A :Y → [ 0 ,1]

yk a fk = A(yk )
- 25 -

(2.19)


×