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ệutrong một số trường hợp, mô hình được xâydựng độc lập với dữ liệu trong khi đối với
Trang 1LỜI MỞ ĐẦU 4
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ PHÂN CỤM 5
1.1 Tại sao phải khai phá dữ liệu? 5
1.2 Khai phá dữ liệu là gì? 5
1.3 Các thành phần cơ bản của khai phá dữ liệu 5
1.4 Các bước chính trong khai phá dữ liệu 7
1.5 Phân loại khai phá dữ liệu 8
1.6 Phạm vi ứng dụng của khai phá dữ liệu 9
1.7 Những thách thức - khó khăn trong khai phá dữ liệu 9
1.7.1 Các vấn đề về cơ sở dữ liệu 10
1.7.2 Một số vấn đề khác 12
1.8 Phân cụm dữ liệu 13
1.8.1 Khái niệm phân cụm 13
1.8.2 Ứng dụng của phân cụm 16
1.9 Kết luận 16
2.1 Họ thuật toán phân hoạch 18
2.1.1 Thuật toán K-means 18
2.1.2 Thuật toán PAM 21
2.1.4 Thuật toán CLARANS 22
2.2 Họ Thuật toán phân cấp 23
2.2.1 Thuật toán BIRCH 23
2.2.2 Thuật toán CURE 26
2.3 Họ thuật toán dựa trên mật độ 26
Trang 22.3.2 Thuật toán OPTICS 27
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 28
3.1 Phát biểu bài toán 28
3.2 Xác định mục tiêu cần khai phá 28
3.3 Lựa chọn thuật toán 29
3.4 Xây dựng chương trình 29
3.4.1 Tiền xử lý dữ liệu 29
3.4.2 Xây dựng chương trình 32
3.5 Nhận xét đánh giá 37
KẾT LUẬN 38
TÀI LIỆU THAM KHẢO 39
Trang 3LỜ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ậntì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ũngxin 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 emtrong 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ânthà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ấtmong 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ànthiện đồ án tốt hơn
Em xin chân thành cảm ơn
SINH VIÊNNGUYỄN DUY THÔNG
Trang 4đó 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ệuquả 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ụmvà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
Trang 5CHƯƠ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êntoà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ủacá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ệuchúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ đi” ấykhô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ề DataMining 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ìnhphâ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ầnmề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ácnhau, 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ườngtrong 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ữ
Trang 6liệ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ộctính Phương pháp cây quyết định như vậy không thể khai thác được từ dữ liệudạ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ả đượccá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ìnhcà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ứctạ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 raphụ thuộc vào Sau đó phải tìm những tham số mà bài toán cần tập trung giảiquyế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âydự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, suydiễ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ựatrê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
Trang 7thự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ớimạng neuron, việc đánh giá mô hình được thực hiện dựa trên việc kiểm tra dữ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ìmkiế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ệuquan 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 đượcbằ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ươngpháp giảm gradient trong giải thuật lan truyền ngược(backpropagation) cho cácmạ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áptì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ỗimột mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chấtlượ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ậttìm kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăncả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ạchóa
Trang 8Biế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áckỹ
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,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ờibướ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
Trang 9• 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ờitiế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ámsát (học không thầy)
• 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 ứngdụ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áocao
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ự quantâ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 khaiphá 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
Trang 10cũ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ệuchí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ảiquyế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ìnhthường Hiện nay đã bắt đầu xuất hiện các cơ sở dữ liệu có kích thước tớiterabytes Các phương pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở
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ớnhơ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ìmkiế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ậtkhai 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ảmkí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 địnhcá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ệckhai 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ớinhấ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
Trang 11cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị xóa hoặc là tănglê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ằngcá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ớitrọ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ênquan đế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 concủ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ácnhâ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ốngtươ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ắngmặ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 coinhư 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ảiphá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ânbiệ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ệnhsố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 kinhdoanh Các thuộc tính quan trọng có thể sẽ bị thiếu nếu dữ liệu không đượcchuẩ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ácgiá 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à
Trang 12có thể thuộc vào tập các giá trị định danh Các giá trị định danh này có thể sắpxế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ínhxá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ínhtoá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ẫunhiên được tạo ra và được sử dụng để định nghĩa độ mong muốn và độ dung saicủ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à đánhgiá 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 khaiphá 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êucầu độ chính xác cao hơn Để một hệ thống khai thác có thể liên hệ đến xuhướ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ấutrú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 khaiphá 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 ramố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ệntượ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ảipháp khắc phục bao gồm đánh giá chéo(cross-validation) , thực hiện theonguyên tắc nào đó hoặc sử dụng các biện pháp thống kê khác Đánh giá tầmquan trọng thống kê: Vấn đề(liên quan đến overfitting) xảy ra khi một hệ thống
Trang 13tì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ụngphươ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ấutrú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 trithức miền là rất quan trọng trong khai phá dữ liệu Đã có nhiều biện pháp nhằmkhắ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 khaiphá 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àophâ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ácthô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
Trang 14y 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 địnhcủ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:
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ếttrướ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ềutrường hợp, khi phân lớp (Classification) được xem là vấn đề học có giám sát thì phân
Trang 15cụ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ớpcho 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ắcphụ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ễuphổ 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êncứ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 trongCSDL - 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ậnthươ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
* 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átnà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ácphươ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
Trang 16nhau, đặ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ôngngừ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 tronglĩ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àonghiê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ụngtrong nhiều lĩnh vực như thương mại và khoa học Các kỹ thuật PCDL đã được ápdụ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ệuthu đượ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áchchi 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ônggian 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ấpthô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
- 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,…
Trang 171.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áchhà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ọncá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 độngkinh doanh của họ(Berry 1994) Kết quả ứng dụng cho thấy số lượng thẻ tín dụngAmerican Express bán ra đã tăng 15% - 20%(Berry 1994) Các ứng dụng khác củakhai phá dữ liệu trong kinh doanh như phân tích chứng khoán và các văn kiện tàichính; phân tích và báo cáo những thay đổi trong dữ liệu, bao gồm Coverstory củaIRI(Schmitz, Armstrong, & Little 1990) , Spotlight của A C Nielsen(nand & Kahn1992) đố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 ytế(Matheus, Piatetsky-Shapiro, & McNeil) ; phát hiện và phòng chống gian lận cũngthườ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áthiện gian lận trong dịch vụ y tế đã được Major và Riedinger phát triển tại Travelersinsurance 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ụngcho 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ảnkhả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)
Trang 18• 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)
Trang 19CHƯƠ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:
D2(x−m i) đạ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 trongcụ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ậttoá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ườidù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 rathà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àynhư 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|)
Trang 20Như 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
Cụm 3, với tâm là CL3, gồm có các phần tử : 23, 25, 27, 37Vớ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 :
Trang 21 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, 37Vớ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ẩnthu đượ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 dotâ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 {mj } k j=1;
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 {mj } k j=1 ban đầu trong không gian Rd (d là số chiều của dữ liệu) Việclựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm
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ộngcủ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ínhtoá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, Tflop 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
Trang 22tí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ớinhiễ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ìnhdạ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ọngtâ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ụmcủ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 sovớ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ọncá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 means, 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ạilai, đây là thuật toán phân cụm dữ liệu được đề xuất bởi Kaufman và Rousseeuw Thay
k-vì sử dụng các trọng tâm như k-means, PAM sử dụng các đối tượng medoid để biểudiễ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âmnhấ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 đốitượ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ượngmedoid 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 đạidiệ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