Tải bản đầy đủ (.docx) (38 trang)

Đồ án tốt nghiệp nguyễn duy thông 27 12 2016

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 (540.41 KB, 38 trang )

MỤC LỤC


2

LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến các thầy cô khoa công nghệ thông tin Đại học Thủy Lợi đã tận tâm giảng dạy, chỉ bảo giúp đỡ em từ khi em bắt đầu học tập
đến nay.
Em xin gửi lời cảm ơn sâu sắc tới TS Đặng Thị Thu Hiền đã kiên nhẫn và tận
tình hướng dẫn khoa học, giúp đỡ em hoàn thành tốt đồ án tốt nghiệp này. Em cũng
xin gửi lời cảm ơn tới các thầy, cô giáo đã dạy dỗ, và truyền đạt kiến thức cho em
trong suốt quá trình học tập và nghiên cứu.
Em cũng xin cảm ơn tới thầy Nguyễn Thanh Tùng đã tư vấn và giúp đỡ chân
thành để em có được đồ án hoàn thành ngày hôm nay.
Mặc dù đã cố gắng nhưng đồ án của em cũng không khỏi thiếu sót, em rất
mong sự cảm thông và ý kiến đống góp quý báu của các thầy cô để em có thể hoàn
thiện đồ án tốt hơn.
Em xin chân thành cảm ơn.
SINH VIÊN
NGUYỄN DUY THÔNG

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


3

LỜI MỞ ĐẦU
Hiện nay, với chủ trương xây dựng Bệnh án điện tử và thúc đẩy số hóa dữ liệu
bệnh nhân ở Việt Nam, việc khám bệnh đang chuyển dần từ sổ khám bệnh sang bệnh
án điện tử. Các bệnh viện cũng đẩy mạnh phát triển hệ thống phần mềm để dữ liệu


biện nhân có thể được truy cập ở tất cả các tuyến xã đến cấp Bộ y tế. Tuy nhiên, việc
xây dựng bệnh án điện tử chưa đi kèm với việc khai phá dữ liệu hỗ trợ lãnh đạo bộ
phản ứng nhanh trước dịch bệnh, thiên tai, hỗ trợ bác sĩ trong việc chẩn đoán bệnh,
xây dựng pháp đồ điều trị. Xuất phát từ nhu cầu thực tế đó, đồ án giới thiệu một số
phương pháp phân cụm dữ liệu trong khai phá cơ sở dữ liệu Bệnh nhân. Trên cơ sở đó
cài đặt thử nghiệm một chương trình ứng dụng sử dụng kỹ thuật phân cụm dữ liệu, qua
đó có thể hỗ trợ các bác sĩ y tế dự phòng, bác sĩ khám bệnh tiết kiệm thời gian và hiệu
quả hơn trong việc thăm khám bệnh.
Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các
phương pháp Unsupervised Learning trong Machine Learning. Mục đích của phân
cụm là tìm ra bản chất bên trong các nhóm của dữ liệu nhằm đưa ra kết luận có giá trị
tốt nhất và tiết kiệm thời gian.
Nội dung của đề tài là những kiến thức về khai phá dữ liệu sử dụng phân cụm,
các thuật toán kinh điển trong quá trình sử dụng phân cụm, cách áp dụng phân cụm
vào bài toán thực tế.
Đồ án được trình bày trong 3 chương và phần phụ lục :
Chương 1 : Trình bày tổng về khai phá dữ liệu và phân cụm
Chương 2 : Giới thiệu, phân tích, đánh giá các họ thuật toán dùng để phân cụm
dữ liệu
Chương 3 : Xây dựng ứng dụng sử dụng thuật toán phân cụm để phân tích dữ
liệu bệnh nhân.
Kết luận : Tóm tắt các vấn đề được tìm hiểu trong đồ án và các vấn đề liên quan
trong đồ án, đưa ra phương hướng nghiên cứu tiếp theo.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


4


CHƯƠNG 1. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ PHÂN CỤM
1.1 Tại sao phải khai phá 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ừ, .v.v.) 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 đó. [1]
1.2 Khai phá dữ liệu là gì?
Nói chung, khai phá dữ liệu (đôi khi được gọi là khám phá tri thức) là quá trình
phân tích dữ liệu từ những trường khác nhau và tổng kết nó thành thông tin hữu ích thông tin có thể được sử dụng để tăng doanh thu, cắt giảm chi phí, hoặc cả hai. phần
mềm khai thác dữ liệu là một trong một số công cụ phân tích để phân tích dữ liệu. Nó
cho phép người sử dụng để phân tích dữ liệu từ nhiều khía cạnh hoặc góc độ khác
nhau, phân loại, và tổng kết các mối quan hệ xác định. Về mặt kỹ thuật, khai thác dữ
liệu là quá trình tìm kiếm các mối tương quan hoặc mô hình trong số hàng chục trường
trong cơ sở dữ liệu quan hệ lớn.
1.3 Các thành phần cơ bản của khai phá dữ liệu
Giải thuật khai phá dữ liệu bao gồm 3 thành phần chính như sau: biểu diễn mô
hình, đánh giá mô hình, tìm kiếm mô hình.
• Biểu diễn mô hình: Mô hình được biểu diễn bằng một ngôn ngữ L để mô tả
các mẫu có thể khai thác được. Nếu sự mô tả quá bị hạn chế thì sẽ không thể học
được hoặc sẽ không thể có các mẫu tạo ra được một mô hình chính xác cho dữ
liệu. Ví dụ một mô tả cây quyết định sử dụng phân chia các nút theo trường đơn,

chia không gian đầu vào thành các mặt siêu phẳng song song với các trục thuộc

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


5
tính. Phương pháp cây quyết định như vậy không thể khai thác được từ dữ liệu
dạng công thức x=y dù cho tập học có to đến đâu đi nữa. Vì vậy, việc quan trọng là
người phân tích dữ liệu cần phải hiểu đầy đủ các giả thiết mô tả.
Một điều cũng khá quan trọng là người thiết kế giải thuật cần phải diễn tả được
các giả thiết mô tả nào được tạo ra bởi giải thuật nào. Khả năng mô tả mô hình
càng lớn thì càng làm tăng mức độ nguy hiểm do bị học quá và làm giảm đi khả
năng dự đoán các dữ liệu chưa biết. Hơn nữa, việc tìm kiếm sẽ càng trở nên phức
tạp hơn và việc giải thích mô hình cũng khó khăn hơn. Mô hình ban đầu được xác
định bằng cách kết hợp biến đầu ra(phụ thuộc) với các biến độc lập mà biến đầu ra
phụ thuộc vào. Sau đó phải tìm những tham số mà bài toán cần tập trung giải
quyết. Việc tìm kiếm mô hình sẽ đưa ra được một mô hình phù hợp với các tham
số được xác định dựa trên dữ liệu(trong một số trường hợp, mô hình được xây
dựng độc lập với dữ liệu trong khi đối với một số trường hợp khác thì mô hình và
các tham số lại thay đổi để phù hợp với dữ liệu) .
Trong một số trường hợp, tập dữ liệu được chia thành tập dữ liệu học và tập dữ
liệu thử. Tập dữ liệu học được sử dụng để làm cho các tham số của mô hình phù
hợp với dữ liệu. Mô hình sau đó sẽ được đánh giá bằng cách đưa các dữ liệu thử
vào mô hình và thay đổi lại các tham số cho phù hợp nếu cần. Mô hình lựa chọn có
thể là phương pháp thống kê như SASS, v. v…, một số giải thuật học máy(ví dụ
như suy diễn cây quyết định và các kỹ thuật học có thầy khác) , mạng neuron, suy
diễn hướng tình huống(case-based reasoning) , các kỹ thuật phân lớp.
• Đánh giá mô hình: Đánh giá x một mẫu có đáp ứng được các tiêu chuẩn của
quá trình phát hiện tri thức hay không. Việc đánh giá độ chính xac dự đoán dựa

trên đánh giá chéo(cross validation) . Đánh giá chất lượng mô tả liên quan đến độ
chính xác dự đoán, độ mới, khả năng sử dụng, khả năng hiểu được của mô hình.
Cả hai chuẩn thống kê và chuẩn logic đều có thể được sử dụng để đánh giá mô
hình. Ví dụ như luật xác suất lớn nhất có thể dùng để lựa chọn các tham số cho mô
hình sao cho xử lý phù hợp nhất với tập dữ liệu học. Việc đánh giá mô hình được
thực hiện qua kiểm tra dữ liệu(trong một số trường hợp kiểm tra với tất cả các dữ
liệu, trong một số trường hợp khác chỉ kiểm tra với dữ liệu thử) . Ví dụ như đối với
mạng neuron, việc đánh giá mô hình được thực hiện dựa trên việc kiểm tra dữ

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


6
liệu(bao gồm cả dữ liệu học và dữ liệu thử) , đối với nhiệm vụ dự đoán thì việc
đánh giá mô hình ngoài kiểm tra dữ liệu còn dựa trên độ chính xác dự đoán.
• Phương pháp tìm kiếm: phương pháp tìm kiếm bao gồm hai thành phần: tìm
kiếm tham số và tìm kiếm mô hình. Trong tìm kiếm tham số, giải thuật cần tìm
kiếm các tham số để tối ưu hóa các tiêu chuẩn đánh giá mô hình với các dữ liệu
quan sát được và với một mô tả mô hình đã định. Việc tìm kiếm không cần thiết
đối với một số bài toán khá đơn giản: các đánh giá tham số tối ưu có thể đạt được
bằng các cách đơn giản hơn. Đối với các mô hình chung thì không có các cách này,
khi đó giải thuật “tham lam” thường được sử dụng lặp đi lặp lại. Ví dụ như phương
pháp giảm gradient trong giải thuật lan truyền ngược(backpropagation) cho các
mạng neuron. Tìm kiếm mô hình xảy ra giống như một vòng lặp qua phương pháp
tìm kiếm tham số: mô tả mô hình bị thay đổi tạo nên một họ các mô hình. Với mỗi
một mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất
lượng mô hình. Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật
tìm kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăn
cản các tìm kiếm tổng thể, hơn nữa các giải pháp đơn giản(closed form) không dễ

đạt được.
1.4 Các bước chính trong khai phá dữ liệu
Khám phá tri thức trong CSDL, KDD là lĩnh vực liên quan đến các ngành như
thông kê,học máy, CSDL, thuật toán…
Quá trình KDD có thể phân thành các giai đoạn sau:
• Trích chọn dữ liệu: là bước trích chọn những tập dữ liệu cần được khai phá 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: Là bước làm sạch dữ liệu (xử lý với những dữ liệu không
đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán…) rút gọn dữ liệu, rời rạc hóa
dữ liệu. 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ụ cho các kỹ thuật khai phá ở bước sau.
• Datamining: Đây là bước áp dụng những kỹ thuật phân tích (phần lớn là 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 thông tin,

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


7
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ốnnhiều thời gian nhất trong quá trình KDD.
• Đánh giá và biểu diễn tri thức: Những mẫu thông tin quan trọng và mối liên
hệ trong dữ liệu đã được khám phá ở bước trên được chuyển dạng 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…Đồ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:


Hình 1.1: Quy trình khám phá tri thức
1.5 Phân loại khai phá dữ liệu
Data Mining được chia nhỏ thành một số hướng chính như sau:
• Mô tả khái niệm (concept description): 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.
• Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá
đơn giản. Ví dụ: “70% bệnh nhân nếu mắc bệnh tiểu đường thì 30% trong số họ bị
bệnh gut”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học,
tin-sinh, tài chính & thị trường chứng khoán, .v.v.
• Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào
một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời
tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như
cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), .v.v. Người
ta còn gọi phân lớp là học có giám sát (học có thầy).
• Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như
tên của cụm chưa được biết trước. Người ta còn gọi phân cụm là học không giám
sát (học không thầy).

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


8
• Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luật
kết hợp nhưng có thêm tính thứ tự và tính thời gian. 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 vì nó có tính dự báo
cao.
1.6 Phạm vi ứng dụng của khai phá dữ liệu
Data Mining 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)
• .v.v.
1.7 Những thách thức - khó khăn trong khai phá dữ liệu
Ở đây, ta đưa ra một số khó khăn trong việc nghiên cứu và ứng dụng kỹ thuật khai
phá dữ liệu. Tuy nhiên, thế không có nghĩa là việc giải quyết là hoàn toàn bế tắc mà
chỉ muốn nêu lên rằng để khai phá được dữ liệu không phải đơn giản, mà phải xem xét
cũng như tìm cách giải quyết những vấn đề này. Ta có thể liệt kê một số khó khăn như
sau:
1.7.1 Các vấn đề về cơ sở dữ liệu
Đầu vào chủ yếu của một hệ thống khai thác tri thức là các dữ liệu thô
trong cơ sở dữ liệu. Những vấn đề khó khăn phát sinh trong khai phá dữ liệu
chính là từ đây. Do các dữ liệu trong thực tế thường động, không đầy đủ, lớn và
bị nhiễu. Trong những trường hợp khác, người ta không biết cơ sở dữ liệu có
chứa các thông tin cần thiết cho việc khai thác hay không và làm thế nào để giải
quyết với sự dư thừa những thông tin không thích hợp này.
• Dữ liệu lớn: Cho đến nay, các cơ sở dữ liệu với hàng trăm trường và
bảng, hàng triệu bản ghi và với kích thước đến gigabytes đã là chuyện bình
thường. Hiện nay đã bắt đầu xuất hiện các cơ sở dữ liệu có kích thước tới
terabytes. Các phương pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông



9
dữ liệu, lấu mẫu, các phương pháp xấp xỉ, xử lý song song(Agrawal et al,
Holsheimer et al) .
• Kích thước lớn: không chỉ có số lượng bản ghi lớn mà số các trường
trong cơ sở dữ liệu cũng nhiều. Vì vậy mà kích thước của bài toán trở nên lớn
hơn. Một tập dữ liệu có kích thước lớn sinh ra vấn đề làm tăng không gian tìm
kiếm mô hình suy diễn. Hơn nữa, nó cũng làm tăng khả năng một giải thuật
khai phá dữ liệu có thể tìm thấy các mẫu giả. Biện pháp khắc phục là làm giảm
kích thước tác động của bài toán và sử dụng các tri thức biết trước để xác định
các biến không phù hợp.
• Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội
dung của chúng thay đổi liên tục. Dữ liệu có thể thay đổi theo thời gian và việc
khai phá dữ liệu cũng bị ảnh hưởng bởi thời điểm quan sát dữ liệu. Ví dụ trong
cơ sở dữ liệu về tình trạng bệnh nhân, một số giá trị dữ liệu là hằng số, một số
khác lại thay đổi liên tục theo thời gian(ví dụ cân nặng và chiều cao) , một số
khác lại thay đổi tùy thuộc vào tình huống và chỉ có giá trị được quan sát mới
nhất là đủ(ví dụ nhịp đập của mạch) . Vậy thay đổi dữ liệu nhanh chóng có thể
làm cho các mẫu khai thác được trước đó mất giá trị. Hơn nữa, các biến trong
cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị xóa hoặc là tăng
lên theo thời gian. Vấn đề này được giải quyết bằng các giải pháp tăng trưởng
để nâng cấp các mẫu và coi những thay đổi như là cơ hội để khai thác bằng
cách sử dụng nó để tìm kiếm các mẫu bị thay đổi.
• Các trường không phù hợp: Một đặc điểm quan trọng khác là tính
không thích hợp của dữ liệu, nghĩa là mục dữ liệu trở thành không thích hợp với
trọng tâm hiện tại của việc khai thác. Một khía cạnh khác đôi khi cũng liên
quan đến độ phù hợp là tính ứng dụng của một thuộc tính đối với một tập con
của cơ sở dữ liệu. Ví dụ trường số tài khoản Nostro không áp dụng cho các các
nhân.

• Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính
dữ liệu phù hợp có thể ảnh hưởng đến việc khai phá dữ liệu. Trong hệ thống
tương tác, sự thiếu vắng dữ liệu quan trọng có thể dẫn đến việc yêu cầu cho giá
trị của nó hoặc kiểm tra để xác định giá trị của nó. Hoặc cũng có thể sự vắng

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


10
mặt của dữ liệu được coi như một điều kiện, thuộc tính bị mất có thể được coi
như một giá trị trung gian và là giá trị không biết.
• Các trường bị thiếu: Một quan sát không đầy đủ cơ sở dữ liệu có thể
làm cho các dữ liệu có giá trị bị x như có lỗi. Việc quan sát cơ sở dữ liệu phải
phát hiện được toàn bộ các thuộc tính có thể dùng để giải thuật khai phá dữ liệu
có thể áp dụng nhằm giải quyết bài toán. Giả sử ta có các thuộc tính để phân
biệt các tình huống đáng quan tâm. Nếu chúng không làm được điều đó thì có
nghĩa là đã có lỗi trong dữ liệu. Đối với một hệ thống học để chuẩn đoán bệnh
sốt rét từ một cơ sở dữ liệu bệnh nhân thì trường hợp các bản ghi của bệnh nhân
có triệu chứng giống nhau nhưng lại có các chuẩn đoán khác nhau là do trong
dữ liệu đã bị lỗi. Đây cũng là vấn đề thường xảy ra trong cơ sở dữ liệu kinh
doanh. Các thuộc tính quan trọng có thể sẽ bị thiếu nếu dữ liệu không được
chuẩn bị cho việc khai phá dữ liệu.
• Độ nhiễu và không chắc chắn: Đối với các thuộc tính đã thích hợp, độ
nghiêm trọng của lỗi phụ thuộc vào kiểu dữ liệu của các giá trị cho phép. Các
giá trị của các thuộc tính khác nhau có thể là các số thực, số nguyên, chuỗi và
có thể thuộc vào tập các giá trị định danh. Các giá trị định danh này có thể sắp
xếp theo thứ tự từng phần hoặc đầy đủ, thậm chí có thể có cấu trúc ngữ nghĩa.
Một yếu tố khác của độ không chắc chắn chính là tính kế thừa hoặc độ chính
xác mà dữ liệu cần có, nói cách khác là độ nhiễu của dữ liệu. Dựa trên việc tính

toán trên các phép đo và phân tích có ưu tiên, mô hình thống kê mô tả tính ngẫu
nhiên được tạo ra và được sử dụng để định nghĩa độ mong muốn và độ dung sai
của dữ liệu. Thường thì các mô hình thống kê được áp dụng theo cách đặc biệt
để xác định một cách chủ quan các thuộc tính để đạt được các thống kê và đánh
giá khả năng chấp nhận của các(hay tổ hợp các) giá trị thuộc tính. Đặc biệt là
với dữ liệu kiểu số, sự đúng đắn của dữ liệu có thể là một yếu tố trong việc khai
phá. Ví dụ như trong việc đo nhiệt độ cơ thể, ta thường cho phép chênh lệch 0.
1 độ. Nhưng việc phân tích theo xu hướng nhạy cảm nhiệt độ của cơ thể lại yêu
cầu độ chính xác cao hơn. Để một hệ thống khai thác có thể liên hệ đến xu
hướng này để chuẩn đoán thì lại cần có một độ nhiễu trong dữ liệu đầu vào.
Mối quan hệ phức tạp giữa các trường: các thuộc tính hoặc các giá trị có cấu
Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


11
trúc phân cấp, các mối quan hệ giữa các thuộc tính và các phương tiện phức tạp
để diễn tả tri thức về nội dung của cơ sở dữ liệu yêu cầu các giải thuật phải có
khả năng sử dụng một cách hiệu quả các thông tin này. Ban đầu, kỹ thuật khai
phá dữ liệu chỉ được phát triển cho các bản ghi có giá trị thuộc tính đơn giản.
Tuy nhiên, ngày nay người ta đang tìm cách phát triển các kỹ thuật nhằm rút ra
mối quan hệ giữa các biến này.
1.7.2 Một số vấn đề khác
• “Quá phù hợp”(Overfitting) : Khi một giải thuật tìm kiếm các tham
số tốt nhất cho một mô hình nào đó sử dụng một tập dữ liệu hữu hạn, nó có thể
sẽ bị tình trạng “quá độ” dữ liệu(nghĩa là tìm kiếm quá mức cần thiết gây ra hiện
tượng chỉ phù hợp với các dữ liệu đó mà không có khả năng đáp ứng cho các dữ
liệu lạ) , làm cho mô hình hoạt động rất kém đối với các dữ liệu thử. Các giải
pháp khắc phục bao gồm đánh giá chéo(cross-validation) , thực hiện theo
nguyên tắc nào đó hoặc sử dụng các biện pháp thống kê khác. Đánh giá tầm

quan trọng thống kê: Vấn đề(liên quan đến overfitting) xảy ra khi một hệ thống
tìm kiếm qua nhiều mô hình. Ví dụ như nếu một hệ thống kiểm tra N mô hình ở
mức độ quan trọng 0, 001 thì với dữ liệu ngẫu nhiên trung bình sẽ có N/1000 mô
hình được chấp nhận là quan trọng. Để xử lý vấn đề này, ta có thể sử dụng
phương pháp điều chỉnh thống kê trong kiểm tra như một hàm tìm kiếm, ví dụ
như điều chỉnh Bonferroni đối với các kiểm tra độc lập.
• Khả năng biểu đạt của mẫu: Trong rất nhiều ứng dụng, điều quan
trọng là những điều khai thác được phải cáng dễ hiểu với con người càng tốt. Vì
vậy, các giải pháp thường bao gồm việc diễn tả dưới dạng đồ họa, xây dựng cấu
trúc luật với các đồ thị có hướng(Gaines) , biểu diễn bằng ngôn ngữ tự
nhiên(Matheus et al. ) và các kỹ thuật khác nhằm biểi diễn tri thức và dữ liệu.
Sự tương tác với người sử dụng và các tri thức sẵn có: rất nhiều công cụ và
phương pháp khai phá dữ liệu không thực sự tương tác với người dùng và
không dễ dàng kết hợp cùng với các tri thức đã biết trước đó. Việc sử dụng tri
thức miền là rất quan trọng trong khai phá dữ liệu. Đã có nhiều biện pháp nhằm
khắc phục vấn đề này như sử dụng cơ sở dữ liệu suy diễn để phát hiện tri thức,
những tri thức này sau đó được sử dụng để hướng dẫn cho việc tìm kiếm khai

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


12
phá dữ liệu hoặc sử dụng sự phân bố và xác suất dữ liệu trước đó như một dạng
mã hóa tri thức có sẵn.
1.8 Phân cụm dữ liệu
1.8.1 Khái niệm phân cụm
Phân cụm dữ liệu nhằm mục đích chính là khám phá cấu trúc của mẫu dữ liệu
để thành lập các nhóm dữ liệu từ tập dữ liệu lớn theo đó cho phép người ta đi sâu vào
phân tích và nghiên cứu cho từng cụm dữ liệu này nhằm khám phá và tìm kiếm các

thông tin tiềm ẩn, hữu ích phục vụ cho ra quyết định. Một vài ví dụ về ý nghĩa thực
tiễn của phân cụm dữ liệu như sau: “Khám phá ra các vị trí địa lý thuận lợi cho việc
xây dựng các kho hàng phục vụ mua bán hàng của 1 công ty thương mại” hoặc “xác
định các cụm ảnh như hình ảnh các loài động vật như loài chim, thú,… trong tập
CSDL ảnh về động vật nhằm phục vụ cho việc tìm kiếm hình ảnh” hoặc “xác định các
nhóm người bệnh nhằm cung cấp thông tin cho việc phân phối các thuốc điều trị trong
y tế” hoặc “nhóm các khách hàng trong CSDL ngân hàng có vốn các đầu tư vào bất
động sản cao”… Như vậy, PCDL 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 phần tử trong một cụm "tương tự" với nhau và các phần tử
trong các cụm khác nhau sẽ "phi tương tự" 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
của phương pháp phân cụm.
Chúng ta có thể minh hoạ vấn đề phân cụm như hình vẽ sau:

Hình 1.2: Mô phỏng về vấn đề phân cụm
Trong hình trên, sau khi phân cụm chúng ta thu được bốn cụm trong đó các
phần tử "gần nhau" hay là "tương tự" thì được xếp vào một cụm, trong khi đó các phần

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


13
tử "xa nhau" hay là "phi tương tự" thì chúng thuộc về các cụm khác nhau. Độ tương
tự, phi tương tự sẽ được trình bày ở phần 1.2.3.3.
Trong PCDL khái niệm (Concept Clustering) thì hai hoặc nhiều đối tượng cùng
được xếp vào một cụm nếu chúng có chung một định nghĩa về khái niệm hoặc chúng
xấp xỉ với các khái niệm mô tả cho trước, như vậy, ở đây PCDL không sử dụng khái
niệm “tương tự” như đã trình bày ở trên
Trong học máy, phân cụm dữ liệu được xem là vấn đề học không có giám sát, vì

nó phải đi giải quyết vấn đề tìm một cấu trúc trong tập hợp các dữ liệu chưa biết trước
các thông tin về lớp hay các thông tin về tập ví dụ huấn luyện. Trong nhiều trường
hợp, khi phân lớp (Classification) được xem là vấn đề học có giám sát thì phân cụm dữ
liệu là một bước trong phân lớp dữ liệu, trong đó PCDL sẽ khởi tạo các lớp cho phân
lớp bằng cách xác định các nhãn cho các nhóm dữ liệu.
Một vấn đề thường gặp trong PCDL đó là hầu hết các dữ liệu cần cho phân cụm
đều có chứa dữ liệu "nhiễu" (noise) do quá trình thu thập thiếu chính xác hoặc thiếu
đầy đủ, vì vậy cần phải xây dựng chiến lược cho bước tiền xử lý dữ liệu nhằm khắc
phục hoặc loại bỏ "nhiễu" trước khi bước vào giai đoạn phân tích phân cụm dữ liệu.
"Nhiễu" ở đây có thể là các đối tượng dữ liệu không chính xác, hoặc là các đối tượng
dữ liệu khuyết thiếu thông tin về một số thuộc tính. Một trong các kỹ thuật xử lý nhiễu
phổ biến là việc thay thế giá trị của các thuộc tính của đối tượng "nhiễu" bằng giá trị
thuộc tính tương ứng của đối tượng dữ liệu gần nhất.
Ngoài ra, dò tìm phần tử ngoại lai (Outlier) là một trong những hướng nghiên
cứu quan trọng trong PCDL cũng như trong Data Mining, chức năng của nó là xác
định một nhóm nhỏ các đối tượng dữ liệu "khác thường" so với các dữ liệu trong
CSDL - tức là các đối tượng dữ liệu không tuân theo các hành vi hoặc mô hình dữ liệu
- nhằm tránh sự ảnh hưởng của chúng tới quá trình và kết quả của PCDL. Khám phá
các phần tử ngoại lai đã được phát triển và ứng dụng trong viễn thông, dò tìm gian lận
thương mại và trong làm sạch dữ liệu,vv…
Tóm lại, phân cụm là một vấn đề khó, vì rằng người ta phải đi giải quyết các
vấn đề con cơ bản như sau :
* Xây dựng hàm tính độ tương tự.
* Xây dựng các tiêu chuẩn phân cụm
* Xây dụng mô hình cho cấu trúc cụm dữ liệu
* Xây dựng thuật toán phân cụm và các xác lập các điều kiện khởi tạo.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông



14
* Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm
Theo các nghiên cứu, đến nay chưa có một phương pháp phân cụm tổng quát
nào có thể giải quyết trọn vẹn cho tất cả các dạng cấu trúc cụm dữ liệu. Hơn nữa, các
phương pháp phân cụm cần có cách thức biểu diễn cấu trúc của các cụm dữ liệu, với
mỗi cách thức biểu diễn khác nhau sẽ có tương ứng một thuật toán phân cụm phù hợp.
PCDL đang là vấn đề mở và khó, vì rằng người ta cần phải đi giải quyết nhiều vấn đề
cơ bản như đã đề cập ở trên một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác
nhau, đặc biệt là đối với các dữ liệu hỗn hợp, đang ngày càng tăng trưởng không
ngừng trong các hệ quản trị dữ liệu, đây cũng là một trong những thách thức lớn trong
lĩnh vực Data Mining trong những thập kỷ tiếp theo. Báo cáo này em đi sâu vào
nghiên cứu một phương pháp phân cụm trên tập dữ liệu hỗn hợp, đây là vấn đề đang
được các nhà khoa học quan tâm nhất hiện nay trong PCDL.
1.8.2 Ứng dụng của phân cụm
Phân cụm dữ liệu (PCDL) là một trong những công cụ chính được ứng dụng
trong nhiều lĩnh vực như thương mại và khoa học. Các kỹ thuật PCDL đã được áp
dụng cho một số ứng dụng điển hình trong các lĩnh vực sau :
- Thương mại: Trong thương mại, PCDL có thể giúp các thương nhân khám phá
ra các nhóm khách hàng quan trọng có các đặc trưng tương đồng nhau và đặc tả họ từ
các mẫu mua bán trong CSDL khách hàng.
- Sinh học: Trong sinh học, PCDL được sử dụng để xác định các loại sinh vật,
phân loại các Gen với chức năng tương đồng và thu được các cấu trúc trong các mẫu.
- Phân tích dữ liệu không gian: Do sự đồ sộ của dữ liệu không gian như dữ liệu
thu được từ các hình ảnh chụp từ vệ tinh các thiết bị y học hoặc hệ thống thông tin địa
lý (GIS), …làm cho người dùng rất khó để kiểm tra các dữ liệu không gian một cách
chi tiết. PCDL có thể trợ giúp người dùng tự động phân tích và xử lý các dữ liêu không
gian như nhận dạng và chiết xuất các đặc tính hoặc các mẫu dữ liệu quan tâm có thể
tồn tại trong CSDL không gian.
- Lập quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lý,…

nhằm cung cấp thông tin cho quy hoạch đô thị.
- Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung cấp
thông tin cho nhận dạng các vùng nguy hiểm.
- Địa lý: Phân lớp các động vật và thực vật và đưa ra đặc trưng của chúng.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


15
- Web Mining: PCDL có thể khám phá các nhóm tài liệu quan trọng, có nhiều ý
nghĩa trong môi trường Web. Các lớp tài liệu này trợ giúp cho việc khám phá tri thức
từ dữ liệu,…
1.9 Kết luận
Mặc dù còn rất nhiều vấn đề mà khai phá dữ liệu cần phải tiếp tục nghiên cứu
để giải quyết nhưng tiềm năng của nó đã được khẳng định bằng sự ra đời của rất nhiều
ứng dụng.
Khai phá dữ liệu được ứng dụng rất thành công trong “cơ sở dữ liệu thị
trường”(database marketing) , đây là một phương pháp phân tích cơ sở dữ liệu khách
hàng, tìm kiếm các mẫu trong số các khách hàng và sử dụng các mẫu này để lựa chọn
các khách hàng trong tương lai. Tạp chí Business Week của Mỹ đã đánh giá hơn 50%
các nhà bán lẻ đang và có ý định sử dụng “cơ sở dữ liệu thị trường” cho hoạt động
kinh doanh của họ(Berry 1994) . Kết quả ứng dụng cho thấy số lượng thẻ tín dụng
American Express bán ra đã tăng 15% - 20%(Berry 1994) . Các ứng dụng khác của
khai phá dữ liệu trong kinh doanh như phân tích chứng khoán và các văn kiện tài
chính; phân tích và báo cáo những thay đổi trong dữ liệu, bao gồm Coverstory của
IRI(Schmitz, Armstrong, & Little 1990) , Spotlight của A. C Nielsen(nand & Kahn
1992) đối với các dữ liệu bán hàng trong siêu thị, KEFIR của GTE cho cơ sở dữ liệu y
tế(Matheus, Piatetsky-Shapiro, & McNeil) ; phát hiện và phòng chống gian lận cũng
thường là bài toán của khai phá dữ liệu và phát hiện tri thức. Ví dụ như hệ thống phát

hiện gian lận trong dịch vụ y tế đã được Major và Riedinger phát triển tại Travelers
insurance năm 1992. Internal Revenue Service đã phát triển một hệ thống chọn thuế
thu để kiểm toán. Nestor FDS(Blanchard 1994) được phát triển dựa trên mạng neuron
để phát hiện ra gian lận trong thẻ tín dụng.
Các ứng dụng của khai phá dữ liệu trong khoa học cũng được phát triển. Ta có thể đưa
ra một số ứng dụng trong khoa học như:
• Thiên văn học: Hệ thống SKICAT do JPL/Caltech phát triển được sử dụng
cho các nhà thiên văn để tự động xác định các vì sao và các dải thiên hà trong một bản
khảo sát lớn để có thể phân tích và phân loại(Fayyad, Djorgovski, & Weir) .
• Phân tử sinh học: Hệ thống tìm kiếm các mẫu trong cấu trúc phân tử(Conklin,
Fortier, và Glasgow 1993) và trong các dữ liệu gen(Holder, Cook, và Djoko 1994) .

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


16
• Mô hình hóa những thay đổi thời tiết: các mẫu không thời gian như lốc, gió
xoáy được tự động tìm thấy trong các tập lớn dữ liệu mô phỏng và quan sát
được(Stolorz et al. 1994) .

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


17

CHƯƠNG 2. MỘT SỐ KỸ THUẬT PHÂN CỤM DỮ LIỆU
2.1 Họ thuật toán phân hoạch
2.1.1 Thuật toán K-means

Mục đích của thuật toán k – means là sinh ra k cụm dữ liệu {C1, C2,…, Ck} từ
1 tập dữ liệu chứa n đối tượng trong không gian d chiều Xi = (xi1, xi2,.., xid) i = 1
=>n, sao cho hàm tiêu chuẩn:
E = đạt giá trị tối thiểu.
Trong đó: mi là trọng tâm của cụm Ci , D là khoảng cách giữa 2 đối tượng.
Trọng tâm của 1 cụm là 1 véc tơ, trong đó giá trị của mỗi phần tử của nó là
trung bình cộng của các thành phần tương ứng của các đối tượng véc tơ dữ liệu trong
cụm đang xét. Tham số đầu vào của thuật toán là số cụm k, và tham số đầu ra của thuật
toán là các trọng tâm của các cụm dữ liệu. Độ đo khoảng cách D giữa các đối tượng dữ
liệu thường được sử dụng là khoảng cách Euclide, bởi vì đây là mô hình khoảng cách
dễ lấy đạo hàm và xác định các cực trị tối thiểu. Hàm tiêu chuẩn và độ đo khoảng cách
có thể được xác định cụ thể hơn tùy vào ứng dụng hoặc các quan điểm của người
dùng.
Để dễ hình dung về thuật toán k-means ta xét ví dụ đơn giản sau:
Cho tập dữ liệu bao gồm có 15 phần tử thực trong không gian 1 chiều S={1, 4,
8, 5, 10, 15, 16, 23, 25, 27, 13, 37, 2, 18, 20}, người ta cần phân cụm dữ liệu này ra
thành 3 cụm (k=3) theo thuật toán k-means. Các bước của thuật toán được trình bày
như sau:
• Bước khởi tạo: chọn 3 tâm ngẫu nhiên CL1 = 8, CL2= 16, CL3= 23 Ta thu
được phân hoạch ban đầu như sau :
o Cụm 1, với tâm là CL1, gồm các phần tử: 1, 2, 4, 5, 8, 10
o Cụm 2, với tâm là CL2, gồm các phần tử: 13, 15, 16, 18
o Cụm 3, với tâm là CL3, gồm các phần tử: 23, 25, 27, 20, 37
(Ở đây độ đo tương tự giữa hai đối tượng được xác định bằng công thức: d(a, b)=|a-b|)
Như vậy ta có: E = { (1-8)2 + (2-8)2 + (4-8)2 + (5-8)2 + (8-8)2 + (10-8)2 } + { (13-16)2 +
(15-16)2 + (16-16)2 + (18-16)2 } + { (25-23)2 + (27-23)2 + (20-23)2 + (37-23)2 + (23-23)2
} = 353.
• Bước lặp thứ nhất :
o Cập nhật lại tâm mới : CL1 = (1+2+4+5+8+10) / 6 = 5
o Tương tự ta có : CL2 = 13; CL3 = 26.4;


Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


18
o Phân hoạch tương ứng với các tâm mới như sau :
 Cụm 1, với tâm là CL1, gồm có các phần tử : 1, 2, 4, 5, 8
 Cụm 2, với tâm là CL2, gồm có các phần tử : 10, 13, 15, 16, 18
 Cụm 3, với tâm là CL3, gồm có các phần tử : 23, 25, 27, 20, 37
Với phân hoạch này ta có giá trị hàm tiêu chuẩn là : E = 249.2 Do giá trị của
hàm mục tiêu này bé hơn sơ với trạng thái của nó trước đó nên ta có bước
lặp thứ hai như sau :
• Bước lặp thứ hai :
o Cập nhật lại tâm mới : CL1 =(1+2+4+5+8)/5 = 4
o Tương tự ta có : CL2 = 14.4; CL3 = 26.4
o Phân hoạch tương ứng với các tâm mới như sau :
 Cụm 1, với tâm là CL1, gồm có các phần tử : 1, 2, 4, 5, 8
 Cụm 2, với tâm là CL2, gồm có các phần tử : 10, 13, 15, 16,18,
20
 Cụm 3, với tâm là CL3, gồm có các phần tử : 23, 25, 27, 37
Với phân hoạch này ta có giá tri hàm tiêu chuẩn là : E = 224.8
Do giá trị của hàm mục tiêu này bé hơn sơ với trạng thái của nó trước đó nên ta
có bước lặp thứ ba như sau :
• Bước lặp thứ ba :
o Cập nhật lại tâm mới : CL1 = (1+2+4+5+8)/5 = 4
o Tương tự ta có : CL2 = 15.33; CL3 = 28
o Phân hoạch tương ứng với các tâm mới như sau :
 Cụm 1, với tâm là CL1, gồm có các phần tử : 1, 2, 4, 5, 8
 Cụm 2, với tâm là CL2, gồm có các phần tử : 10, 13, 15, 16, 20

 Cụm 3, với tâm là CL3, gồm có các phần tử : 23, 25, 27, 37
Với phân hoạch này ta có giá trị hàm mục tiêu là : E= 209.33
Chúng ta thực hiện thuật toán với bước tiếp theo do giá trị của hàm tiêu chuẩn
thu được vẫn bé hơn giá trị trước đó. Ở bước tiếp theo ta thấy thuật tóan sẽ dừng do
tâm mới cập nhật sẽ không bị thay đổi. Như vậy, kết quả phân cụm ta sẽ xác định giá
trị của ba tâm như sau: CL1 = 4; CL2 = 15.33; CL3 = 28;
Thuật toán K – means bao gồm các bước cơ bản như sau:
Input: Số cụm k và các trọng tâm ;
Output : Các cụm Ci ( i = 1,k ) và hàm tiêu chuẩn E đạt giá trị tối thiểu;
Begin
Bước 1 : Khởi tạo :
Chọn k trọng tâm ban đầu trong không gian Rd (d là số chiều của dữ liệu). Việc lựa
chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm.
Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


19
Bước 2 : Tính toán khoảng cách :
Đối với mỗi điểm Xi (1<= i <=n), tính toán khoảng cách của nó tới mỗi trọng tâm mj j
= 1,k. Và sau đó tìm trọng tâm gần đối với mỗi điểm.
Bước 3 : Cập nhật lại trọng tâm :
Đối với mỗi j = 1,k, cập nhật trọng tâm cụm mj bằng cách xác định trung bình cộng
của các vector đối tượng dữ liệu.
Bước 4 : Điều kiện dừng :
Lặp các bước 2 và 3 cho đến khi các trọng tâm của cụm không thay đối.
End
Thuật toán K – means tuần tự trên được chứng minh là hội tụ và có độ phức tạp tính
toán là: O((nkd)ITflop). Trong đó: n là số đối tượng dữ liệu, k là số cụm dữ liệu, d là số
chiều, I là số vòng lặp của thuật toán, T flop là thời gian để thực hiện 1 phép tính cơ sở

như phép tính nhân, chia,…
Như vậy, do K – means phân tích phân cụm đơn giản nên có thể áp dụng với tập dữ
liệu lớn. Tuy nhiên, nhược điểm của K – means là chỉ áp dụng với dữ liệu có thuộc
tính số và khám phá ra các cụm có dạng hình cầu. K – means còn rất nhạy cảm với
nhiễu và các phần tử ngoại lai trong dữ liệu. Hình 2.1 diễn tả mô phỏng về một số hình
dạng cụm dữ liệu khám phá được bởi k – means:

Hình 2.1 : Ví dụ về một số hình dạng cụm dữ liệu được khám phá bởi k – means
Hơn nữa, chất lượng PCDL của thuật toán k – means phụ thuộc vào các tham số
đầu vào như: số cụm k và k trọng tâm khởi tạo ban đầu. Trong trường hợp, các trọng
tâm khởi tạo ban đầu quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm
của thuật toán k – means rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so
với các cụm trong thực tế. Trên thực tế người ta chưa có 1 giải pháp tối ưu nào để chọn
các tham số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị
đầu vào k cụm khác nhau rồi sau đó chọn giải pháp tốt nhất. [3]
2.1.2 Thuật toán PAM
PAM (Partitioning Around Medois) là thuật toán mở rộng của thuật toán kmeans, nhằm có khả năng xử lý hiệu quả đối với dữ liệu nhiễm hoặc các phần tử ngoại

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


20
lai, đây là thuật toán phân cụm dữ liệu được đề xuất bởi Kaufman và Rousseeuw. Thay
vì sử dụng các trọng tâm như k-means, PAM sử dụng các đối tượng medoid để biểu
diễn cho các cụm dữ liệu, một đối tượng medoid là đối tượng đặt tại ví trí trung tâm
nhất bên trong của mỗi cụm. Vì vậy, các đối tượng medoid ít bị ảnh hưởng bởi các đối
tượng ở xa trung tâm, trong khi đó các trọng tâm của thuật toán k-means lại rất bị tác
động bởi những điểm ở xa trung tâm này. Ban đầu PAM khởi tạo lại k đối tượng
medoid và phân phối các đối tượng còn lại vào các cụm với các đối tượng medoid đại

diện tương ứng sao cho chúng tương tụ với các đối tượng medoid trong cụm nhất.
Chất lượng của mỗi cụm được khám phá đánh giá thông qua độ phi tương tự
trung bình giữa một đối tượng và đối tượng medoid tương ứng với cụm của nó, nghĩa
là chất lượng phân cụm được đánh giá thông qua chất lượng của các đối tượng
mediod. Độ phi tương tự ở đây thông thường được xác định bằng độ đo khoảng cách,
thuật toán PAM ở đây được áp dụng cho dữ liệu không gian.
Để xác định các mediod, PAM bắt đầu bằng cách lựa chọn k đối tượng mediod
bất kỳ. Sau mỗi bước thực hiện, PAM cố gắng hoán chuyển giữa đối tượng mediod O m
và một đối tượng Op không phải là medoid , miễn là sự hoán chuyển này nhằm cải tiến
chất lượng của phân cụm, quá trình này kết thúc khi chất lượng phân cụm không thay
đổi. Chất lượng phân cụm được đnsh giá thông qua hàm tiêu chuẩn, chất lượng phân
cụm tốt nhất khi hầm tiêu chuẩn đạt giá trị tối thiểu.
2.1.3 Thuật toán CLARA.
CLARA (Clustering Large Application) được Kaufman đề xuất năm 1990, thuật
toán này nhằm khắc phục nhược điểm của thuật toán PAM trong trường hợp giá trị của
k và n là lớn. CLARA tiến hành trích mẫu cho tập dữ liệu có n phần tử, nó áp dụng
thuật toán PAM cho mẫu này và tìm ra các đối tượng trọng tâm medoid cho mẫu trichs
từ dữ liệu này. Người ta thấy rằng, nếu mẫu dữ liệu được trích theo cách ngẫu nhiên,
thì các medoid của nó xấp xỉ với các medoid của toàn bộ tập dữ liệu ban đầu. Để tiến
tới một xấp xỉ tốt hơn, CLARA đưa ra nhiều cách lấy mẫu và thực hiện phân cụm trên
các mẫu này. Để cho chính xác, chất lượng của các cụm được đánh giá thông độ phi
tương tự trung bình của toàn bộ các đối tượng dữ liệu trong tập đối tượng ban đầu. Kết
quả thực nghiệm chỉ ra rằng, 5 mẫu dữ liệu có kích thước 40 + 20k cho các kết quả tốt.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


21
2.1.4 Thuật toán CLARANS

Thuật toán CLARANS được Ng & Han đề xuất năm 1994, nhằm để cải tiến cho
chất lượng cũng như mở rộng áp dụng cho tập dữ liệu lớn. CLARANS cũng sử dụng
các đối tượng trung tâm medoids làm đại diện cho các cụm dữ liệu.
Như đã biết, PAM là thuật toán phân hoạch có kiểu k-medoids. Nó bắt đầu khởi
tạo k tâm đại diện medoid và liên tục thay thế mỗi tâm bởi một đối tượng khác trong
cụm cho đến khi là tổng khoảng casach của các đối tượng đến tâm cụm không giảm.
CLARANS là thuật toán phân cụm dữ liệu kết hợp thuật toán PAM với chiến lược tìm
kiếm kinh nghiệm mới. Ý tưởng cơ bản của CLARANS là không xem xét tất cả các
khả năng có thể thay thế các đối tượng tâm medoids bởi một đối tượng khác, nó ngay
lập tức thay thế các đối tượng tâm này nếu việc thay thế này có tác động tốt đến chất
lượng phân cụm chứ không cần xác định cách thay thế tối ưu nhất. Một phân hoạch
cụm phát hiện được sau khi thay thế đói tượng trung tâm được gọi là láng giềng
(Neighbor) của phân hoạch cụm trước đó. Số các láng giềng được hạn chế bởi tham số
do người dung đưa vào là Maxneighbor, quá trình lựa chọn các láng giềng này là hoàn
toàn ngẫu nhiên. Tham số Numlocal cho phép người dung xác định số vòng lặp tối ưu
cục bộ được tìm kiếm. Không phải tất cả các láng giềng được duyệt mà chỉ có
Maxneighbor số láng giềng được duyệt
2.2 Họ Thuật toán phân cấp
2.2.1 Thuật toán BIRCH
BIRCH (Balanced Iterative Reducing an Clustering Using Hierarchies) là thuật
toán phân cụm phân cấp sử dụng chiến lược phân cụm trên xuống (Top down). Ý
tưởng của thuật toán là không cần lưu toàn bộ các đối tượng dữ liệu của các cụm trong
bộ nhớ mà chỉ lưu các đại lượng thống kê. Đối với mỗi dữ liệu, BIRCH chỉ lưu một bộ
ba (n, LS, SS), trong đó n là số đối tượng trong cụm, LS là tổng các giá trị thuộc tính
của các đối tượng trong cụm và SS là tổng bình phương của các giá trị thuộc tính của
các đối tượng trong cụm. Các bộ ba này được gọi là các đặc trưng của cụm (Cluster
Features – CF) và được lưu trữ trong 1 cây được gọi là cây CF (CF tree). Người ta
chứng minh rằng, các đại lượng thống kê chuẩn như đại lượng độ đo khoảng cách, có
thể xác định từ cây CF. Hình 2.3 dưới đây hiển thị 1 ví dụ về cây CF. Chúng ta thấy


Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


22
rằng, tất cả các nút trong của cây lưu tổng các đặc trưng cụm CF của nút con, trong khi
đó các nút lá lưu trữ các đặc trưng của các cụm dữ liệu.

Hình 2.2: Cây CF được sử dụng bởi thuật toán BIRCH
Cây CF là cây cân bằng, nhằm để lưu trữ các đặc trưng của cụm (CF). Cây CF
chứa các nút trong và nút lá, nút trong là nút chứa các nút con và nút lá thì không có
con. Nút trong lưu trữ tổng các đặc trưng cụm (CF) của các nút con của nó. Một cây
CF được đặc trưng bởi 2 tham số :
• Yếu tố nhánh (Branching Factor – B): Nhằm xác định số tối đa các nút con
của mỗi nút trong của cây.
• Ngưỡng (Threshold – T): Khoảng cách tối đa giữa bất kỳ 1 cặp đối tượng
trong nút lá của cây, khoảng cách này còn được gọi là đường kính của các
cụm con được lưu tại các nút lá.
Hai tham số này có ảnh hưởng đến kích thước của cây CF.
Thuật toán BIRCH thực hiện qua giai đoạn sau :
• Giai đoạn 1: BIRCH duyệt tất cả các đối tượng trong CSDL và xây dựng 1
cây CF khởi tạo. Trong giai đoạn này, các đối tượng lần lượt được chèn vào
nút lá gần nhất của cây CF (nút lá của cây đóng vai trò là cụm con), sau khi
chèn xong thì tất cả các nút trong cây CF được cập nhật thông tin. Nếu
đường kính của cụm con sau khi chèn lá lớn hơn ngưỡng T, thì nút lá được

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông



23
tách. Quá trình này lặp cho đến khi tất cả các đối tượng đều được chèn vào
trong cây. Ở đây ta thấy rằng, mỗi đối tượng trong cây chỉ được đọc 1 lần,
để lưu toàn bộ cây CF trong bộ nhớ thì cần phải điều chỉnh kích thước cây
CF thông qua điều chỉnh ngưỡng T.
• Giai đoạn 2: BIRCH lựa chọn 1 thuật toán PCDL (như thuật toán phân cụm
phân hoạch chẳng hạn) để thực hiện PCDL cho các nút lá của cây.
Thuật toán BIRCH thực hiện qua các bước cơ bản như sau :
Bước 1: Các đối tượng dữ liệu lần lượt được chèn vào cây CF, sau khi chèn
hết các đối tượng ta thu được cây CF khởi tạo. Một đối tượng được chèn
vào nút lá gần nhất tạo thành cụm con. Nếu đường kính của cụm con này
lớn hơn T thì nút lá được tách. Khi một đối tượng thích hợp được chèn vào
nút trỏ tới gốc của cây được cập nhật với các thông tin cần thiết.
Bước 2: Nếu cây CF hiện thời không có đủ bộ nhớ trong thì tiến hành cây
dựng một cây CF nhỏ hơn: Kích thước của cây CF được điều khiển bởi
tham số T và vì vậy việc chọn một giá trị lớn hơn cho nó sẽ hòa nhập một
số các cụm con thành một cụm, điều này làm cho cây CF nhỏ hơn. Bước
này không cần yêu cầu bắt đầu đọc dữ liệu lại từ đâu nhưng vẫn đảm bảo
hiệu chỉnh cây dữ liệu nhỏ hơn.
Bước 3:Thực hiện phân cụm: Các nút lá của cây CF lưu giữ các đại lượng
thống kê của các cụm con. Trong bước này, BIRCH sử dụng các đại lượng
thống kê này để áp dụng một số kỹ thuật phân cụm thí dụ như K-means và
tạo ra một khởi tao cho phân cụm.
Bước 4: Phân phối ngược lại các đối tượng dữ liệu bằng cách dùng các đối
tượng trọng tâm cho các cụm đã được khám phá từ bước thứ 3. Đây là một
bước tùy chọn để duyệt lại tập dữ liệu và gán nhãn lại cho các đối tượng dữ
liệu tới các trọng tâm gần nhất. Bước này nhằm để gán nhãn cho các dữ
liệu khởi tạo và loại bỏ các đối tượng ngoại lai.
Với cấu trúc cây CF được sử dụng, BIRCH có tốc độ thực hiện PCDL nhanh và
có thể áp dụng đối với tập dữ liệu lớn, đặc biệt, BIRCH hiệu quả khi áp dụng với tập

dữ liệu tăng trưởng theo thời gian. BIRCH chỉ duyệt toàn bộ dữ liệu 1 lần với 1 lần
quét thêm tùy chọn, nghĩa là độ phức tạp của nó là O(n), với n là số đối tượng dữ liệu
trong tập dữ liệu ban đầu.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


24
Nhược điểm của nó là chất lượng của các cụm được khám phá không được tốt.
Nếu BIRCH sử dụng khoảng cách Euclide, nó thực hiện tốt chỉ với các dữ liệu số. Mặt
khác, tham số vào T có ảnh hưởng rất lớn đến kích thước và tính tự nhiên của cụm.
Việc ép các đối tượng dữ liệu làm cho các đối tượng của 1 cụm có thể là đối tượng kết
thúc của cụm khác, trong khi các đối tượng gần nhau có thể bị hút bởi các cụm khác
nếu chúng được biểu diễn cho thuật toán theo 1 thứ tự khác. BIRCH không thích hợp
với dữ liệu đa chiều
2.2.2 Thuật toán CURE
Việc chọn một cách biểu diễn cho các cụm có thể nâng cao chất lượng phân
cụm. Thuật toán CURE (Clustering Using RExpresentatives) là thuật toán sử dụng
chiến lược dưới lên (Bottom up) của kỹ thuật phân cụm phân cấp.
Thay vì sử dụng các trọng tâm hoặc các đối tượng tâm để biểu diễn cụm, CURE
sử dụng nhiều đối tượng để diễn tả cho mỗi cụm dữ liệu. Các đối tượng đại diện cho
cụm này ban đầu được lựa chọn rải rác đều ở các vị trí khác nhau, sau đó chúng được
di chuyển bằng cách co lại theo một tỉ lệ nhất định. Tại mỗi bước của thuật toán, hai
cụm có cặp đối tượng đại diện gần nhất ( đối tượng thuộc về mỗi cụm) sẽ được trộn lại
thành một cụm.
Với cách thức sử dụng nhiều hơn một phần tử đại diện cho các cụm, CURE có
thể khám phá được các cụm có các hình thù và kích thước khác nhau trong cơ sở dữ
liệu lớn. Việc co các đối tượng đại diện lại có tác dụng làm giảm tác động của các
phần tử ngoại lại, vì vậy, CURE có khả năng xử lý đối với các phần tử ngoại lai.

2.3 Họ thuật toán dựa trên mật độ
2.3.1 Thuật toán DBSCAN
Thuật toán DBSCAN ((Density Based Spatial Clustering of Applications with
Noise) do Martin Ester và các tác giả khác đề xuất là thuật toán gom tụm dựa trên mật
độ, hiệu quả với cơ sở dữ liệu lớn, có khả năng xử lý nhiễu.Ý tưởng chính của thuật
toán là vùng lân cận mỗi đối tượng trong một cụm có số đối tượng lớn hơn ngưỡng tối
thiểu. Hình dạng vùng lân cận phụ thuộc vào hàm khoảng cách giữa các đối tượng
(nếu sử dụng khoảng cách Manhattan trong không gian 2 chiều thì vùng lân cận có
hình chữ nhật, nếu sử dụng khoảng cách Eucler trong không gian 2 chiều thì vùng lân
cận có hình tròn).Các đối tượng trong mỗi cụm được phân làm 2 loại: đối tượng bên
Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


25
trong cụm (core point: đối tượng lõi) và đối tượng nằm trên đường biên của cụm
(border point: đối tượng biên).
Định nghĩa 1: Lân cận với ngưỡng Eps của một điểm ( Eps – Neighborhood of
a point)
Một điểm p muốn nằm trong một cụm C nào đó thì lân cận với ngưỡng Eps
phải có tối thiểu Minpts điểm. Số điểm tối thiểu được chọn là bao nhiêu thì cũng là bài
toán khó. Nếu số điểm tối thiểu lớn thì chỉ những điểm nằm thực sự trong cụm C mới
đạt đủ tiêu chuẩn, trong khi đó những điểm nàm ngoài biên của cụm không thể đạt
được điều đó. Ngược lại nếu số điểm tối thiểu lf nhỏ thì mọi điểm sẽ rơi vào một cụm.
Định nghĩa 2: Đến được trực tiếp theo mật độ ( Directly Density-reachable)
Một điểm p được gọi là đến được trực tiếp từ điểm q với ngưỡng Eps.
Điểm q được gọi là điểm nhân (Core Point). Có thể thấy là đến được trực tiếp
một hàm phản xạ và đối xứng đối với hai điểm nhân và bất đối xứng nếu một trong 2
điểm đố không phải điểm nhân.
Định nghĩa 3: Đến được mật độ ( Density- Reachalbe) Một điểm p được gọi là

đến được tù một điểm q theo hai tham số Eps và Minpts nesu tồn tại một dãy p = p 1,
p2, p3…. Pn =q thỏa mãn pi+1 là có thể đến được trực tiếp từ pi.
Định nghĩa 4: Liên thông mật độ (Density – Connectivity)
Một điểm p được gọi là điểm liên thông với điểm q theo hai tham số Eps
với Mints nếu như tồn tại một điểm o mà cả hai điểm p,q đều có thể đến được
theo tham số Eps và Minpts. Liên thông mật độ có tính chất đối xứng và phản
xạ.
2.3.2 Thuật toán OPTICS
Đây là thuật toán mở rộng của thuật toán DBSCAN, bằng cách giảm bớt các
tham số đầu vào. OPTICS (Ordering Points To Identify the Clustering Structure) sắp
xếp các cụm theo thứ tự tăng dần nhằm tự động phân cụm dữ liệu. Thứ tự này diễn tả
cấu trúc dữ liệu phân cụm dựa trên mật độ chứa thông tin tương đương với phân cụm
dựa trên mật độ với một dãy các tham số đầu vào. OPTICS xem xét bán kính tối thiểu
nhằm xác định các láng giềng phù hợp với thuật toán. DBSCAN và OPTICS tương tự
với nhau về cấu trúc và có cùng độ phức tạp: O (nLogn) (N là kích thước của tập dữ
liệu.

Giáo viên hướng dẫn: Đặng Thị Thu Hiền
Sinh viên: Nguyễn Duy Thông


×