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

TÌM HIỂU THUẬT TOÁN SOM TRONG GOM CỤM DỮ LIỆU

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 (1022.41 KB, 32 trang )

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTTQM
………… o0o…………
BÁO CÁO THU HOẠCH MÔN HỌC
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Đề tài:
TÌM HIỂU THUẬT TOÁN SOM TRONG GOM
CỤM DỮ LIỆU
GVHD: PGS.TS. PhúcĐỗ
HVTH: Nguy n V n Chungễ ă
MÃ SỐ: CH1101070
TP.Hồ Chí Minh, N m 201ă 2
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
LỜI MỞ ĐẦU

Dữ liệu là nguồn tri thức vô giá của con người nếu được khai thác hiệu quả, trong thời
đại công nghệ ngày càng phát triển hiện nay thông tin dữ liệu ngày càng phình to, đó
chính là nguồn tài nguyên thông tin đáng để được khai thác, đi đôi với nó là các khoa
học công nghệ liên quan đến khai thác dữ liệu cũng phát triển theo, chính vì vậy
ngành khai thác dữ liệu đặc biệt là gom cụm dữ liệu sẽ còn phát triển mạnh hơn nữa
trong tương lai.
Em xin chân thành cảm ơn PGS.TS. Đỗ Phúc – Giảng viên môn học Nhà kho dữ liệu
và khai thác dữ liệu- đã truyền đạt những kiến thức vô cùng quý báu, xin chân thành
cám ơn ban cố vấn học tập và ban quản trị chương trình đào tạo thạc sĩ Công nghệ
thông tin qua mạng của Đại Học Quốc Gia TPHCM đã tạo điều kiện về tài liệu tham
khảo để em có thể hoàn thành môn học này.
Chân thành cám ơn!
Nguyễn Văn Chung
- 1 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
MỤC LỤC


LỜI MỞ ĐẦU 1
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU 2
PHẦN I :
TỔNG QUAN KHAI THÁC DỮ LIỆU 3
I. GIỚI THIỆU KHAI THÁC DỮ LIỆU 3
I.1. Tại sao cần Khai thác dữ liệu : 3
I.2. Khai thác dữ liệu là gì: 3
I.3. Quá trình khai thác dữ liệu: 4
I.4. Các phương pháp khai thác dữ liệu: 5
I.5. Ứng dụng của khai thác dữ liệu: 6
I.6. Một số thách thức đặt ra cho việc khai phá dữ liệu 6
II. GOM CỤM DỮ LIỆU 7
II.1. Giới thiệu: 7
II.2. Các kiểu dữ liệu trong phép phân cụm 7
II.3. Phân loại các phương pháp phân cụm chính 12
PHẦN II : THUẬT TOÁN SOM 15
I. Tổng quan mạng Nơron 15
I.1. Giới thiệu: 15
I.2. Kiến trúc tổng quát mạng nơron: 15
I.3. Quá trình xử lý thông tin của một Mạng Nơron 16
I.4. Một số kiến trúc của Mạng Nơron 18
I.5. Quá trình học (Learning Processing) của Mạng nơron: 19
II. Thuật toán SOM (Self Organizing Map) 20
II.1. Giới thiệu: 20
II.2. Kiến trúc của SOM 20
II.3. Thuật toán SOM: 21
III. CÀI ĐẶT SOM: 25
III.1. Màn hình chính: 25
III.2. Dữ liệu đầu vào 26
III.3. Code chương trình: 26

KẾT LUẬN 30
- 2 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
PHẦN I :
TỔNG QUAN KHAI THÁC DỮ LIỆU
I. GIỚI THIỆU KHAI THÁC DỮ LIỆU
I.1. Tại sao cần Khai thác dữ liệu :
Khoảng hơn một thập kỷ trở lại đây, lượng thông tin được lưu trữ trên các
thiết bị điện tử (đĩa cứng, CD-ROM, băng từ ) không ngừng tăng lên. Sự tích lũy dữ
liệu này xảy ra với một tốc độ bùng nổ. Người ta ước đoán rằng lượng thông tin trên
toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó sốlượng cũng như kích cỡ của
các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng. Nói một cách hình
ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức. Câu hỏi đặt ra là
liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ
đi” ấy không?
“Necessity is the mother of invention”- Data Mining ra đời như một hướng giải
quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên. Khá nhiều định nghĩa về Data Mining và
sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng Data Mining như là một
công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu được
tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó.
I.2. Khai thác dữ liệu là gì:
Khai thác dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc
hay khai thác tri thức từ một lượng lớn dữ liệu. Một ví dụ hay được sử dụng là là việc
khai thác vàng từ đá và cát, Dataming được ví như công việc "Đãi cát tìm vàng" trong
một tập hợp lớn các dữ liệu cho trước. Thuật ngữ Dataming ám chỉ việc tìm kiếm một
tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô. Có nhiều thuật ngữ hiện
được dùng cũng có nghĩa tương tự với từ Datamining như Knowledge Mining (khai
thác tri thức), knowledge extraction (chắt lọc tri thức), data/patern analysis (phân tích
dữ liệu/mẫu), data archaeoloogy (khảo cổdữliệu), data dredging (nạo vét dữ liệu)
• Định nghĩa:

Khai thác dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động khai thác
và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và
phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó.
- 3 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
I.3. Quá trình khai thác dữ liệu:
 Trích chọn dữ liệu: Đây là bước trích chọn những tập dữ liệu cần được
khai thác từ các tập dữ liệu lớn ban đầu theo một số tiêu chí nhất định.
 Tiền xử lý dữ liệu: Đây là bước làm sạch dữ liệu (xử lý những dữ liệu
không đầy đủ, nhiễu, không nhất quán, ), rút gọn dữ liệu (sử dụng hàm
nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy
mẫu, ), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào
entropy, dựa vào phân khoảng, ). Sau bước này, dữ liệu sẽ nhất quán, đầy
đủ, được rút gọn và được rời rạc hóa.
 Biến đổi dữ liệu: Đây là bước chuẩn hóa và làm mịn dữ liệu để đưa dữ
liệu về dạng thuận lợi nhất nhằm phục vụ quá trình khai thác ở bước sau.
 Khai thác dữ liệu: Đây là bước áp dụng những kỹ thuật phân tích (như
các kỹ thuật của học máy) nhằm để khai thác dữ liệu, trích chọn được
những mẫu thông tin, những mối liên hệ đặc biệt trong dữ liệu. Đây được
xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình
KDD.
 Đánh giá và biểu diễn tri thức: Những mẫu thông tin và mối liên hệ trong
dữ liệu đã được khám thác ở bước trên được biến đổi và biểu diễn ở một
dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, Đồng
thời bước này cũng đánh giá những tri thức khám phá được theo những
tiêu chí nhất định.
- 4 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
I.4. Các phương pháp khai thác dữ liệu:
Kỹ thuật khai thác dữ liệu thường được chia làm 2 nhóm chính:

• Kỹ thuật mô tả:
Các nhiệm vụ mô tả về ccác tính chất hoặc các đặc tính chung của dữ liệu
trong CSDL hiện có. Các kỹ thuật này gồm có: phân cụm(clustering), tóm tắt
(summerization), trực quan hóa (visualiztion), phân tích sự phát triển và độ lệch
(Evolution and deviation analysis), phân tích luật kết hợp(association rules analysis)

• Kỹ thuật dự đoán:
Có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời.
Các kỹ thuật này gồm: Phân lớp (classification), hồi quy (regression)…. Với hai đích
chính của khai thác dữ liệu là Dự đoán (Prediction) và Mô tả (Description), người ta
thường sử dụng các kỹ thuật sau cho khai thác dữ liệu:
 Phân lớp và dự đoán (classification and prediction): Là việc xếp các
đối tượng vào những lớp đã biết trước. Ví dụ, phân lớp các bệnh nhân,
phân lớp các loài thực vật 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) Phân lớp và dự đoán còn được gọi là học
có giám sát.
 Phân cụm (clustering / segmentation): Là việc xếp các đối tượng theo
từng cụm tự nhiên.
 Luật kết hợp (association rules): Là việc phát hiện các luật biểu diễn tri
thức dưới dạng khá đơn giản. Ví dụ: “70% nữ giới vào siêu thị mua
phấn thì có tới 80% trong số họ cũng mua thêm son”.
 Phân tích hồi quy (regression analysis): Là việc học một hàm ánh xạ
từ một tập dữ liệu thành một biến dự đoán có giá trị thực. Nhiệm vụ của
phân tích hồi quy tương tự như của phân lớp, điểm khác nhau là ở chỗ
thuộc tính dự báo là liên tục chứ không phải rời rạc.
 Phân tích các mẫu theo thời gian (sequential/temporal patterns):
Tương tự như khai phá luật kết hợp nhưng có quan tâm đến tính thứ tự
theo thời gian.
- 5 -

NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
 Mô tả khái niệm (concept description and summarization): Thiên về
mô tả, tổng hợp và tóm tắt các khái niệm. Ví dụ tóm tắt văn bản.
Hiện nay, các kỹ thuật khai thác dữ liệu có thể làm việc với rất nhiều kiểu dữ liệu
khác nhau. Một số dạng dữ liệu điển hình là: CSDL quan hệ, CSDL đa chiều
(Multidimensional Data Structures), CSDL giao tác, CSDL quan hệ hướng đối tượng,
dữ liệu không gian và thời gian, CSDL đa phương tiện, dữ liệu văn bản và web
I.5. Ứng dụng của khai thác dữ liệu:
Khai thác dữ liệu tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều
sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn
của nó. Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:
 Phân tích dữliệu và hỗ trợ ra quyết định (data analysis & decision support)
 Điều trị y học (medical treatment)
 Text mining & Web mining
 Tin-sinh (bio-informatics)
 Tài chính và thịtrường chứng khoán (finance & stock market)
 Bảo hiểm (insurance)
 Nhận dạng (pattern recognition)
 Máy tìm kiếm (web)
 Và nhiều lĩnh vực khác.
I.6. Một số thách thức đặt ra cho việc khai phá dữ liệu
 Các cơ sở dữ liệu lớn.
 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ôngcòn
phù hợp.
 Dữ liệu bị thiếu hoặc nhiễu.
 Quan hệ giữa các trường phức tạp.
 Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
 Tích hợp với các hệ thống khác…
- 6 -

NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
II. GOM CỤM DỮ LIỆU
II.1. Giới thiệu:
Gom cụm dữ liệu (Data Clustering) hay gom cụm, cũng có thể gọi là phân tích
cụm, phân tích phân đoạn, phân tích phân loại, là quá trình nhóm một tập các đối
tượng thực thể hay trừu tượng thành lớp các đối tượng tương tự. Một cụm là
một tập hợp các đối tượng dữ liệu mà các phần tử của nó tương tự nhau cùng trong
một cụm và phi tương tự với các đối tượng trong các cụm khác. Một cụm các đối
tượng dữ liệu có thể xem như là một nhóm trong nhiều ứng dụng.
II.2. Các kiểu dữ liệu trong phép phân cụm
Các giải thuật phân cụm dựa trên bộ nhớ chính thao tác trên một trong hai cấu
trúc dữ liệu sau:
 Ma trận dữ liệu (hay cấu trúc: đối tượng x biến):
Được đại diện bởi n đối tượng, ví dụ như người với p biến (còn được gọi là các
phép đo hay các thuộc tính) như tuổi, chiều cao, giới tính, v.v Cấu trúc có dạng
bảng quan hệ, hay ma trận n x p (n đối tượng x p biến).
 Ma trận không tương đồng (hay cấu trúc đối tượng x đối tượng):
Nó lưu trữ một tập hợp các trạng thái (về mặt không gian, thời gian, ) cho tất
cả n cặp đối tượng. Nó thường được biểu diễn bởi bảng n x n
với d(i,j) được đo bởi sự khác nhau hay không tương đồng giữa các đối tượng ivà j.
Do vậy d(i,j) = d(j,i) và d(i,i) = 0, ta có ma trận trên Các phép đo không tương đồng
được thảo luận trong suốt phần này. Ma trận dữ liệu thường được gọi là ma trận 2-
mode (2 chế độ), trong khi đó ma trận không tương đồng được gọi là ma trận 1-mode
(1 chế độ). Nhiều giải thuật phân cụm thao tác trên ma trận không tương đồng. Nếu
- 7 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
dữliệu được đưa ra dưới dạng ma trận dữ liệu thì nó có thể được chuyển đổi sang ma
trận không tương đồng trước khi áp dụng các giải thuật phân cụm.
Cụm các đối tượng được tính toán dựa trên sựtương đồng hay không tương
đồng của chúng. Trong phần này, trước tiên ta thảo luận chất lượng phân cụm có thể

được đánh giá dựa trên các hệ số tương quan - có thể chuyển đổi thành các hệ số
không tương đồng hay tương đồng. Sau đó ta thảo luận làm thế nào để tính độ không
tương đồng của các đối tượng được mô tả bởi các biến dựa trên khoảng cách, các biến
nhị phân, các biến dựa trên tên, có thứ tựvà tỷ lệ(ratio) hay sự kết hợp của các kiểu
biến này.
• Độ không tương đồng và tương đồng: Đo chất lượng phân cụm
Phép đo của các hệ số không tương đồng hay tương đồng được dùng để đo
chất lượng phân cụm. Độ không tương đồng d(i,j) là một số không âm, nó gần bằng 0
khi i, j gần nhau và sẽ lớn hơn khi chúng khác biệt nhau nhiều hơn.
Không tương đồng có được bằng các đánh giá chủ quan đơn giản bởi một tập
các observer (quan sát viên) hay các chuyên gia trên các đối tượng khác nhau nào đó.
Sự không tương đồng được tính toán từ các hệ số tương quan. Cho trước n đối tượng
đểphân cụm, tương quan Pearson product-moment giữa hai biến f và g được định tại
đó f và g là các biến mô tả các đối tượng, m
f
và m
g
là các giá trị trung bình của f và g
và x
if
là giá trịcủa f cho đối tượng thứ i, x
ig
là giá trị của g cho đối tượng thứ i.
(2.1)
Công thức chuyển đổi được dùng để tính hệ số không tương quan d(f,g) từ các hệ số
tương quan R(f,g):
(2.2)
Các biến với một tương quan dương cao sẽ ấn định hệ số không tương đồng
gần bằng 0. Các biến với một tương quan âm mạnh sẽ ấn định hệ số không tương
đồng gần bằng 1 (nghĩa là các biến rất khác nhau). Trong nhiều ứng dụng, người dùng

thích dùng công thức chuyển đổi (2.3) hơn, tại đó các biến với tương quan âm hay
dương cao ấn định cùng một giá trị tương đồng cao.
(2.3)
- 8 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Người dùng có thể sử dụng hệ số tương đồng s(i,j) thay cho hệ số không tương
đồng. Công thức (3.6) được dùng để chuyển đổi giữa hai hệ số.
(2.4)
Lưu ý rằng không phải tất cảcác biến đều cần trong phép phân tích cụm.
Một biến là vô nghĩa với một phân cụm cho trước thì tính hữu ích sẽ ít hơn, do vậy nó
ẩn đi thông tin hữu ích đã cung cấp bởi các biến khác. Ví dụ, số điện thoại của một
người thường vô ích trong phân cụm người theo mô tả về họ như tuổi, chiều cao, cân
nặng, v.v Kiểu biến "rác" như vậy nên có trọng số 0, trừ khi nó được phép phân cụm
xử lý.
• Các biến tỷ lệ khoảng cách
Các biến tỷ lệ khoảng cách là các phép đo liên tục của một tỷ lệ tuyến tính thô.
Các mẫu điển hình như trọng lượng và chiều cao, sự kết hợp vĩ độ và kinh độ (ví dụ
khi phân cụm nhà) và nhiệt độ khí hậu. Đơn vị phép đo đã dùng có thể ảnh hưởng đến
phép phân cụm. Ví dụ, thay đổi các đơn vị đo, như thay đổi từ meter tới inche cho
chiều cao hay từ kilogram tới pound cho trọng lượng, có thể dẫn tới một cấu trúc
phân cụm rất khác biệt.
Nhìn chung, biểu diễn một biến dưới các đơn vị nhỏ hơn sẽ dẫn tới một phạm
vi lớn hơn cho biến đó và do vậy một hiệu ứng lớn hơn trên kết quả cấu trúc phân
cụm. Để tránh sự phụ thuộc vào việc lựa chọn đơn vị đo, dữ liệu nên được chuẩn hoá.
Chuẩn hoá các phép đo cố gắng mang lại cho tất cảcác biến một trọng số như nhau.
Tuy nhiên, trong nhiều ứng dụng, người ta có thể cố ý muốn mang tới trọng số lớn
hơn cho một tập các biến nào đó so với các biến khác. Ví dụ, khi phân cụm các cầu
thủ chơi bóng rổ, người ta có thể thích mang tới trọng số hơn cho biến chiều cao.
Đểchuẩn hoá các phép đo, một lựa chọn đó là chuyển đổi các phép đo gốc
sang các biến không đơn vị(unitless). Cho trước các phép đo đối với biến f. Điều này

có thể được biểu diễn như sau:
 Tính trung bình độ lệch tuyệt đối s
f
(2.5)
với x
1f
, , x
nf
là nphép đo của f, m
f
là giá trị trung bình của f, tức là
(2.6)
- 9 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
 Tính phép đo chuẩn hoá, gọi là z-score như sau:
(2.7)
Thuận lợi của việc sửdụng độlệch tuyệt đối trung bình đó là z-scores của các
outlier không trở nên quá nhỏ, do vậy các outlier vẫn dễ nhận thấy. Tuy nhiên lựa
chọn việc chuẩn hoá và biểu diễn chuẩn hoá như thế nào là thuộc về phía người dùng.
Sau khi chuẩn hoá hay không cần chuẩn hoá trong một số ứng dụng nào đó, ta
tính độ không tương đồng (hay tương đồng) giữa các đối tượng. Cho trước các biến tỷ
lệ khoảng cách, dựa trên khoảng cách giữa từng cặp đối tượng. Có một số tiếp cận để
định nghĩa khoảng cách giữa các đối tượng. Phép đo khoảng cách phổ biến nhất là
khoảng cách Euclidean, nó được định nghĩa như sau:
(2.8)
với i = (x
i1
, x
i2
, , x

ip
) và j=(x
j1
,x
j2
, ,x
jp
) là hai đối tượng dữ liệu p chiều. Một
metric nổi tiếng khác là khoảng cách Mahattan (hay city block) được định nghĩa bởi:
(2.9)
• Các biến nhị phân
Phần này mô tả làm thế nào để tính toán độ không tương đồng giữa các đối
tượng được mô tả bởi các biến nhị phân đối xứng hoặc không đối xứng. Một biến nhị
phân chỉ có hai trạng thái 0 hay 1, với 0 là biến vắng mặt, 1 là biến có mặt. Cho trước
biến hút thuốc mô tả một bệnh nhân, ví dụ, 1 chỉ rằng bệnh nhân hút thuốc, 0 cho biết
bệnh nhân không hút thuốc. Xử lý các biến nhị phân giống như các biến tỷ lệ khoảng
cách có thể dẫn tới lạc lối các kết quả phân cụm. Bởi vậy, các phương pháp chỉ định
cho dữ liệu nhị phân cần phải tính toán độ không tương đồng.
Một tiếp cận để tính toán ma trận không tương đồng từ dữ liệu nhị phân đã
cho. Nếu tất cảcác biến nhị phân được xem nhưlà có cùng trọng số, ta có bảng ngẫu
nhiên 2 x 2, bảng 3.1, với a là số các biến bằng 1 cho cảhai đối tượng i và j, b là số
các biến bằng 1cho đối tượng i và 0 cho đối tượng j, clà số các biến bằng 0 cho đối
tượng i và 1 cho đối tượng j, d là số các biến bằng 0 cho cả đối
tượng ivà j. Tổng số lượng của các biến là p, p= a+ b+ c+ d.
- 10 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Bảng 3.1: Bảng ngẫu nhiên cho các biến nhị phân
Một biến nh ịphân là đối xứng nếu như cả hai trạng thái của nó có cùng trị giá
và mang cùng trọng số, do vậy không có sự ưu tiên nên kết quả mã hoá là 0 hay 1.
• Các biến tên, có thứ tự và dựa trên tỷ lệ

Phần này thảo luận làm thế nào để tính độ không tương đồng giữa các đối
tượng được mô tả bởi các biến tên, có thứ tự và dựa trên tỷ lệ.
 Các biến tên:
Biến tên là sự suy rộng của biến nhị phân, trong đó nó có thể mang nhiều hơn
hai trạng thái. Ví dụ, bản đồ màu là một biến tên có thể có 5 trạng thái: đỏ, vàng, xanh
lá cây, hồng và xanh da trời. Cho số các trạng thái của một biến tên là M. Các trạng
thái có thể được chỉ ra bởi các ký tự, các biểu tượng hay một tập các sốnguyên
như1,2, ,M. Lưu ý rằng các số nguyên như thế này chỉ được dùng cho dữ liệu điều
khiển và không đại diện cho bất kỳ một trật tự cụ thể nào. Độ không tương đồng giữa
hai đối tượng ivà jcó thể được tính bằng cách sử dụng tiếp cận đối sánh đơn giản như
trong (3.2):
(3.2)
với m là số lượng các đối sánh (tức là số lượng các biến mà I và j có cùng trạng thái)
và p là tổng số của các biến. Các trọng số có thể được ấn định để làm tăng hiệu quả
của m, hay ấn định trọng số lớn hơn cho các đối sánh trong các biến có sốlượng các
trạng thái lớn hơn.
 Các biến có thứtự:
Biến có thứ tự rời rạc tương tự như một biến tên, loại trừ M trạng thái của giá
trị có thứ tự được sắp xếp theo một trật tự có nghĩa. Các biến có thứ tự rất
hữu ích cho việc thể hiện các đánh giá chất lượng một cách chủ quan mà không thể
đo được bằng cách khách quan. Một biến có thứ tự liên tục trông giống như một tập
dữ liệu liên tục với một tỷ lệ chưa biết, đó là mối quan hệcó thứ tự của các giá trị, là
- 11 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
yếu tố cần thiết nhưng không phải là tính chất trọng yếu thực sự của chúng. Ví dụ, sắp
xếp quan hệ trong một môn thể thao đặc thù thường cần thiết hơn các giá trịthực tếcủa
một độ đo đặc thù. Các biến có thứtựcó thể cũng đạt được từ việc rời rạc hoá các con
số tỷ lệ khoảng cách bằng cách chia phạm vi giá trịvào trong một sốcác lớp hữu hạn.
Các giá trịcủa một biến có thứ tựcó thể được ánh xạ tới các hạng (rank). Giả sử rằng
một biến có thứ tự f có M

f
trạng thái. Các trạng thái được sắp xếp định nghĩa có thứ tự
là 1, ,M
f
.
 Các biến dựa trên tỷlệ:
Một biến dựa trên tỷ lệ làm một phép đo dương trên một tỷ lệ không tuyến
tính, như tỷ lệ số mũ, xấp xỉ công thức dưới đây:
với A và B là các hằng số dương.
Có ba phương pháp sử dụng các biến dựa trên tỷlệ để việc tính độ không tương
đồng giữa các đối tượng.
1. Xử lý các biến dựa trên tỷ lệ giống như các biến tỷ lệ khoảng cách. Tuy
nhiên điều này không phải luôn là lựa chọn tốt bởi tỷ lệ có thể bị bóp méo.
2. Áp dụng phép biến đổi loga cho một biến dựa trên tỷ lệ f có giá trị x
if
cho
đối tượng i bằng cách sử dụng công thức y
if
= log(x
if
). Các giá trị y
if
được xử lý như
giá trị tỷ lệ khoảng cách trong mục 3.2.2. Lưu ý rằng đối với nhiều biến dựa trên tỷ lệ,
ta cũng có thể áp dụng phép biến đổi log hay các phép biến đổi khác, tuỳ thuộc vào
định nghĩa và ứng dụng.
3. Xử lý x
if
như dữ liệu có thứ tự liên tục và xử lý các hạng của chúng như giá
trị tỷ lệ khoảng cách. Hai phương pháp sau có hiệu quả nhất, mặc dầu việc lựa chọn

phương pháp để dùng còn phụ thuộc vào ứng dụng cho trước.
II.3. Phân loại các phương pháp phân cụm chính
Hiện có một sốlượng lớn các giải thuật phân cụm trong các tài liệu. Việc lựa
chọn giải thuật phân cụm tuỳthuộc vào kiểu dữliệu cho sẵn, mục đích riêng và ứng
dụng. Nếu như phép phân tích cụm được dùng nhưmột công cụ mô tả hay thăm dò thì
có thể thử một vài giải thuật trên cùng dữ liệu để xem xem dữ liệu có thể thể hiện
được điều gì.
Nhìn chung, các phương pháp phân cụm chính được phân thành các loại sau:
• Các phương pháp phân chia:
- 12 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Cho trước một cơ sở dữ liệu với n đối tượng hay các bộ dữ liệu, một phương
pháp phân chia được xây dựng để chia dữ liệu thành k phần, mỗi phần đại diện cho
một cụm, k ≤ n. Đó là phân loại dữ liệu vào trong k nhóm, chúng thoả các yêu cầu
sau: (1) Mỗi nhóm phải chứa ít nhất một đối tượng, (2) Mỗi đối tượng phải thuộc về
chính xác một nhóm. Lưu ý rằng yêu cầu thứ 2 được nới lỏng trong nhiều kỹ thuật
phân chia mờ sẽ được thảo luận ngắn gọn trong chương này. Cho trước k là số lượng
các phần chia cần xây dựng, phương pháp phân chia tạo lập phép phân chia ban đầu.
Sau đó nó dùng kỹthuật lặp lại việc định vị, kỹ thuật này cố gắng cải thiện sự phân
chia bằng cách gỡ bỏcác đối tượng từ nhóm này sang nhóm khác. Tiêu chuẩn chung
của một phân chia tốt là các đối tượng trong cùng cụm là "gần" hay có quan hệvới
nhau, ngược lại, các đối tượng của các cụm khác nhau lại "tách xa" hay rất khác nhau.
Có nhiều tiêu chuẩn khác nhau để đánh giá chất lượng các phép phân chia. Trong
phân cụm dựa trên phép phân chia, hầu hết các ứng dụng làm theo một trong hai
phương pháp heuristic phổ biến: (1) Giải thuật k-means với mỗi cụm được đại diện
bởi giá trị trung bình của các đối tượng trong cụm; (2) Giải thuật k-medoidsvới mỗi
cụm được đại diện bởi một trong số các đối tượng định vị gần tâm của cụm. Các
phương pháp phân cụm heuristic này làm việc tốt khi tìm kiếm các cụm có hình cầu
trong các cơ sở dữ liệu có kích thước từ nhỏ tới trung bình. Đểtìm ra các cụm với các
hình dạng phức tạp và phân cụm cho các tập dữ liệu rất lớn, các phương pháp dựa

trên phân chia cần được mở rộng.
• Các phương pháp phân cấp:
Một phương pháp phân cấp tạo một phân tích phân cấp tập các đối tượng dữ
liệu đã cho. Một phương pháp phân cấp có thể được phân loại như tích đống hay phân
chia, dựa trên việc phân ly phân cấp được hình thành như thế nào. Tiếp cận tích đống
còn được gọi là tiếp cận "bottom - up", lúc đầu mỗi đối tượng lập thành một nhóm
riêng biệt. Nó hoà nhập lần lượt các đối tượng hay các nhóm gần nhau với nhau cho
tới khi tất cảcác nhóm được hoà nhập thành một (mức cao nhất của hệthống phân
cấp), hay cho tới khi một gặp một điều kiện kết thúc.
Tiếp cận phân ly còn được gọi là tiếp cận "top - down", lúc đầu tất cả các đối
tượng trong cùng một cụm. Trong mỗi lần lặp kếtiếp, một cụm được chia vào trong
các cụm nhỏ hơn cho tới khi cuối cùng mỗi đối tượng trong một cụm hay cho tới khi
gặp một điều kiện kết thúc. Sự kết hợp của việc lặp lại việc định vị và phân ly phân
- 13 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
cấp sẽ thuận lợi bởi trước tiên sử dụng giải thuật phân ly phân cấp và sau đó cải tiến
kết quả sử dụng định vị lặp. Nhiều giải thuật phân cụm mở rộng như BIRCH và
CURE được phát triển dựa trên một tiếp cận tích hợp như vậy.
• Các phương pháp dựa trên mật độ:
Hầu hết các phương pháp phân chia cụm các đối tượng dựa trên khoảng cách
giữa các đối tượng. Các phương pháp như vậy có thể chỉ tìm được các cụm có hình
cầu và sẽ gặp khó khăn khi các cụm đang khám phá lại có hình dạng tuỳ ý. Các
phương pháp phân cụm được phát triển dựa trên khái niệm mật độ. Ý tưởng chung đó
là tiếp tục phát triển cụm cho trước với điều kiện là mật độ(số các đối tượng hay các
điểm dữ liệu) trong "lân cận" vượt quá ngưỡng, tức là đối với mỗi điểm dữ liệu trong
phạm vi một cụm cho trước thì lân cận trong vòng bán kính đã cho chứa ít nhất một
số lượng điểm tối thiểu. Một phương pháp như vậy có thể được dùng đểlọc ra nhiễu
(các outlier) và khám phá ra các cụm có hình dạng bất kỳ. DBSCAN là một phương
pháp dựa trên mật độ điển hình, nó tăng trưởng các cụm theo một ngưỡng mật độ.
OPTICS là một phương pháp dựa trên mật độ, nó tính toán một thứtựphân cụm tăng

dần cho phép phân tích cụm tự động và tương tác.
• Các phương pháp dựa trên lưới:
Một phương pháp dựa trên lưới lượng tửhoá không gian đối tượng vào trong
một số hữu hạn các ô hình thành nên một cấu trúc lưới. Sau đó nó thực hiện tất cảcác
thao tác phân cụm trên cấu trúc lưới (tức là trên không gian đã lượng tử hoá). Thuận
lợi chính của tiếp cận này là thời gian xử lý nhanh chóng của nó độc lập với số các
đối tượng dữ liệu và chỉ tuỳ thuộc vào số lượng các ô trong mỗi chiều của không gian
lượng tử. STING là một ví dụ điển hình của phương pháp dựa trên lưới. WaveCluster
và CLIQUE là hai giải thuật phân cụm dựa trên cảlưới và mật độ
Nhiều giải thuật phân cụm tích hợp các ý tưởng của một vài phương pháp phân
cụm, bởi vậy việc phân loại giải thuật đó không dễ như loại giải thuật chỉ phụ thuộc
vào duy nhất một loại phương pháp phân cụm. Hơn nữa, nhiều ứng dụng có thểcó
giới hạn phân cụm với yêu cầu tích hợp một số kỹ thuật phân cụm.
- 14 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
PHẦN II : THUẬT TOÁN SOM
I. Tổng quan mạng Nơron
I.1. Giới thiệu:
Mạng Neuron nhân tạo (Artificial Neural Network- Mạng Nơron) là mô hình xử
lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật,
bao gồm số lượng lớn các Neuron được gắn kết để xử lý thông tin. Mạng nơron giống
như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả
năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó
trong việc dự đoán các dữ liệu chưa biết (unseen data).
Các ứng dụng của mạng Neuron được sử dụng trong rất nhiều lĩnh vực như điện,
điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi có độ
chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…
I.2. Kiến trúc tổng quát mạng nơron:
Processing Elements (PE): Các PE của Mạng nơron gọi là Neuron, mỗi
Nueron nhận các dữ liệu vào (Inputs) xử lý chúng và cho ra một kết quả (output) duy

nhất. Kết quả xử lý của một Neuron có thể làm Input cho các Neuron khác
Kiến trúc chung của một Mạng nơron gồm 3 thành phần đó là Input
Layer, Hidden Layer và Output Layer .
Trong đó, lớp ẩn (Hidden Layer) gồm các Neuron, nhận dữ liệu input từ các
Nueron ở lớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp
theo. Trong một Mạng Nơron có thể có nhiều Hidden Layer.
- 15 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
I.3. Quá trình xử lý thông tin của một Mạng Nơron
Inputs: Mỗi Input tương ứng với 1 thuộc tính (attribute) của dữ liệu (patterns).
Ví dụ như trong ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay
tiền hay không thì mỗi Input là một thuộc tính của khách hàng như thu nhập, nghề
nghiệp, tuổi, số con…
Output: Kết quả của một Mạng nơron là một giải pháp cho một vấn đề, ví dụ
như với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì output là
yes (cho vay) hoặc no (không cho vay).
Connection Weights (Trọng số liên kết): Đây là thành phần rất quan trọng của
một Mạng nơron, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối
với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang layer
khác). Quá trình học (Learning Processing) của Mạng nơron thực ra là quá trình điều
chỉnh các trọng số (Weight) của các input data để có được kết quả mong muốn.
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được
đưa vào mỗi Neuron (phần tử xử lý PE). Hàm tổng của một Neuron đối với n input
được tính theo công thức sau:
Hàm tổng đối với nhiều Neurons trong cùng một Layer (Xem hình dưới):
- 16 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Hàm chuyển đổi (Transformation (Transfer) Function):
Hàm tổng (Summation Function) của một Neuron cho biết khả năng kích hoạt
(Activation) của neuron đó còn gọi là kích hoạt bên trong (internal activation). Các

Nueron này có thể sinh ra một output hoặc không trong Mạng nơron (nói cách khác
rằng có thể output của 1 Neuron có thể được chuyển đến layer tiếp trong mạng
Neuron theo hoặc không). Mối quan hệ giữa Internal Activation và kết quả (output)
được thể hiện bằng hàm chuyển đổi (Transfer Function).
Việc lựa chọn Transfer Function có tác động lớn đến kết quả của Mạng nơron.
Hàm chuyển đổi phi tuyến được sử dụng phổ biến trong Mạng nơron là sigmoid
(logical activation) function.
Trong đó:
Y
T
: Hàm chuyển đổi
Y: Hàm tổng
Kết quả của Sigmoid Function thuộc khoảng [0,1] nên còn gọi là hàm chuẩn hóa
(Normalized Function).
- 17 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Kết quả xử lý tại các Neuron (Output) đôi khi rất lớn, vì vậy transfer function
được sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo. Đôi khi thay
vì sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) để
kiểm soát các output của các neuron tại một layer nào đó trước khi chuyển các output
này đến các Layer tiếp theo. Nếu output của một neuron nào đó nhỏ hơn Threshold
thì nó sẻ không được chuyển đến Layer tiếp theo.
I.4. Một số kiến trúc của Mạng Nơron
- 18 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
I.5. Quá trình học (Learning Processing) của Mạng nơron:
Mạng nơron được huấn luyện (Training) hay được học (Learning) theo 2 kỹ thuật
cơ bản đó là học có giám sát (Supervised Learning) và học không giám sát
(Unsupervised Learning).
Supervised learning: Quá trình Training được lặp lại cho đến kết quả (output)

của Mạng nơron đạt được giá trị mong muốn (Desired value) đã biết. Điển hình cho
kỹ thuật này là mạng Neuron lan truyền ngược (Backpropagation).
Unsupervised learning: Không sử dụng tri thức bên ngoài trong quá trình học
(Learning), nên còn gọi là tự tổ chức (Self – Organizing). Mạng Neuron điển hình
được huấn luyện theo kiểu Unsupervised là Sefl – Organizing Map (SOM).
Sau đây là phân loại các thuật toán Learning và kiến trúc của Mạng nơron
• Nguyên tắc huấn luyện (Training protocols)
Mạng Neuron có 3 cách huấn luyện chính đó là batch training, stochastic
training và on-line training. Đối với on-line training thì các trọng số của mạng
(weights) được cập nhật ngay lập tức sau khi một input pattern được đưa vào
- 19 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
mạng. Stohastic training cũng giống như on-line training nhưng việc chọn các input
patterns để đưa vào mạng từ training set được thực hiện ngẫu nhiên (random). Batch
training thì tất cả các input patterns được đưa vào mạng cùng lúc và sau đó cập nhật
các trọng số mạng đồng thời. Ưu điểm của on-line training là tiết kiệm bộ nhớ vì
không cần lưu lại số lượng lớn các input patterns trong bộ nhớ.
Trong quá trình huấn luyện mạng, thuật ngữ “epoch” được dùng để mô tả quá
trình khi tất cả các input patterns của training set được đưa để huấn luyện mạng. Nói
cách khách 1 epoch được hoàn thành khi tất cả các dữ liệu trong training set được đưa
vào huấn luyện mạng. Vì vậy số lượng “epoch” xác định số lần mạng được huấn
luyện (hay số lần đưa tất cả các dữ liệu trong training set vào mạng).
II. Thuật toán SOM (Self Organizing Map)
II.1. Giới thiệu:
Self Organizing Map (SOM) hay Self-Organizing Feature Map (SOFM) là
một mạng Neuron nhân tạo (Artificial Neural Networks – ANN), được huấn luyện
(trained) sử dụng kỹ thuật Unsupervised learning để biểu diễn dữ liệu với số chiều
(dimension) thấp hơn nhiều (thường là 2 chiều) so với dữ liệu đầu vào nhiều chiều
(thường số chiều lớn). Kết quả của SOM gọi là bản đồ (Map). SOM là một ANN, tuy
nhiên SOM khác với các ANN là không sử dụng các lớp ẩn (hidden layers) chỉ sử

dụng input và output layer. SOM sử dụng khái niệm láng giềng (neighborhood) để
giữ lại đặc trưng của các dữ liệu đầu vào trên bản đồ (có nghĩa là các training sample
tương tự nhau thì được đặt gần nhau trên bản đồ). Ưu điểm chính của SOM là biểu
diễn trực quan dữ liệu nhiều chiều vào không gian ít chiều hơn (thường là 2 chiều) và
đặc trưng của dữ liệu đầu vào được giữ lại trên bản đồ.
Ý tưởng về SOM lần đầu tiên được giới thiệu bởi C. von der Malsburg năm
1973 và được phát triển bởi T. Kohonen (Finland ) năm 1982 nên còn được gọi là
Kohonen Network
II.2. Kiến trúc của SOM
SOM gồm các thành phần sau:
Output Layer: Gồm các node (neurons) được bố trí trên một lưới (bản đồ) kích
thước XxY. Mỗi neuron có vị trí xác định trên lưới, tại mỗi neuron lưu giữ một vector
trọng số (weight vector) có số chiều bằng với số chiều của input vector.
- 20 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Input vector: Là các training sample có kích thước n
Ma trận trọng số (weight matrix) wij kết nối giữa input vector và các neurons
Sau đây là kiến trúc đơn giản của SOM gồm 2 neurons ở lớp output layer. Input
vector gồm 4 chiều và weight matrix wij (i=1 4 và j=1 2) như sau
II.3. Thuật toán SOM:
Qui trình training SOM được thực hiện qua các bước như mô tả sau. Trong đó,
các tham số có ý nghĩa như sau:
R: Bán kính, dùng để xác định số láng giềng của winning neuron sẽ được cập
nhật trọng số.
α (Learning rate): Tốc độ huấn luyện model. Tham số này được cập nhật trong
suốt quá trình huấn luyện model, và được điều chỉnh (thường điều chỉnh giảm dần)
sau mỗi lần lặp. Điều kiện để kết thúc quá trình training thường là giá trị của learning
rate là đủ nhỏ hoặc ma trận trọng số hội tụ
x: input vector
D(j): khoảng cách giữa neuron j đến input vector x

- 21 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Minh họa cho quá trình Training một SOM đơn giản với 2 neurons và input
vector gồm 4 chiều. Khởi tạo ngẫu nhiên weight matrix như sau:
Để đơn giản ta giả sử bán kính R=0 (số láng giềng của winning neuron =0. Có
nghĩa là chỉ cập nhật trọng số của winning neuron chứ không cập nhật trọng số của
bất kỳ neuron nào khác).
Learning rate α tại thời điểm ban đầu (t=0) bằng 0.6. tức là α(t=0)=0.6
Learning rate tại thời điển t+1 được điều chỉnh như sau:
- 22 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
Giả sử Training data gồm 4 samples như sau:
Quá trình training SOM được thực hiện bằng cách lần lượt đưa các input vector
vào SOM và cập nhật vector trọng số của winning neuron như sau (chú ý trong ví dụ
này để thuận tiện ta sử dụng bình phương khoảng cách Euclidean chứ không tính căn
bậc hai).
• Xét Input vector x=(1 1 0 0)
Khoảng cách từ 2 neurons đến input vector như sau:
Ta thấy rằng khoảng cách từ neuron Y2 đến input vector nhỏ hơn khoảng cách từ
neuron Y1 đến input vector nên winning neuron là Y2. Vì R=0 nên ta chỉ cập nhật
trong số của neuron Y2 như sau:
Ma trận trọng số mới sau khi cập nhật là
Tương tự, xét các input vector còn lại trong training data và cập nhật weight
matrix như trên và Sau lần lặp thứ nhất (sau khi tất cả các input vector trong training
data được đưa vào để huấn luyện, tức là hoàn thành 1 epochs), ta được:
- 23 -
NHÀ KHO DỮ LIỆU & KHAI THÁC DỮ LIỆU
• Cập nhật learning rate
Quá trình này lặp lại cho đến khi learning rate đủ nhỏ hoặc weight matrix hội tụ
thì kết thúc. Trong ví dụ này, sau khi lặp lại 100 lần (epochs=100) thì ma trận trọng

số hội tụ như sau:
Sau khi huấn luyện, ta có thể kiểm tra mô hình bằng cách xem mỗi neuron như
một cluster . Trong ví dụ này, có 2 neurons nên ta có 2 cluster tương ứng là cluster1
và cluster 2. Khi đó một input vector được ánh xạ (mapping) vào vị trí neuron nào thì
tương ứng với cluster đó.
• Xét input vector x=(1 1 0 0)
Tính khoảng cách từ input vector đến 2 nueron (chú ý bây giờ sử dụng weight matrix
cuối cùng đã hội tụ). Ta có:
- 24 -

×