Một số thuật toán khai thác dữ liệu

Một phần của tài liệu Khai thác luật kết hợp không dư thừa (Trang 23 - 28)

CHƯƠNG 1 TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU

1.2 KHAI THÁC DỮ LIỆU

1.2.4 Một số thuật toán khai thác dữ liệu

Hiện nay có rất nhiều thuật toán khai thác dữ liệu, tại hội nghị quốc tế về khai thác dữ liệu (IEEE International Conference on Data Mining) [6] vào tháng 12 năm 2006 đã chọn ra top 10 thuật toán nổi tiếng (well known) trong danh sách 18 thuật toán ứng viên về khai thác dữ liệu trong đó có một số thuật toán đƣợc sử dụng nhiều nhƣ:

Thuật toán C4.5: Thuật toán dùng để xây dựng bộ phân lớp (classifier) là một công cụ thường d ng trong khai thác dữ liệu. Thuật toán này có đầu vào là một tập các mẫu (cases), mỗi mẫu thuộc về một lớp nào đó và đƣợc mô tả bởi các giá trị thuộc về các thuộc tính, đầu ra là bộ phân lớp d ng để dự đoán lớp của mẫu mới một cách chính xác.

Cho tập S các mẫu, C4.5 sinh ra cây quyết định ban đầu theo phương pháp chia để trị nhƣ sau:

- Nếu tất cả các mẫu trong S đều thuộc về c ng một lớp hay tập S nhỏ thì cây là một nút lá với nhãn là lớp xuất hiện nhiều nhất trong S.

- Ngƣợc lại, chọn một thuộc tính với hai hay nhiều “kết quả” trong tập thuộc tính.

Tạo thuộc tính này là nút gốc của cây với mỗi nhánh là mỗi kết quả của thuộc tính, chia tập mẫu còn lại của S thành các tập con S1, S2,…, Sk theo các kết quả (còn lại) của S, áp dụng c ng cách làm đệ qui cho các tập S1, S2,…, Sk.

Thường có nhiều thuộc tính để chọn lựa trong bước cuối. C4.5 sử dụng hai phương pháp tri thức để sắp xếp các thuộc tính.

Thuộc tính có cả thuộc tính số và phân loại (định danh – nominal). Đối với thuộc tính số A, chúng đƣợc phân chia thành {A  h, A > h}, trong đó ngƣỡng h đƣợc xác định bằng cách chọn giá trị có Entropy lớn nhất của A. Với thuộc tính rời rạc, có thể xem mỗi giá trị là một kết quả, nhƣng có một chọn lựa để nhóm các giá trị lại thành các tập con, mỗi tập con là một kết quả.

Cây quyết định ban đầu có thể cần được tỉa để tránh trường hợp quá lớn. Thuật toán tỉa dựa vào ƣớc lƣợng bi quan về tỉ lệ lỗi trên tập N mẫu, E mẫu không thuộc về các lớp thường xuất hiện nhất.

Tập luật C4.5 được hình thành từ cây quyết đinh ban đầu (chưa tỉa). Mỗi đường đi từ gốc đến lá tạo thành một luật nguyên thủy. Luật này sau đó đƣợc đơn giản bằng cách loại bỏ điều kiện (nếu có). Xóa bỏ một điều kiện nghĩa là làm tăng số lƣợng N các mẫu thỏa luật và cũng làm giảm số lƣợng E các mẫu không thuộc về lớp đại diện bởi luật, và có thể làm giảm tỉ lệ lỗi bi quan. Một thuật giải leo đồi đƣợc sử dụng để tỉa cành cho đến khi tỉ lệ lỗi bi quan đạt ngƣỡng.

Để hoàn tất quá trình, tập con luật đơn giản đƣợc chọn cho mỗi phân lớp. Những luật này đƣợc sắp theo thứ tự tăng dần của tỉ lệ lỗi trên các mẫu huấn luyện và một lớp mặc định được chọn. Tập luật cuối c ng thường có ít luật hơn số lá (số luật) của cây quyết định ban đầu.

Một bất lợi của C4.5 là khi khối lƣợng dữ liệu và bộ nhớ yêu cầu để thực thi lớn.

Trong thực nghiệm, với CSDL từ khoảng 10000 đến 100000 mẫu thì thời gian thực hiện từ 1.4s lên đến 61s, tăng gấp 44 lần, xét trên thời gian tạo bộ phân lớp tăng từ 32s đến 9715s, gấp 300 lần!

Thuật toán k-means: K-means là một thuật toán lặp đơn giản để chia một cơ sở dữ liệu được cho thành k nhóm (k do người d ng chỉ định). Thuật toán thao tác trên một tập các vectơ D-chiều, D = {xi| i = 1 .. N} trong đó xi  D là điểm dữ liệu thứ i. Thuật toán bắt đầu bằng cách chọn k điểm làm trọng tâm. Kỹ thuật để chọn các điểm hạt giống này là

“ngẫu nhiên”. Sau đó thuật toán gọi hai bước sau cho đến khi hội tụ:

Bước 1. Gán dữ liệu: Mỗi điểm dữ liệu được gán vào nhóm nào gần nhất. Đây là việc phân chia dữ liệu.

Bước 2. Tính lại trọng tâm: đại diện của mỗi nhóm được tính lại bằng với trung bình (mean) của các điểm dữ liệu thuộc nhóm. Nếu các điểm dữ liệu đƣợc tính bởi xác suất (probability measure / weights) thì đại diện đƣợc tính bằng giá trị kì vọng (expectation) của dữ liệu.

Thuật toán hội tụ khi việc gán dữ liệu không còn thay đổi nữa.

Dựa trên mô hình như k-means là một hướng tiếp cận cho các dữ liệu phức tạp, ví dụ nhƣ các trình tự mô tả bởi các mô hình Markov n.

Thuật toán Apriori: Thuật toán Apriori, một trong những thuật toán phổ biến trong hướng tiếp cận khai thác dữ liệu là tìm các tập phổ biến trong cơ sở dữ liệu và dẫn xuất ra luật kết hợp. Tìm tập phổ biến là một việc không tầm thường bởi vì nó b ng nổ theo hàm mũ. Khi các tập phổ biến đã tìm đƣợc, nó trực tiếp tìm ra các luật kết hợp thỏa minconf.

Apriori là thuật toán nền tảng để tìm các tập phổ biến sử dụng phương pháp sinh ứng viên. Nó có đặc điểm là tìm kiếm theo chiều rộng sử dụng tính chất Apriori. Theo qui ƣớc, Apriori giả định rằng các items đƣợc sắp xếp theo thứ tự từ điển. Cho một tập các itemset phổ biến có kích thước k là Fk và tập ứng viên của chúng là Ck. Apriori quét cơ sở dữ liệu lần thứ nhất để tìm kiếm các item đơn thỏa minsup. Nó sau đó lặp lại 3 bước sau để tìm các tập phổ biến.

Bước 1. Sinh tập ứng viên Ck+1 từ các tập phổ biến có k phần tử.

Bước 2. Quét cơ sở dữ liệu để đếm độ phổ biến của các ứng viên.

Bước 3.Thêm các tập này vào danh sách các tập phổ biến có k+1 phần tử nếu nó thỏa minsup.

Có thể thấy thuật toán phải quét cơ sở dữ liệu max + 1 lần với max là chiều dài của tập phổ biến dài nhất.

Thuật toán Apriori thực thi tốt bằng việc giảm không gian dựa vào tính chất Apriori. Tuy nhiên, với trường hợp số tập phổ biến được sinh ra lớn, max lớn hay minsup nhỏ dẫn đến tập ứng viên sinh ra rất lớn và mất nhiều lần quét cơ sở dữ liệu thì thuật toán tốn nhiều chi phí. Trong thực tế, cần phải sinh (trong trường hợp xấu nhất) 2100 ứng viên để tìm tập phổ biến có kích thước 100.

Thuật toán xếp hạng trang: Xếp hạng trang (PageRank) đƣợc phát triển tại Stanford University bởi Larry Page và sau là Sergey Brin nhƣ một phần của dự án nghiên cứu về một cơ chế tìm kiếm mới. Dự án bắt đầu vào 1995 và xuất hiện với tên gọi là Google vào năm 1998. Trong một thời gian ngắn sau đó, PageRank đã thực sự khẳng định vị thế của công cụ tìm kiếm Google trên toàn bộ hệ thống Internet của thế giới.

Xếp hạng trang là một phân phối xác suất đƣợc sử dụng để đại diện cho khả năng một người ngẫu nhiên bấm vào liên kết sẽ đến một trang web cụ thể. Sự tính toán của PageRank được lặp đi lặp lại thông qua các bộ sưu tập để điều chỉnh giá trị của một khoảng sắp xếp chặt chẽ hơn để phản ánh các giá trị lý thuyết đúng.

Việc sắp xếp dựa trên tính chất dân chủ tự nhiên của trang web bằng cách sử dụng số lƣợng các liên kết đến trang web nhƣ là một biểu thị cho giá trị của trang. Về bản chất, Google xem một liên kết từ trang A đến trang B nhƣ là một điểm mà trang A cho trang B.

Tuy nhiên, Google xem xét các yếu tố khác ngoài số lƣợng điểm này. Ví dụ, nó còn phân tích sự quan trọng của các trang liên kết tới. Vì vậy, các trang quan trọng thì điểm của chúng cũng sẽ có trọng lƣợng hơn và khi kết hợp hệ thống liên kết trên và các yếu tố khác, Google sẽ tự đánh giá tính chất quan trọng của trang.

Hình 1.3. Liên kết vào và ra của 3 trang web

Từ khi thuật toán PageRank đƣợc trình bày năm 1998 đến nay, các nhà nghiên cứu đã đề xuất thêm nhiều mô hình nâng cao, các mô hình đƣợc đề xuất để thay thế PageRank nhằm cải thiện thời gian tính toán, thêm nhiều yếu tố đƣợc đƣa vào hỗ trợ cho việc cho điểm của trang này với trang kia để nâng cao tính chính xác của việc xếp hạng các trang web.

Thuật toán k-Nearest Neighbor (kNN): Thuật toán này tìm ra các láng giềng gần nhất của mẫu thử nghiệm và quy về các nhãn lớp của chúng dựa trên các nhãn đa số, điều đó có nghĩa là các mẫu đƣợc quy về cùng lớp khi chúng là lân cận của nhau. Kỹ thuật này cho rằng vị trí trong không gian đặc trƣng hàm ý một quan hệ họ hàng gần gũi ở giữa các nhãn lớp.

Lợi thế của các thuật toán kNN là dễ thực thi, và kết quả mà nó đem lại khả năng dễ dàng giải thích. Nhƣng một điểm bất lợi là các thuật toán này đƣa ra các mô hình rất lớn với một tập dữ liệu nhỏ.

A

B

C

Liên kết ra của trang B

Liên kết vào của trang B

Phân lớp kNN dễ hiểu và dễ cài đặt. Mặc d đơn giản nhƣng nó có thể thực thi tốt trên nhiều tình huống. Trong thực tế kNN rất ph hợp với các mô hình đa lớp cũng nhƣ trong các CSDL chứa nhiều lớp. Ví dụ, vài nhà nghiên cứu chỉ ra rằng kNN thực thi tốt hơn SVM trong việc nhận dạng chức năng của gene dựa vào tiểu sử.

Thuật toán phân nhóm- đoạn: Mục tiêu chính của việc phân nhóm/ đoạn (Clustering / Segmentation) dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các nhóm sao cho mức độ tương tự giữa các đối tượng trong cùng một nhóm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các nhóm khác nhau là nhỏ nhất.

Các nhóm có thể tách nhau hoặc phân cấp gối lên nhau và số lƣợng các nhóm là chƣa biết trước. Một đối tượng có thể vừa thuộc nhóm này, nhưng cũng có thể vừa thuộc nhóm khác. Không giống nhƣ phân lớp dữ liệu, phân nhóm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện. Vì thế, có thể coi phân nhóm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example). Trong phương pháp này bạn sẽ không thể biết kết quả các nhóm thu được sẽ như thế nào khi bắt đầu quá trình. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các nhóm thu đƣợc. Phân nhóm còn đƣợc gọi là học không có giám sát (unsupervised learning). Phân nhóm dữ liệu đƣợc sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web, … Ngoài ra phân nhóm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho các thuật toán khai thác dữ liệu khác.

Một phần của tài liệu Khai thác luật kết hợp không dư thừa (Trang 23 - 28)

Tải bản đầy đủ (PDF)

(67 trang)