PHÂN CỤM THEO KẾT QUẢ TèM KIẾM WEB

Một phần của tài liệu Một số vấn đề về phân cụm dữ liệu (Trang 104)

Tỡm kiếm theo nội dung trờn web thường tổ chức thành cỏc nhúm, do đú những nhúm khỏc nhau thỡ tương ứng với những nhu cầu khỏc nhau. Vớ dụ: Tại sao khụng cú những kỹ thuật tỡm kiếm khỏc ? [8][16] v Sử dụng nội dung của tài liệu - Tạo ra cỏc cụm dựa trờn những đoạn trớch ra bởi cỏc cụng cụ tỡm kiếm web. - Cỏc cụm dựa trờn những đoạn trớch hầu hết cú chất lượng bằng với cỏc cụm tạo ra từ nội dung đầy đủ của web.

- Tiếp hậu tố cõy phõn cụm (STC-Suffix Tree Clustering) cú độ phức tạp của giải thuật đạt đến cỡ O(n). Cõy này cú những đặc điểm (tuyến tớnh, lớn dần, chồng chộo, cú thể mở rộng để phõn cấp).

Thut toỏn STC

1. Bước 1: Quỏ trỡnh làm sạch

- Bự vào những phần khuyết thiếu của cõu.

- Xỏc định ranh giới của cõu.

- Loại bỏ cỏc dấu cõu.

2. Bước 2: Cấu tạo của cõy tiếp hậu tố

- Những cụm cơ sở được tớnh điểm dựa trờn cỡ (nú phụ thuộc vào độ dài và chất lượng của từ tỡm kiếm).

3. Bước 3: Nối lại những cụm cơ sở

- Những cụm bị chồng chộo được nối lại.

v Sử dụng truy cập của người sử dụng

- Thuận lợi: Sự phự hợp thụng tin là những đối tượng được phản hồi từ truy cập sử dụng.

- Một kết quả thớ nghiệm cụ thể cú thể tham khảo tại www.nasa.gov/ như hỡnh 4.17.

Hỡnh 4.17. Phõn cum dựa theo truy cập người sử dụng

v Sử dụng siờu liờn kết

- Với mỗi đường dẫn URL P trong kết quả tỡm kiếm R, chỳng ta mở rộng cho tất cả cỏc đường liờn kết ra tại đỉnh n của đường vào như của dịch vụ Alta Vista.

- Chỳng ta cú thể nhận được N đường liờn kết ra phõn biệt và M đường liờn kết vào phõn biệt cho tất cả cỏc URL trong R.

- Đối với mỗi trang P trong R (tập kết quả) được biểu diễn bởi 2 vectơ + POut (N- chiều)

+ PIn (M- chiều) - Phộp đo tương tự:

Chỳng ta chấp nhận phộp đo cosine truyền thống để biết được cỏc đường liờn kết phổ biến (đường liờn kết trong và liờn kết ngoài) được chia sẻ bởi cỏc trang P và Q. Cụ thể như sau:

+ Tổng số liờn kết trong và liờn kết ngoài của của trang P được tớnh bởi:

+ Tổng số liờn kết trong và liờn kết ngoài của của trang Q được tớnh bởi:

(POut—QOut) là giỏ trị tớch của 2 vectơ POut và QOut biết đến bởi những liờn kết ngoài của 2 trang web P và Q nơi mà (PIn—QIn) được biết đến là những liờn kết trong của 2 web P và Q. ||P|| là độ dài của vectơ P

- Vớ dụ minh họa về chủ đề và cỏc URL trong cỏc cụm với chủ đề như bảng 4.4.

Bảng 4.4. Mối liờn kết giữa chủđề và đường dẫn URL

Túm lại, PCDL Web đang là lĩnh vực được quan tõm và cú phạm vi ứng dụng rộng rói. Những nội dung đề cập trong cỏc phần trờn mang tớnh chất túm lược, khỏi quỏt hoỏ và cũn để mở. Đối với mỗi phần, chỳng ta đều cú thểđi sõu nghiờn cứu phỏt triển thờm để cú thể là cơ sở xõy dựng cỏc ứng dụng cho lớp dữ liệu web, một lĩnh vực đang được phỏt triển rất phổ biến.

KẾT LUẬN 1. Cỏc vấn đềđược tỡm hiểu trong luận văn

Luận văn này tổng hợp những nột chớnh trong KPDL và đi sõu trỡnh bày về PCDL, một trong những kỹ thuật phổ biến nhất của KPDL. Trong lĩnh vực PCDL, đó cú được một số thành quả nhất định. Hiện nay, cỏc hệ thống CSDL ngày càng phỏt triển đa dạng, nhu cầu về KPTT trong CSDL ngày càng lớn, do đú việc nghiờn cứu cỏc mụ hỡnh dữ liệu mới và ỏp dụng được cỏc phương phỏp PCDL mới là một xu thế tất yếu, vừa cú ý nghĩa trong khoa học cũng như trong thực tiễn.

Chương 1, luận văn đó trỡnh bày những nột tổng quan về PCDL, bao gồm những vấn đề như khỏm phỏ tri thức, khai phỏ dữ liệu và phõn cụm dữ liệu. Trờn cơ sở đú, chương 2 tập trung đi sõu giới thiệu về PCDL và giải thớch tại sao PCDL lại là một trong những phương phỏp KPDL phổ biến nhất, cú nhiều ý nghĩa trong khoa học và thực tiễn. Luận văn cú túm lược lại những kiến thức nền tảng của PCDL như cỏc kiểu dữ liệu, cỏc phộp đo và trờn cơ sở đú tổng hợp lại một số phương phỏp tiếp cận trong PCDL. Đõy là chủ đề trọng tõm của nội dung luận văn. Trờn cơ sởđú, chương 3 tập trung giới thiệu tổng quỏt húa cỏc thuật toỏn PCDL, trong đú cú một số thuật toỏn là nền tảng của cỏc phương phỏp tiếp cận, một số thuật toỏn là mở rộng, cải tiến của cỏc thuật toỏn cơ sở để giải quyết được đa dạng dữ liệu, xử lý cỏc vấn đề nhiễu hoặc ngoại lai. Cú chương trỡnh thực nghiệm minh họa cho một số thuật toỏn phổ biến cú tớnh ứng dụng cao. Chương 4 trỡnh bày túm lược về phõn cụm dữ liệu Web, một lĩnh vực đang được quan tõm rất nhiều trong PCDL hiện nay vỡ tớnh ứng dụng cao của nú. Chương này trỡnh bày những nột chớnh của PCDL Web, những kỹ thuật tiếp cận trong PCDL Web.

Phần phụ lục, trỡnh bày chương trỡnh thực nghiệm mụ phỏng của thuật toỏn K-means, một trong những thuật toỏn cơ sở nền tảng nhất của PCDL.

Túm lại, PCDL đang là một lĩnh vực đang được quan tõm nghiờn cứu nhiều, cú phạm vi ứng dụng rộng, liờn quan đến nhiều ngành khoa học khỏc nhau. Trong quỏ trỡnh làm luận văn, tỏc giả đó cố gắng nghiờn cứu, sưu tầm, tập trung trỡnh bày cỏc vấn đề một cỏch tổng hợp nhất nhưng do trỡnh độ và thời gian cú hạn, phạm vi trỡnh bày của lĩnh vực nghiờn cứu rộng nờn cú những vấn đề được trỡnh bày kỹ, những vấn đề được trỡnh bày một một cỏch sơ lược. Do vậy, luận văn này chắc chắn cũn cú nhiều hạn chế và thiếu sút, nhiều vấn đề cũn để mở cho những hướng nghiờn cứu tiếp theo. Tỏc giả rất mong nhận được cỏc ý kiến đỏnh giỏ, đúng gúp, chỉ bảo của cỏc thầy cụ giỏo và bạn bố.

2. Hướng nghiờn cứu tiếp theo

PCDL là kỹ thuật được nghiờn cứu nhiều và cú ứng dụng rộng rói. Trong luận văn cú trỡnh bày một số phương phỏp, kỹ thuật ỏp dụng của PCDL. Với những kiến thức cơ sở đú, trong thời gian tới tụi sẽ tiếp tục tỡm hiểu cỏc mụ hỡnh dữ liệu đặc thự, lựa chọn kỹ thuật PCDL phự hợp nhằm xõy dựng được những ứng dụng trong thực tiễn. Hướng nghiờn cứu cụ thể như sau:

Tập trung nghiờn cứu phỏt triển những vấn đề cũn để mở dựa trờn những kiến thức cơ sởđó trỡnh bày.

Xõy dựng và phỏt triển cỏc kỹ thuật phõn cụm cho cỏc lớp dữ liệu Web. Kết hợp cỏc kỹ thuật phõn cụm với cỏc kỹ thuật khỏc như kỹ thuật mờ, mạng nơron để giải quyết một số ứng dụng trong thực tế.

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Phan Đỡnh Diệu (1999), Logic Trong Cỏc Hệ Tri Thức, NXB ĐHQG Hà Nội, Hà Nội.

2. Đinh Mạnh Tường (2003), Trớ Tuệ Nhõn Tạo, NXB ĐHQG Hà Nội, Hà Nội.

Tiếng Anh

3. K. Jain and R. C. Dubes (1988), Algorithms for Clustering Data, Printice Hall.

4. D. Fisher (1987), Knowledge acquisition via incremental conceptual clustering, Machine Learning.

5. D. Gibson, J. Kleinberg and P. Raghavan (1998), Clustering categorical data: An approach based on dynamic systems, In Proc, VLDB’98.

6. Douglass Cutting, David Karger, Jan Pedersen and John W. Tukey (1992), Scatter/Gather: A Cluster-based Approach to Browsing Large Document Collections, Proceedings of the 15th Annual International ACM/SIGIR Conference, Copenhagen.

7. Ho Tu Bao (2000), Knowledge Discovery And Data Mining, Institute of Information HiTechnology, National Center for Natural Science and Technology.

8. O. Zamir and O. Etzioni (1999), Groupera dynamic clustering interface to web search results, In Proceedings of the Eighth International World Wide Web Conference, Toronto, Canada, M. Steinbach, G.

9. J. Srivastava et al (1999), Web Usage Mining: Discovery and Applications of Usage Patterns from Web Data, SIGKDD Exploration. 10. L. Kaufman and P. J. Rousseeuw (1990), Finding Groups in Data: an

11. M. Ankerst, M. Breunig, H.-P. Kriegel and J. Sander (1999), Optics: Ordering points to identify the clustering structure, SIGMOD’99.

12. M. Ester, H.-P. Kriegel, J. Sander and X. Xu (1996), A density-based algorithm for discovering clusters in large spatial databases, KDD'96. 13. M. R. Anderberg (1973), Cluster Analysis for Applications, Academic

Press.

14. P. Arabie, L. J. Hubert and G. De Soete (1996), Clustering and Classification, World Scietific.

15. P. Michaud (1997), Clustering techniques, Future Generation Computer systems.

16. R. Kosala and H. Blockeel (2000), Web Mining Research: A Survey, SIGKDD Exploration.

17. R. Ng and J. Han (1994), Efficient and effective clustering method for spatial data mining, VLDB'94.

18. T. Zhang, R. Ramakrishnan and M. Livny (1996), BIRCH : an efficient data clustering method for very large databases, SIGMOD'96.

19. Y.S. Maarek, R. Fagin, I.Z. Ben-Shaul, D. Pelleg (2000), Ephemeral document clustering for web applications, Technical Report RJ 10186, IBM Research.

20. Zhong Su, Qiang Yang, HongHiang Zhang, Xiaowei Xu and Yuhen Hu (2001), Correlation-based Document Clustering using Web Logs.

PHỤ LỤC

THỬ NGHIỆM PHÂN CỤM DỮ LIỆU VỚI K-MEANS

Chương trỡnh mụ phỏng thuật toỏn K-Means được viết ngụn ngữ Visual Basic, chạy trong mụi trường Windows. Chương trỡnh mụ phỏng việc phõn cụm thụng qua việc dịch chuyển trọng tõm của cụm. Mở đầu chương trỡnh yờu cầu nhập số cụm và kớch chuột để nhập dữ liệu cho cụm. Trong quỏ trỡnh nhập liệu, điểm dữ liệu vừa nhập vào sẽ thuộc về một cụm nào đú dựa theo phộp đo khoảng cỏch của điểm đú với cỏc trọng tõm cụm. Khi điểm đú được sỏt nhập vào cụm nào đú để hỡnh thành cụm mới và trọng tõm của cụm sẽ thay đổi theo cho phự hợp. Giao diện của chương trỡnh như hỡnh 5.1.

@ Mó nguồn của chương trỡnh được viết cụ thể như sau:

Option Explicit

'#################################################################' Chương trình mô phỏng thuật toán K-MEANS

' Khi người sử dụng nhập số lượng cụm và kích chuột để khởi tạo các cụm ban đầu ' Sau đó người sử dụng kích chuột để nhập các điểm dữ liệu thông qua tọa độ (X,Y).

' Chương trình sẽ tự động xác nhận điểm dữ liệu đó thuộc về cụm nào

' bằng cách so sánh khoảng cách của điểm vừa nhập với trọng tâm của cụm ' và các cụm mới được thành lập thông qua việc di chuyển trọng tâm của cụm ' Giải thuật sử dụng thuộc loại học không giám sát của mạng nơron

'################################################################# Private Data()

Private Centroid() As Single Private totalData As Integer Private numCluster As Integer Private Sub Form_Load() Dim i As Integer

Picture1.BackColor = &HFFFFFF Picture1.DrawWidth = 10

Picture1.ScaleMode = 3

lblExplanation.Caption = "Các cụm được phân biệt bởi màu sắc và trọng tâm của cụm!"

numCluster = Int(txtNumCluster)

ReDim Centroid(1 To 2, 1 To numCluster) For i = 0 To numCluster - 1

If i > 0 Then Load lblCentroid(i) lblCentroid(i).Caption = i + 1 lblCentroid(i).Visible = False

Next i End Sub

Private Sub cmdReset_Click() Dim i As Integer Picture1.Cls Erase Data totalData = 0 For i = 0 To numCluster - 1 lblCentroid(i).Visible = False Next i txtNumCluster.Enabled = True End Sub

Private Sub txtNumCluster_Change() Dim i As Integer

For i = 1 To numCluster - 1 Unload lblCentroid(i) Next i

numCluster = Int(txtNumCluster)

ReDim Centroid(1 To 2, 1 To numCluster) For i = 0 To numCluster - 1

If i > 0 Then Load lblCentroid(i) lblCentroid(i).Caption = i + 1 lblCentroid(i).Visible = False Next i

End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim colorCluster As Integer Dim i As Integer

txtNumCluster.Enabled = False totalData = totalData + 1

ReDim Preserve Data(0 To 2, 1 To totalData) Data(1, totalData) = X

Data(2, totalData) = Y

Call kMeanCluster(Data, numCluster)

Picture1.Cls

For i = 1 To totalData

colorCluster = Data(0, i) - 1

If colorCluster = 7 Then colorCluster = 12 X = Data(1, i)

Y = Data(2, i)

Picture1.PSet (X, Y), QBColor(colorCluster) Next i

For i = 1 To min2(numCluster, totalData) lblCentroid(i - 1).Left = Centroid(1, i) lblCentroid(i - 1).Top = Centroid(2, i) lblCentroid(i - 1).Visible = True Next i

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

lblXYValue.Caption = X & "," & Y End Sub

'#################################################################' FUNCTIONS

' + kMeanCluster:

' + dist: Tính toán khoảng cách

' + min2: Trả lại giá trị nhỏ nhất giữa hai số

'################################################################# Sub kMeanCluster(Data() As Variant, numCluster As Integer)

Dim i As Integer Dim j As Integer Dim X As Single Dim Y As Single Dim min As Single Dim cluster As Integer Dim d As Single Dim sumXY()

Dim isStillMoving As Boolean isStillMoving = True

If totalData <= numCluster Then Data(0, totalData) = totalData

Centroid(1, totalData) = Data(1, totalData) Centroid(2, totalData) = Data(2, totalData) Else

min = 10 ^ 10

X = Data(1, totalData) Y = Data(2, totalData) For i = 1 To numCluster

d = dist(X, Y, Centroid(1, i), Centroid(2, i)) If d < min Then

cluster = i End If

Next i

Data(0, totalData) = cluster

Do While isStillMoving

'Tính centroids mới

ReDim sumXY(1 To 3, 1 To numCluster) For i = 1 To totalData

sumXY(1, Data(0, i)) = Data(1, i) + sumXY(1, Data(0, i)) sumXY(2, Data(0, i)) = Data(2, i) + sumXY(2, Data(0, i)) sumXY(3, Data(0, i)) = 1 + sumXY(3, Data(0, i))

Next i

For i = 1 To numCluster

Centroid(1, i) = sumXY(1, i) / sumXY(3, i) Centroid(2, i) = sumXY(2, i) / sumXY(3, i) Next i

'Xác định tất cả dữ liệu theo centroids mới isStillMoving = False For i = 1 To totalData min = 10 ^ 10 X = Data(1, i) Y = Data(2, i) For j = 1 To numCluster

d = dist(X, Y, Centroid(1, j), Centroid(2, j)) If d < min Then

min = d cluster = j End If

Next j

If Data(0, i) <> cluster Then Data(0, i) = cluster isStillMoving = True End If Next i Loop End If End Sub

Function dist(X1 As Single, Y1 As Single, X2 As Single, Y2 As Single) As Single ' Tính toán khoảng cách Euclidean

dist = Sqr((Y2 - Y1) ^ 2 + (X2 - X1) ^ 2) End Function

Private Function min2(num1, num2) ' Trả lại giá trị nhỏ nhất giữa 2 số If num1 < num2 Then

min2 = num1 Else

min2 = num2 End If

Một phần của tài liệu Một số vấn đề về phân cụm dữ liệu (Trang 104)