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

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Gom Cụm Văn Bản Với Thuật Toán K-means

23 572 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 23
Dung lượng 2,86 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sựphong phú về dữ liệu, thông tin cùng với khả năng kịp thời khai thác chúng đãmang đến những năng suất và chất lượng mới cho công tác quản lý, hoạtđộng kinh doanh,…Nhưng rồi các yêu cầu

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Bài thu hoạch môn:

Công Nghệ Tri Thức và Ứng Dụng

Đề tài:

Gom Cụm Văn Bản Với Thuật Toán K-means

Giảng viên: GS TSKH Hoàng Văn Kiếm

Học viên: Trần Ngọc Trí

Mã số học viên: CH1301111

Trang 2

MỤC LỤC

MỤC LỤC 2

LỜI MỞ ĐẦU 3

PHẦN I : GOM CỤM DỮ LIỆU 4

1.1 Gom cụm: 4

1.2 Các phương pháp gom cụm 6

PHẦN II : THUẬT TOÁN K-MEANS 8

2.1 – Giới thiệu về thuật toán K-means : 9

2.2 – Thuật toán K-means : 9

PHẦN III: ỨNG DỤNG THUẬT TOÁN K-MEANS 16

TÀI LIỆU THAM KHẢO 23

Trang 3

LỜI MỞ ĐẦU

Ngày nay, cùng với sự phát triển mạnh mẽ của công nghệ phần cứng

và truyền thông, các hệ thống dữ liệu phục vụ cho các lĩnh vực kinh tế - xã hộicũng không ngừng tăng lên, lượng dữ liệu được tạo ra ngày càng lớn Sựphong phú về dữ liệu, thông tin cùng với khả năng kịp thời khai thác chúng đãmang đến những năng suất và chất lượng mới cho công tác quản lý, hoạtđộng kinh doanh,…Nhưng rồi các yêu cầu về thông tin trong các lĩnh vực hoạtđộng đó, đặc biệt trong lĩnh vực ra làm quyết định, ngày càng đòi hỏi cao hơn,người quyết định không những cần dữ liệu mà còn cần có thêm nhiều hiểubiết, nhiều tri thức để hỗ trợ cho việc ra quyết định của mình Cho đến nhữngnăm 90 của thế kỷ trước, nhu cầu khám phá tri thức mới thực sự bùng nổ,theo đó, hàng loạt các lĩnh vực nghiên cứu về tổ chức các kho dữ liệu và khothông tin, các hệ trợ giúp quyết định, các thuật toán nhận dạng mẫu và phânlớp mẫu, …và đặc biệt là khai phá dữ liệu (Data Mining) ra đời

Từ khi ra đời, khai phá dữ liệu đã trở thành một trong những hướngnghiên cứu phổ biến trong lĩnh vực khoa học máy tính và công nghệ tri thức.Nhiều kết quả nghiên cứu, ứng dụng của khai phá dữ liệu trong các lĩnh vựckhoa học, kinh tế, xã hội Khai phá dữ liệu bao hàm nhiều hướng nghiên cứuquan trọng, một trong số đó là phân cụm dữ liệu (Data Clustering) Phân cụm

dữ liệu là quá trình tìm kiếm và phát hiện ra các cụm hoặc các mẫu dữ liệu tựnhiên trong cơ sở dữ liệu lớn Các kỹ thuật chính được áp dụng trong phâncụm dữ liệu phần lớn được kế thừa từ lĩnh vực thống liệu cho việc giải quyếtcác vấn đề trong các lĩnh vực như tài chính, thông tin địa lý, sinh học, nhậndạng ảnh,… Trong thời gian gần đây, trong lĩnh vực phân cụm dữ liệu, người

ta tập trung chủ yếu vào nghiên cứu, phân tích các mô hình dữ liệu phức tạpnhư dữ liệu văn bản, Web, hình ảnh,…và đặc biệt là mô hình dữ liệu hỗn hợp

để áp dụng chúng trong phân cụm dữ liệu

Trang 4

Ví dụ về gom cụm ảnh

Trang 5

Hay trường hợp tổng quát

Ta phân hoạch các nhóm phần tử trong 1 tập hợp xác định vào các cụmkhác nhau theo thuộc tính chung của các phần tử

Trang 6

Trước khi thực hiện một quá trình gom cụm thì ta cần phải trả lời nhữngcâu hỏi sau

- Mỗi cụm nên có bao nhiêu phần tử

- Các phần tử nên được gom vào bao nhiêu cụm

- Bao nhiêu cụm nên được tạo ra

Quá trình gom cụm có thể được minh họa qua sơ đồ sau :

1.2 Các phương pháp gom cụm

A Các yêu cầu tiêu biểu về việc gom cụm dữ liệu

- Khả năng co giãn về tập dữ liệu (scalability)

- Khả năng xử lý nhiều kiểu thuộc tính khác nhau (different types of attributes)

Trang 7

- Khả năng khám phá các cụm với hình dạng tùy ý (clusters with arbitrary shape)

- Tối thiểu hóa yêu cầu về tri thức miền trong việc xác định các thông

số nhập (domain knowledge for input parameters)

- Khả năng xử lý dữ liệu có nhiễu (noisy data)

- Khả năng gom cụm tăng dần và độc lập với thứ tự của dữ liệu nhập(incremental clustering and insensitivity to the order of input records)

- Khả năng xử lý dữ liệu đa chiều (high dimensionality)

- Khả năng gom cụm dựa trên ràng buộc (constraint-based

clustering)

- Khả diễn và khả dụng (interpretability and usability)

B Các phương pháp gom cụm dữ liệu tiêu biểu :

- Phân hoạch (partitioning): các phân hoạch được tạo ra và đánh giá theo một tiêu chí nào đó

Trang 8

- Phân cấp (hierarchical): phân rã tập dữ liệu/đối tượng có thứ tự phân cấp theo một tiêu chí

- Dựa trên mật độ (density-based): dựa trên connectivity and density functions

- Dựa trên lưới (grid-based): dựa trên a multiple-level granularity

structure

- Dựa trên mô hình (model-based): một mô hình giả thuyết được đưa ra cho mỗi cụm; sau đó hiệu chỉnh các thông số để mô hình phù hợp với cụm dữliệu/đối tượng

Sơ đồ các thuật toán gom cụm

PHẦN II : THUẬT TOÁN K-MEANS

Trang 9

2.1 – Giới thiệu về thuật toán K-means :

Đây là thuật toán nổi tiếng và được sử dụng nhiều nhất trong hướngtiếp cận phân nhóm phân hoạch Thuật toán này có nhiều biến thể khác nhaunhưng được đưa ra đầu tiên bởi J.B MacQueen vào năm 1967 Đầu vào của

thuật toán này là một tập gồm n mẫu và một số nguyên K Cần phân n đối

tượng này thành K cụm sao cho sự giống nhau giữa các mẫu trong cùng mộtcụm là cao hơn là giữa các đối tượng khác trong cụm khác

Tư tưởng của thuật toán này như sau: Đầu tiên chọn ngẫu nhiên Kmẫu, mỗi mẫu này coi như biểu diễn 1 cụm, như vậy lúc này trong mỗi cụmthì đối mẫu đó cũng là tâm của cụm (hay còn gọi là nhân) Các mẫu còn lại

được gán vào một nhóm nào đó trong K nhóm đã có sao cho tổng khoảng

cách từ nhóm mẫu đó đến tâm của nhóm là nhỏ nhất Sau đó tính lại tâm cho

các nhóm và lặp lại quá trình đó cho đến khi hàm tiêu chuẩn hội tụ Hàm tiêuchuẩn hay được dùng nhất là hàm tiêu chuẩn sai-số vuông Thuật toán này cóthể áp dụng được đối với CSDL đa chiều, nhưng để dễ minh họa chúng tôi mô

tả thuật toán trên dữ liệu hai chiều

2.2 – Thuật toán K-means :

Thuật toán k-means được mô tả cụ thể như sau:

Input: K, và dữ liệu về n mẫu của 1 CSDL.

Output: Một tập gồm K cluster sao cho cực tiểu về tổng sai-số vuông Thuật toán:

Bước 1: Chọn ngẫu nhiên K mẫu vào K cluster Coi tâm của cluster

chính là mẫu có trong cluster

Bước 2: Tìm tâm mới của cluster.

Bước 3: Gán (gán lại) các mẫu vào từng cluster sao cho khoảng cách

từ mẫu đó đến tâm của cluster đó là nhỏ nhất

Bước 4: Nếu các cluster không có sự thay đổi nào sau khi thực hiện

bước 3 thì chuyển sang bước 5, ngược lại sang bước 2

Bước 5: Dừng thuật toán.

Trang 10

Mô tả của thuật toán K-Means

Ví dụ: Giả sử trong không gian hai chiều, cho 12 điểm (n = 12) cần phân 12

điểm này thành hai cluster (k=2)

Đầu tiên chọn hai điểm ngẫu nhiên vào hai cluster, giả sử chọn điểm (1,3) vàđiểm (9,4) (điểm có màu đỏ trên hình 9.a)

Coi điểm (1,3) là tâm của cluster 1 và điểm (9,4) là tâm của cluster hai Tínhtoán khoảng cách từ các điểm khác đến hai điểm này và ta gán được cácđiểm còn lại này vào một trong hai cluster, những điểm có màu xanh lơ vàocluster 1, những điểm có màu xanh đậm vào cluster 2 (hình 9.b) Hiệu chỉnhlại tâm của hai cluster, điểm màu đỏ trên hình 9.c là tâm mới của hai cluster.Tính lại các khoảng cách các điểm đến tâm mới và gán lại các điểm này, hình9d Tiếp tục hiệu chỉnh lại tâm của hai cluster Cứ như thế lặp lại cho đến khikhông còn sự thay đổi nữa thì dừng Khi đó ta thu được output của bài tóan

Trang 11

Hình 1 Ví dụ minh họa thuật toán k-means

Ví dụ 2 :

Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặctrưng X và Y như sau Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm(K=2) dựa vào các đặc trưng của chúng

Bước 1 Khởi tạo tâm (centroid) cho 2 nhóm Giả sử ta chọn A là tâm của

nhóm thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ

2 (tạo độ tâm nhóm thứ hai c2 (2,1))

Trang 12

Bước 2 Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng

cách Euclidean)

Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tươngứng với đối tượng A, cột thứ 2 tương ứng với đối tượng B,…) Hàng thứ nhấttrong ma trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâmcủa nhóm thứ nhất (c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễnkhoảng cách của các đối tượng đến tâm của nhóm thứ 2 (c2)

Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâmc2(2,1) là 2.83 được tính như sau:

Trang 13

Bước 3 Nhóm các đối tượng vào nhóm gần nhất

Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gồm có 1 đối tượng A và nhóm 2gồm các đối tượng còn lại B,C,D

Bước 4 Tính lại tọa độ các tâm cho các nhóm mới dựa vào tọa độ của các

đối tượng trong nhóm Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫnkhông đổi, c1(1,1) Tâm nhóm 2 được tính như sau:

Trang 14

Bước 5 Tính lại khoảng cách từ các đối tượng đến tâm mới

Bước 6 Nhóm các đối tượng vào nhóm

Trang 15

Bước 7 Tính lại tâm cho nhóm mới

Bước 9 Tính lại khoảng cách từ các đối tượng đến tâm mới

Trang 16

Ta thấy G2 = G1 (Không có sự thay đổi nhóm nào của các đối tượng) nên thuậttoán dừng và kết quả phân nhóm như sau:

Ưu điểm : - Dễ hiểu và cài đặt

Hạn chế : - Phụ thuộc vào số nhóm K chọn ban đầu

- Chi phí cho thực hiện vòng lặp tính toán khoảng cách lớn khi sốcụm K và dữ liệu phân cụm lớn

PHẦN III: ỨNG DỤNG THUẬT TOÁN K-MEANS

Trang 17

Biểu diễn văn bản

Mỗi văn bản sẽ được biểu diễn dưới dạng mô hình không gian Vector

publicclass DocumentVector

{

//Content represents the document(or any other object) to be clustered

public string Content { get; set; }

//represents the tf*idf of each document

public float[] VectorSpace { get; set; }

TF- term frequency – tần số xuất hiện của 1 từ trong 1 văn bản Cách tính:

 Thương của số lần xuất hiện 1 từ trong văn bản và số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản đó (giá trị sẽ thuộc khoảng [0, 1])

 f(t,d) - số lần xuất hiện từ t trong văn bản d

 max{f(w,d):w∈d} - số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản

IDF – inverse document frequency Tần số nghịch của 1 từ trong tập văn bản

(corpus)

Tính IDF để giảm giá trị của những từ phổ biến Mỗi từ chỉ có 1 giá trị IDF duy

nhất trong tập văn bản

Trang 18

hợp lệ, vì thế người ta thường thay bằng mẫu

Công thức TF-IDF:

//Calculates TF-IDF weight for each term t in document d

private static float FindTFIDF(string document, string term)

{

float tf = FindTermFrequency(document, term);

float idf = FindInverseDocumentFrequency(term);

* log of the ratio of total no of document in the collection to the no of

document containing the term

* we can also use Math.Log(count/(1+documentCollection.Count)) to deal with divide by zero case;

Trang 19

publicstatic float FindCosineSimilarity(float[] vecA, float[] vecB)

{

var dotProduct = DotProduct(vecA, vecB);

var magnitudeOfA = Magnitude(vecA);

var magnitudeOfB = Magnitude(vecB);

float result = dotProduct / (magnitudeOfA * magnitudeOfB);

//when 0 is divided by 0 it shows result NaN so return 0 in such case.

Thuật toán K-Means

publicclass Centroid

{

public List<DocumentVector> GroupedDocument { get; set; }

}

publicstatic List<Centroid> PrepareDocumentCluster(int k,

List<DocumentVector> documentCollection,refint _counter)

{

globalCounter = 0;

//prepares k initial centroid and assign one object randomly to each centroid

List<Centroid> centroidCollection = new List<Centroid>();

Centroid c;

/*

* Avoid repeation of random number, if same no is generated

* more than once same document is added to the next cluster

* so avoid it using HasSet collection

*/

HashSet<int> uniqRand = new HashSet<int>();

GenerateRandomNumber(ref uniqRand,k,documentCollection.Count);

foreach(int pos in uniqRand)

{

c = new Centroid();

Trang 20

//initialize the result set for next iteration

InitializeClusterCentroid(out resultSet, centroidCollection.Count); }

} while (stoppingCriteria == false);

centroid = new List<Centroid>();

for (int i = 0; i < count; i++)

Trang 21

private static int FindClosestClusterCenter(List<Centroid>

clusterCenter,DocumentVector obj)

{

float[] similarityMeasure = newfloat[clusterCenter.Count()];

for (int i = 0; i < clusterCenter.Count(); i++)

float maxValue = similarityMeasure[0];

for (int i = 0; i < similarityMeasure.Count(); i++)

{

//if document is similar assign the document

//to the lowest index cluster center to avoid the long loop

Trang 23

TÀI LIỆU THAM KHẢO

[1] Slide môn học của thầy GS TSKH Hoàng Văn Kiếm

[3] Google

Ngày đăng: 20/05/2015, 08:38

HÌNH ẢNH LIÊN QUAN

Sơ đồ các thuật toán gom cụm - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Gom Cụm Văn Bản Với Thuật Toán K-means
Sơ đồ c ác thuật toán gom cụm (Trang 8)
Hình 1 Ví dụ minh họa thuật toán k-means - Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Gom Cụm Văn Bản Với Thuật Toán K-means
Hình 1 Ví dụ minh họa thuật toán k-means (Trang 11)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w