1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân cụm dữ liệu và ứng dụng tìm những website tương tự

28 374 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 538,5 KB

Nội dung

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 2

LỜ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 3

1.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 4

Lờ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 5

I 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 8

Vì 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 9

1.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 11

Sau 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 13

tượ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 15

nhanh chóng của nó độc lập với số các đối tượng dữ liệu và chỉ tuỳ thuộc vào số lượng các ô trong mỗi chiều của không gian lượng tử STING là một

ví dụ điển hình của phương pháp dựa trên lưới WaveCluster và CLIQUE là hai giải thuật phân cụm dựa trên cả lưới và mật độ

Nhiều giải thuật phân cụm tích hợp các ý tưởng của một vài phương pháp phân cụm, bởi vậy việc phân loại giải thuật đó không dễ như loại giải thuật chỉ phụ thuộc vào duy nhất một loại phương pháp phân cụm Hơn nữa, nhiều ứng dụng có thể có giới hạn phân cụm với yêu cầu tích hợp một

số kỹ thuật phân cụm

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

Ngày đăng: 10/04/2015, 16:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w