6. Cấu trúc luận văn
1.2.4. Khái quát về các kỹ thuật KPDL
1.2.4.1. Khai thác t p phổ biến và u t kết h p
Đây là kỹ thuật tìm các tập con của các luật kết hợp có trong CSDL. Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong tập các đối tƣợng.
Một luật kết hợp X → Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất hiện đồng thời của tập Y.
Khai thác luật kết hợp đƣợc chia làm hai giai đoạn:
Giai đoạn 1: Khai thác tập phổ biến (FIs – Frequent Itemsets), có các
phƣơng pháp sau:
Phƣơng pháp Apriori (Agrawal et al., 1994) Phƣơng pháp IT-tree (Zaki et al., 1997) Phƣơng pháp FP-tree (Han et al., 2000) v.v…
1.2.4.2. Phân p d iệu
Phân lớp (classification): là tiến trình khám phá các luật phân loại hay đặc trƣng cho các tập dữ liệu đã đƣợc xếp lớp. Tập dữ liệu học bao gồm tập đối tƣợng đã đƣợc xác định lớp sẽ đƣợc dùng để tạo mô hình phân lớp dựa trên đặc trƣng của đối tƣợng trong tập dữ liệu học. Các luật phân lớp đƣợc sử dụng để xây dựng các bộ phân lớp dữ liệu. Phân lớp dữ liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hƣớng quy luật phát triển. Một số kỹ thuật thƣờng đƣợc sử dụng trong phân lớp:
- Cây quyết định (Decision tree): Biểu diễn ở dạng cấu trúc hình cây. Các quyết định này tạo ra các quy tắc để phân lớp và dự đoán tập dữ liệu mới chƣa đƣợc phân lớp. Tri thức đƣợc rút ra trong kỹ thuật này thƣờng đƣợc mô tả dƣới dạng tƣờng minh, đơn giản, trực quan, dễ hiểu đối với ngƣời sử dụng.
- Mạng Nơron (Neural Network): Kỹ thuật này bắt chƣớc khả năng tìm kiếm mẫu của bộ não con ngƣời. Việc huấn luyện theo phƣơng pháp này đƣợc bắt đầu bằng việc cho vào một tập dữ liệu (gọi là tập dữ liệu huấn luyện) mạng sẽ tự động điều chỉnh (học) qua từng lớp trong mạng và cho ra kết quả, quá trình huấn luyện đƣợc lặp đi lặp lại nhiều lần. Sau khi mạng học thành công thì nó đƣợc xem là một chuyên gia trong lĩnh vực đó [6].
1.2.4.3. Gom cụm
Gom cụm (clustering): là kỹ thuật nhận diện các tập con tiềm ẩn trong tập các đối tƣợng chƣa đƣợc xếp lớp. Tiến trình phân cụm dựa trên mức độ tƣơng tự giữa các đối tƣợng. Các đối tƣợng đƣợc gom cụm sao cho mức độ tƣơng tự giữa các đối tƣợng trong cùng một cụm là cực đại và mức độ tƣơng tự giữa các đối tƣợng nằm trong các cụm khác nhau là cực tiểu. Các cụm đƣợc đặc trƣng bằng các tính chất chung của tất cả các đối tƣợng trong cụm. Một số kỹ thuật dùng trong gom cụm: phƣơng pháp phân cấp và thuật giải k-means.
- Trong phƣơng pháp phân cấp gồm hai giai đoạn: ở giai đoạn gộp mỗi đối tƣợng thuộc về một lớp, dƣới một ngƣỡng nào đó chúng đƣợc gom lại và tiếp tục nhƣ vậy cho đến khi tất cả các đối tƣợng thuộc về cùng một cụm; còn ở giai đoạn tách sẽ tiến hành ngƣợc lại so với giai đoạn gộp. Trong phƣơng pháp này,để đƣa ra đƣợc ngƣỡng ngƣời ta dựa vào liên kết đơn (khoảng cách gần nhất) và liên kết đôi (khoảng cách xa nhất) giữa hai cụm [6].
- Trong giải thuật K-means: khi tiến hành gom cụm ta cần phải biết trƣớc số cụm. Với mỗi cụm nhƣ vậy ta chọn phần tử trọng tâm, tiếp đến tính khoảng cách từ mỗi đối tƣợng đến phần tử trọng tâm ở tất cả các cụm và gán nó vào cụm có khoảng
cách nhỏ nhất. Quá trình này tiếp tục nhƣ vậy cho đến khi các cụm không còn biến đổi hoặc thoả điều kiện đặt ra.
1.3. Kỹ thuật khai phá dữ liệu sử dụng cây quyết định
1.3.1. Cây quyết định:
1.3.1.1. Gi i thiệu cây quyết định:
Cây quyết định là một dạng đặc biệt của cấu trúc cây. Các cây quyết định đƣợc dùng để hỗ trợ quá trình ra quyết định.
Cây quyết định có thể đƣợc dùng để phân lớp bằng cách xuất phát từ gốc của cây và di chuyển theo các nhánh cho đến khi gặp nút lá. Trên cơ sở phân lớp này chúng ta có thể chuyển đổi về các luật quyết định. Cây quyết định đƣợc sử dụng để dự đoán những thành viên của đối tƣợng theo những đề mục khác nhau (lớp), đƣa vào các giá trị mà có liên quan đến thuộc tính (biến dự đoán), phƣơng thức cây quyết định là một trong những kỹ thuật KPDL chính.
Việc phân loại đƣợc xây dựng bằng cây quyết định dựa trên đặc trƣng: Mỗi cây (nội bộ) (ví dụ nút riêng rẽ) miêu tả những thử nghiệm dựa
trên một thuộc tính nhất định.
Mỗi nhánh cây thể hiện kết quả của thử nghiệm
Mỗi nút lá (nút cuối cùng) miêu tả lớp (quyết định) Cây quyết định có ba cách tiếp cận cơ bản:
Cây phân loại: sử dụng khi kết quả dự đoán là một lớp trong thành phần dữ liệu.
Cây hồi quy: khi kết quả dự đoán có thể liên quan tới một số thực sự (giá dầu, giá trị ngôi nhà ..)
CART (classification and regression tree) liên quan đến cả hai trƣờng hợp trên.
1.3.1.2. Cấu trúc cây quyết định:
Cấu trúc của một cây quyết định bao gồm các nút và các nhánh.
Nhánh (branch): biểu diễn giá trị có thể có của thuộc tính. Nút (node): mỗi nút mạng một thuộc tính bao gồm 3 loại:
Nút gốc (root node) là đỉnh trên cùng của cây.
Nút lá (leaf node) là nút ngoài cùng, mang thuộc tính phân lớp.
Nút trong (internal node) là các nút còn lại, mang thuộc tính phân loại. 1.3.2. Kỹ thuật KPDL sử dụng cây quyết định
1.3.2.1. Gi i thiệu kỹ thu t KPDL sử dụng cây quyết định:
Có nhiều mô hình phân lớp dữ liệu trong các lĩnh vực khác nhau nhƣ mô hình thống kê tuyến tính bậc 2, cây quyết định, di truyền, …. Thì cây quyết định là một công cụ mạnh, phổ biến và đặc biệt thích hợp cho KPDL.
Quy nạp cây quyết định là việc tìm kiếm các cây quyết định từ những bản ghi huấn luyện đã có nhãn lớp. Mỗi cây quyết định là một cấu trúc cây kiểu lƣu đồ, trong đó mỗi nút trong biểu thị một sự kiểm tra trên một thuộc tính nào đó, mỗi nhánh biểu diễn một kết quả của sự kiểm tra đó, còn mỗi nút lá chứa một nhãn lớp. Nút ở trên cùng của cây là nút gốc, chứa tên của thuộc tính cần kiểm tra..
Các cây quyết định đƣợc dùng cho phân lớp nhƣ thế nào? Cho một bản ghi X nào đó mà ta chƣa biết nhãn lớp liên kết với nó, các giá trị thuộc tính của bản ghi đó đƣợc kiểm tra so với cây quyết định. Dựa theo những cuộc kiểm tra đó, ta lần ra một đƣờng đi từ gốc đến một nút lá chứa kết quả dự đoán lớp dành cho bản ghi ấy. Các cây quyết định có thể dễ dàng đƣợc chuyển đổi thành các luật phân lớp, tức hình thức phân loại đơn giản và dễ hiểu nhất đối với con ngƣời.
1.3.2.2. Xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
Giai đoạn thứ nhất: phát triển cây quyết định: Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp theo cách thức chia để trị cho tới khi đạt đƣợc cây quyết định với tất cả các lá đƣợc gán nhãn lớp.
Khung công việc của giai đoạn này:
- Bƣớc 1: Chọn thuộc tính ―tốt‖ nhất bằng một độ đo đã định trƣớc. - Bƣớc 2: Phát triển cây bằng việc thêm các nhánh tƣơng ứng với từng giá trị của thuộc tính đã chọn.
- Bƣớc 3: Sắp xếp, phân chia tập dữ liệu huấn luyện tới node con. - Bƣớc 4: Nếu các ví dụ đƣợc phân lớp rõ ràng thì dừng. Ngƣợc lại: lặp lại bƣớc 1 tới bƣớc 4 cho từng node con.
Giai đoạn thứ hai: cắt, tỉa bớt các nhánh trên cây quyết định. Giai đoạn này nhằm mục đích đơn giản hóa và khái quát hóa từ đó làm tăng độ
chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ nhiễu, lỗi của dữ liệu huấn luyện mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc tính riêng biệt của dữ liệu huấn luyện. Giai đoạn này chỉ truy cập dữ liệu trên cây quyết định đã đƣợc phát triển trong giai đoạn trƣớc.
1.3.2.3. Các vấn đề trong KPDL sử dụng cây quyết định
Các vấn đề đặc thù trong khi học hay phân lớp dữ liệu bằng cây quyết định gồm: xác định độ sâu để phát triển cây quyết định, xử lý với những thuộc tính liên tục, chọn phép đo lựa chọn thuộc tính thích hợp, sử dụng tập dữ liệu huấn luyện với những giá trị thuộc tính bị thiếu, sử dụng các thuộc tính với những chi phí khác nhau, và cải thiện hiệu năng tính toán.
Cây quyết định dễ xảy ra lỗi khi có quá nhiều lớp. Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng yes/no hay accept/reject. Số khác lại có thể chỉ định các bản ghi vào một số lớp bất kỳ, nhƣng dễ xảy ra lỗi khi số ví dụ huấn luyện ứng với một lớp là nhỏ. Điều này xảy ra càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một node.
Chi phí tính toán đắt để huấn luyện: Cây quyết định có rất nhiều node trong trƣớc khi đi đến lá cuối cùng. Tại từng node, cần tính một độ đo (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục phải thêm thao tác sắp xếp lại tập dữ liệu theo thứ tự giá trị của thuộc tính đó. Sau đó mới có thể chọn đƣợc một thuộc tính phát triển và tƣơng ứng là một phân chia tốt nhất. Quá trình cắt tỉa cây cũng ―đắt‖ vì nhiều cây con ứng cử phải đƣợc tạo ra và so sánh.
1.3.3. Thuật toán sử dụng xây dựng cây quyết định
Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và đƣa ra dự đoán. Cây quyết định đƣợc tạo thành bằng cách lần lƣợt chia (đệ quy) một tập dữ liệu thành các tập dữ liệu con, mỗi tập con đƣợc tạo thành chủ yếu từ các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh thông qua Entropy và Gain.
Cây quyết định có thể đƣợc mô tả nhƣ là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trƣớc.
Dữ liệu đƣợc cho dƣới dạng các bản ghi có dạng:( , )x y ( ,x x x1 2, 3,...,x yk, ). Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hóa. x x x1, 2, ...3 là các biến sẽ giúp ta thực hiện công việc đó.
1.3.3.1. Thu t toán CLS (Concept Learning System)
Đầu vào: Tâp huấn luyện. Tập huấn luyện bao gồm các mẫu, mỗi mẫu là một bộ các thuộc tính mô tả một tình huống, hay một đối tƣợng nào đó, và một giá trị phân loại của nó.
Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập huấn luyện.
Thuật toán đƣợc thiết kế theo chiến lƣợc chia để trị từ trên xuống, gồm các bƣớc:
Bƣớc 1. Tạo một nút T, nút này bao gồm tất cả các mẫu của tập huấn luyện. Bƣớc 2. Nếu tất cả các mẫu thuộc T đều thuộc cùng một lớp, giả sử có thuộc
tính quyết định mang giá trị "Yes" thì gán nhãn cho nút T là "Yes" và dừng lại. Nút T lúc này là nút lá.
Tƣơng tự nếu tất cả các mẫu trong T đều thuộc cùng một lớp và giả sử có thuộc tính quyết định mang giá trị "No" thì gán nhãn cho T là "No" và dừng lại. Nút T lúc này là nút lá.
Bƣớc 3. Trƣờng hợp ngƣợc lại tức các mẫu của tập huấn luyện thuộc cả hai
lớp "Yes" và "No":
o Chọn một thuộc tính X trong tập thuộc tính của tập mẫu, X có các giá trị x1, x2, x3,... ,xn.
o Chia tập mẫu trong T thành các tập con T1, T2, T3... Tn theo giá trị của X. o Tạo n nút con Ti (i=1..n) với nút cha là nút T.
o Tạo các nhánh nối từ nút T đén các nút Ti với nhãn là các giá trị của X.
Bƣớc 4. Thực hiện lặp cho các nút con Ti từ bƣớc 2.
Thuộc tính đƣợc chọn để triển khai cây ở bƣớc 4 là tùy ý. Do vậy cùng với một tập dữ liệu huấn luyện ban đầu, nếu sử dụng thuật toán với thứ tự chọn thuộc tính triển khai cây là khác nhau ta sẽ thu đƣợc các cây quyết định khác nhau. Việc lựa chọn thuộc tính sẽ ảnh hƣởng tới độ rộng, độ sâu và độ phức tạp của cây. CLS là một trong những thuật toán ra đời sớm nhất và thƣờng áp dụng cho các CSDL có số lƣợng các thuộc tính nhỏ, giá trị các thuộc tính là rời rạc, còn đối với các CSDL lớn và có chứa các thuộc tính mà giá trị của nó là liên tục thì CLS làm việc ít hiệu quả. Thuật toán có thể cho các kết quả khác nhau với cùng một tập dữ liệu đầu vào. Ƣu điểm chính của CLS là thuật toán đơn giản, dễ cài đặt.
1.3.3.2. Thu t toán ID3
a. Gi i thiệu thu t toán ID3
Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giản nhƣng thành công trong nhiệm lĩnh vực. Thuật toán ID3 đƣợc phát triển bởi Quinlan và đƣợc công bố vào cuối thập niên 70 của thế kỷ 20. Sau đó, thuật toán ID3 đƣợc giới thiệu và trình bày trong mục Induction on Decition Trees, Machine Learning năm 1986.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision tree). Biểu diễn này cho phép chúng ta xác định phân loại của một đối tƣợng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.
Giải thuật ID3 là học cây quyết định từ một tập huấn luyện hay còn gọi là dữ liệu rèn luyện (training data), giải thuật có:
Đầu vào: Tâp huấn luyện, thuộc tính chứa giá trị phân loại của cây, danh sách các thuộc tính dùng kiểm tra tính quyết định của cây. Tập huấn luyện bao gồm các mẫu, mỗi mẫu là một bộ các thuộc tính mô tả một tình huống, hay một đối tƣợng nào đó, và một giá trị phân loại của nó.
Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chƣa gặp trong tƣơng lai.
Giải thuật ID3 xây dựng cây quyết định từ trên xuống
- Entropy: dùng để do tính thuần nhất của một tập dữ liệu. Entropy của một tập S
có n phân lớp đƣợc tính theo công thức:
Entropy(S) = ( log ) 1 2 n i i i p p
Trong đó pi là tỉ lệ các mẫu thuộc lớp i trên tập hợp S các mẫu kiểm tra. Các trƣờng hợp đặc biệt:
o Nếu tât cả các mẫu thành viên tron tập S đều thuộc cùng một lớp thì Entropy(S) =0.
o Nếu trong tập S có số mẫu phân bố đều nhau vào các lớp thì Entropy(S) =1.
o Các trƣờng hợp còn lại 0< Entropy(S)<1.
- Information Gain (viết tắt là Gain): Gain là đại lƣợng dùng để đo tính hiệu quả
của một thuộc tính đƣợc lựa chọn cho việc phân lớp.
+ Cho tập dữ liệu S gồm có n thuộc tính 𝐴𝑖(𝑖 = 1, 2 … 𝑛) giá trị Information của thuộc tính 𝐴𝑖ký hiệu là 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) đƣợc xác định bởi công thức:
𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) = ∑ 𝑜 𝑛𝑡𝑟𝑜𝑝
+ Giá trị Gain của thuộc tính A trong tập S ký hiệu là Gain (S, A) và đƣợc tính theo công thức sau
𝐺𝑎𝑖𝑛( , 𝐴) = 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛(𝐴) − 𝑛𝑡𝑟𝑜𝑝 (𝐴)
= 𝑛𝑡𝑟𝑜𝑝 ( ) − ∑ | |
| |
𝑛𝑡𝑟𝑜𝑝 ( 𝑣)
Trong đó:
S là tập hợp ban đầu với thuộc tính A. Các giá trị của v tƣơng ứng là các giá trị của thuộc tính A.
𝑣 bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.
| 𝑣| là số phần tử của tập 𝑣 | | là số phần tử của tập
Trong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bƣớc triển khai cây, thuộc tính đƣợc chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.
b. Mã giả thu t toán ID3
Function ID3(Taphuanluyen, DuDoan, Tap_thuoc_tinh)