Trong khi công nghệ cho việc lưu trữ dữ liệu có những bước tiến mạnh mẽ để đáp ứng kịp với yêu cầu phát triển thì các kỹ thuật để phân tích dữ liệu phát triển chậm chạp cho tới khi một s
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2LỜI MỞ ĐẦU: 3
I.QUÁ TRÌNH KHAI MỎ DỮ LIỆU: 4
1 Các bước khai khá dữ liệu: 4
1.1 Trích chọn dữ liệu 4
1.2 Tiền xử lý dữ liệu 6
1.3 Biến đổi dữ liệu 6
1.4 Khai thác dữ liệu 8
1.5 Đánh giá và biểu diễn tri thức 8
2 Một số bài toán trong Data Mining 8
II.PHÂN CỤM DỮ LIỆU: 9
1 Khái niệm về phân cụm dữ liệu 9
2 Độ đo tương tự 10
3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu 11
3.1 Phương pháp phân chia 11
3.2 Phương pháp phân cấp 12
3.3 Phương pháp dựa trên mật độ 13
3.4 Phương pháp dựa trên lưới 13
4 Phân cụm dữ liệu bán giám sát 14
4.1 Giải thuật K-Means 15
4.2 Giải thuật Seeded-Kmeans 16
4.3 Thuật toán cho chương trình 17
III.KẾT QUẢ CHƯƠNG TRÌNH VÀ ĐÁNH GIÁ 18
1 Một số kết quả của chương trình 18
Trang 31.1 Thu thập dữ liệu một website 19
1.2 Tìm các website tương tự 21
1.3 Tìm các website theo chủ đề 21
1.4 Phân cụm các website 22
2 Đánh giá 25
Trang 4Lời mở đầu:
Mỗi buổi sáng, khi bạn thức dậy đọc báo điện tử Bạn lướt qua các nội dung chính của một website nào đó Sau đó bạn tiếp tục lướt qua website khác để tìm đọc Khi đó sẽ có những bài báo có nội dung khá giống nhau, điều này rất phổ biến Điều này làm tốn thời gian của bạn Bạn muốn mình chỉ đọc chúng một lần ở một nơi
Sau khi diễn ra một lễ hội, hội họp, … sự kiện đặc biệt nào đó Thì sẽ có rất nhiều bài báo về thông tin này, sẽ có những bài giống nhau, khác nhau Và bạn
sẽ phải tốn thời gian để lọc và kết hợp những nội dung bài báo này lại để có cái nhìn chính xác về sự kiện đó
Khi bạn muốn tìm hiểu về một thông tin nào đó, với nhiều công cụ tìm kiếm, điển hình là Google, bạn sẽ nhận được hàng loạt các website có nội dung liên quan đến thông tin đó Bạn phải đọc, duyệt từng website Nếu chưa đáp ứng đủ yêu cầu của bạn, bạn sẽ phải đọc sang website khác Nhưng lại gặp phải trường hợp website này có nội dung y hệt website kia hay website này chỉ khác website kia một ít nội dung Hoặc có vài nội dung xen kẻ không hữu ích cho bạn sẽ dễ làm bạn phân tâm, mất tập trung
Ngoài ra, hằng ngày bạn muốn có các thông tin về thời sự, hay an ninh, …
ở các trang như http://www.tuoitre.vnhttp://dantri.com.vn … Bạn không muốn phải duyệt từng trang để có được thông tin đó Bạn muốn có một chương trình nào đó tổng hợp lại các thông tin đó cho mình
Bằng cách gom lại các website, chủ đề tương tự nhau Ta sẽ kết hợp các dữ liệu đó lại với nhau, lọc loại bỏ các nội dung giống nhau để đưa cho người dùng một kết quả đầy đủ và tốt nhất Điều này thì liên quan khá chặt chẽ đến
khái niệm data mining Do đó chúng ta cùng tìm hiểu xem data mining là gì,
chương trình sẽ ứng dụng chúng như thế nào để đạt được vấn đề đặt ra
Trang 5I Quá trình khai mỏ dữ liệu:
Trong vài thập kỷ gần đây, số lượng dữ liệu lưu trữ trong các hệ thống cơ
sở dữ liệu cũng như các ứng dụng cơ sở dữ liệu trong các lĩnh vực kinh doanh và khoa học đã tăng lên một cách không ngờ Những cơ sở dữ liệu rất lớn ra đời lên đến hàng trăm hàng ngàn Terabyte Trong khi công nghệ cho việc lưu trữ dữ liệu
có những bước tiến mạnh mẽ để đáp ứng kịp với yêu cầu phát triển thì các kỹ thuật để phân tích dữ liệu phát triển chậm chạp cho tới khi một số công ty nhận
ra rằng các tri thức tiềm ẩn trong các nguồn dữ liệu khổng lồ của họ là một mỏ quý cần phải được khai thác nhằm hỗ trợ công việc kinh doanh vốn càng ngày càng phải đối mặt với những điều kiện cạnh tranh khốc liệt Họ nhận ra rằng dữ liệu được lưu trữ trong cơ sở dữ liệu chỉ là phần nổi của một núi băng thông tin
Kỹ thuật rút trích tri thức từ các kho, cơ sở dữ liệu lớn được gọi là Data Mining Các lợi ích thấy rõ của Data Mining đã thúc đẩy chúng phát triển nhanh chóng
và rộng lớn trong những năm gần đây Quá trình khai phá dữ liệu có thể chia thành các bước thực hiện như sau:
1 Các bước khai khá dữ liệu:
Trang 6Ở đây ta duyệt các trang của một website bằng cách tìm sẽ tìm kiếm theo chiều rộng
- Gọi W là danh sách các website ta cần duyệt
- Gọi P là danh sách các trang cần duyệt của một website P ban đầu chứa địa chỉ website cần duyệt
- Ngừng duyệt webiste khi đã duyệt hết N trang của website hay website không còn trang nào để duyệt
- Sau đây là các bước ta duyệt một website
While ( điều kiện duyệt )
{
Lấy trang đầu tiên trong P
Nếu chưa duyệt
Tìm các liên kết bên trong trang, đưa vào cuối danh sách PTìm các liên kết bên ngoài, đưa vào cuối danh sách W
Trang 7Đánh dấu đã duyệt}
- Ta làm tương tự với danh sách W
Trong phạm vi bài thu hoạch này chương trình chỉ xét duyệt với các
website có nội dung là tiếng việt Các website không phải là tiếng việt thì
chương trình sẽ không duyệt
1.2 Tiền xử lý dữ liệu
- Có nhiệm vụ làm sạch, loại bỏ nhiễu, rút gọn và rời rạc hóa dữ liệu
- Với các trang html ta sẽ trích lấy văn bản
- Sau đó loại các ký tự dư thừa như (~!@#$, …)
- Tiếp đến lọc thành các từ dựa vào từ điển hay bộ phân tích cú pháp
- Loại bỏ các stop-word (dựa vào danh sách stop-word, danh sách này sẽ được cập nhật theo thời gian bởi máy hay người)
- Đếm số lần xuất hiện của các từ
1.3 Biến đổi dữ liệu
- Nhằm chuẩn hóa và làm mịn dữ liệu để chuyển dữ liệu về dạng thuận
lợi nhất phục vụ cho việc khai phá
- Lấy n từ xuất hiện nhiều nhất, chuyển số lần xuất hiện về %
Bước 2 và 3 có thể được tóm tắt như hình dưới đây
Lưu trữ thông tin của webiste
Các trang HTML
của một website
Chuyển về dạng văn bản Kho lưu trữ các
trang dạng văn bản
Trang 8Vì sau này thuật toán phân tích câu, tách từ có thể thay đổi hay ta cần phải chạy nhiều thuật toán một lúc để tìm kết quả tốt nhất, cho nên phải lưu trữ lại các trang HTML (ở dạng văn bản)
Phân tích lấy các top-word của website
Từ điển / bộ phân tích cú pháp câu
Tách văn bản thành các câuLoại bỏ các câu thừa
Tách các câu thành các từ
Loại bỏ các stop-word
Danh sách các stop-word
Đếm số lần xuất hiện của
các từ
Kho lưu trữ các
trang dạng văn bản
Lấy các từ xuất hiện nhiều
Chuyển số lần xuất hiện thành phần trăm Kho lưu trữ các
top-word
Trang 91.4 Khai thác dữ liệu
- Dùng các kỹ thuật phân tích để khai thác dữ liệu, trích chọn các mẫu thông tin cần thiết,… công đoạn này được xem là mất thời gian nhất và cũng là quan trọng nhất trong quá trình khai thác dữ liệu
- Đối với chương trình này, ban đầu ta sử dụng thuật toán phân cụm bán giám sát là Seed-KMeans để thử nghiệm với dữ liệu text Sẽ được nói
kỹ hơn trong phần phân cụm dữ liệu
1.5 Đánh giá và biểu diễn tri thức
- Các thông tin và mối liên hệ giữa chúng vừa khám phá trong công đoạn trước được biểu diễn dưới các dạng trực quan đồng thời được đánh giá theo những tiêu chí nhất định
2 Một số bài toán trong Data Mining
- Phân lớp và dự đoán (Classification and Prediction): đưa một đối tượng vào một trong các lớp đã biết trước Phân lớp và dự đoán còn được gọi là học có giám sát Ví dụ từ nguồn dữ liệu thu thập từ khách hàng, sử dụng kỹ thuật phân lớp, ngân hàng có thể tìm ra các luật để phân chia khách hàng ra làm hai loại: loại thứ nhất nên đầu tư và loại thứ hai không nên đầu tư
- Luật kết hợp (Association rules): là lớp bài toán để tìm ra sự liên kết giữa một thuộc tính với các thuộc tính khác Ví dụ: (tuổi < 25) và (thu nhập > 3 triệu) thì (xe sử dụng = Dream)
- Phân tích chuỗi theo thời gian: giống như khai phá luật kết hợp nhưng
có thêm tính thứ tự và thời gian Giả sử ta có một cơ sở dữ liệu chứa các thông tin về các thảm họa tự nhiên Từ dữ liệu này nếu ta có thể kết luận
là nếu có lụt ở Huế thì ngày tiếp theo sẽ có mưa lũ ở Đà Nẵng thì đây là một luật có dạng nối tiếp Những luật loại này rất có ích cho công việc
dự báo
Trang 10- Phân cụm (Clustering): Nhóm các đối tượng thành từng cụm dữ liệu Đây là phương pháp học không giám sát Ví dụ trong lập quy hoạch đô thị, phân cụm giúp cho việc nhận dạng cá nhóm nhà theo kiến trúc và vị trí địa lý để lập quy hoạch đô thị hợp lý.
- Mô tả khái niệm: Mô tả, tổng hợp và tóm tắt khái niệm, ví dụ như tóm tắt văn bản
Ở đây ta quan tâm về phân cụm dữ liệu chứ không phải phân loại dữ liệu bởi vì ta sẽ không biết xác định được các đặc tính chính xác của một cụm dữ liệu là gì, bao nhiêu lớp, chủ đề được phân loại
II Phân cụm dữ liệu:
1 Khái niệm về phân cụm dữ liệu
Phân cụm dữ liệu là một kỹ thuật phát triển mạnh mẽ trong nhiều năm trở lại đây do các ứng dụng và lợi ích to lớn của nó trong các lĩnh vực trong thực tế Ở một mức cơ bản nhất người ta định nghĩa phân cụm dữ liệu như sau :
- Phân cụm dữ liệu là một kỹ thuật trong Data mining nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn và quan trọng trong tập dữ liệu lớn để từ đó cung cấp thông tin, tri thức cho việc ra quyết định
- Do đó, phân cụm dữ liệu là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu sao cho các đối tượng trong một cụm thì “tương tự” nhau và các đối tượng trong các cụm khác nhau thì “phi tương tự” với nhau Số cụm dữ liệu được xác định bằng kinh nghiệm hoặc bằng một số phương pháp phân cụm
Trang 11Sau khi xác định các đặc tính của dữ liệu, người ta đi tìm cách thích hợp
để xác định "khoảng cách" giữa các đối tượng, hay là phép đo tương tự dữ liệu Đây chính là các hàm để đo sự giống nhau giữa các cặp đối tượng dữ liệu, thông thường các hàm này hoặc là để tính độ tương tự (Similar) hoặc
là tính độ phi tương tự (Dissimilar) giữa các đối tượng dữ liệu Giá trị của hàm tính độ đo tương tự càng lớn thì sự giống nhau giữa đối tượng càng lớn
và ngược lại, còn hàm tính độ phi tương tự tỉ lệ nghịch với hàm tính độ tương tự
Trong quá trình phân cụm dữ liệu thì vấn đề trở ngại lớn nhất đó là nhiễu (noise) Nhiễu xuất hiện do trong quá trình thu thập thông tin, dữ liệu thiếu chính xác hoặc không đầy đủ Vì vậy chúng ta cần phải khử nhiễu trong quá trình tiến hành phân cụm dữ liệu
Các bước của một bài toán phân cụm dữ liệu gồm:
- 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 dữ liệu
- Xây dựng thuật toán phân cụm và 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
là tương tự hoặc phi tương tự Một tập dữ liệu X là không gian metric nếu:
Trang 12- Với mỗi cặp x,y thuộc X đều xác định được một số thực d(x,y) theo một quy tắc nào đó và được gọi là khoảng cách của x,y.
- Quy tắc đó phải thoả mãn các tính chất sau:
o d(x,y) > 0 nếu x ≠ y
o d(x,y) = 0 nếu x = y
o d(x,y) = d(y,x)
o d(x,y) <= d(x,z) + d(z,y)
Ví dụ vài top-word của http://www.tuoitre.vn
Key = xã hội Value = 1.9525532
Key = bạn đọc Value = 1.5920393
Key = ý kiến Value = 1.4715848
Key = tài chính Value = 1.4375942
Thì khoảng cách giữa 2 website dựa trên top-word được tính như sau:
d(x, y)
Với x là website A, y là website B Gọi s là tổng top-word của x và y, n
là tổng số top-word của s, pxi là phần trăm của từ thứ i của s trong x, pyi là phần trăm của từ thứ i của s trong y
3 Những kỹ thuật tiếp cận trong phân cụm dữ liệu
3.1 Phương pháp phân chia
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: Mỗi nhóm phải chứa ít nhất một đối
Trang 13tượng, mỗi đối tượng phải thuộc về chính xác một nhóm 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-medoids vớ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 Ta sẽ xem xét kỹ hơn ở mục 4
3.2 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
Trang 14đượ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 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
3.3 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ỳ
BSCAN 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
3.4 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ý
Trang 15nhanh 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
4 Phân cụm dữ liệu bán giám sát
Trong những năm trở lại đây, do phương pháp phân cụm dữ liệu không giám sát còn nhiều nhược điểm vì vậy dựa trên học không giám sát và học
có giám sát đã ra đời một phương pháp phân cụm dữ liệu mới đó là phương pháp phân cụm dữ liệu nửa giám sát Phương pháp phân cụm nửa giám sát không phải là một phương pháp phân cụm hoàn thiện nhưng nó đã phần nào khắc phục được những hạn chế và phát huy ưu điểm của phương pháp phân cụm không giám sát
Phân cụm nửa giám sát là phương pháp sử dụng các thông tin bổ trợ để hướng dẫn cho quá trình phân cụm Các thông tin bổ trợ có thể được cho dưới dạng tập các cặp ràng buộc hoặc một tập nhỏ một số dữ liệu được dán nhãn Công việc xác định những tập ràng buộc hay những tập dữ liệu được dán nhãn được thực hiện bởi người phân cụm Việc xác định này tuỳ thuộc vào kinh nghiệm của người phân cụm hoặc có thể dựa vào các tiêu chuẩn khác nhau tuỳ theo mục đích của việc phân cụm
Trong phần sau ta cùng xem thuật toán: Seeded-KMeans Trước hết ta hãy xem lại thuật toán k-means