Người ta thường chia quá trình khám phá tri thức thành các bước sau [7] [8] [9]:
Hình 2.2: Các bước trong quá trình khám phá tri thức.
- Trắch chọn dữ liệu (data selection): Là bước trắch chọn những tập dữ liệu cần ựược khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban ựầu theo một số tiêu chắ nhất ựịnh. - Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý
với dữ liệu không ựầy ựủ, dữ liệu nhiễu, dữ liệu không nhất quán, .v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tắnh tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, .v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, .v.v.). Sau bước này, dữ liệu sẽ nhất quán, ựầy ựủ, ựược rút gọn, và ựược rời rạc hóa.
- Biến ựổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm mịn dữ liệu ựể ựưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở bước sau.
- KPDL (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹ thuật của machine learning) ựể khai phá, trắch chọn ựược những mẫu (patterns) thông tin, những mối liên hệ
(relationships) ựặc biệt trong dữ liệu. đây ựược xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD.
- Biểu diễn và ựánh giá tri thức (knowledge representation & evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu ựã ựược khai phá ở bước trên ựược chuyển dạng và biểu diễn ở một dạng gần gũi với người sử dụng như ựồ thị, cây, bảng biểu, luật, .v.v. đồng thời bước này cũng ựánh giá những tri thức khám phá ựược theo những tiêu chắ nhất ựịnh.
2..2 Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu 2.2.1 Các hướng tiếp cận và các kỹ thuật chắnh trong Khai phá dữ liệu
Các hướng tiếp cận của KPDL có thể ựược phân chia theo chức năng hay lớp các bài toán khác nhau. Sau ựây là một số hướng tiếp cận chắnh [8].
- Phân lớp và dự ựoán (classification & prediction): xếp một ựối tượng vào một trong những lớp ựã biết trước. Vắ dụ: phân lớp vùng ựịa lý theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật
của machinelearning như cây quyết ựịnh (decision tree), mạng nơron
nhân tạo (neural network), .v.v. Phân lớp còn ựược gọi là học có giám sát (học có thầy Ờsupervised learning).
- Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá ựơn giản. Vắ dụ: Ộ60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò khôỢ. Luật kết hợp ựược ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tài chắnh & thị trường chứng khoán, .v.v.
- Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tắnh thứ tự và tắnh thời gian. Hướng tiếp cận này ựược ứng dụng nhiều trong lĩnh vực tài chắnh và thị trường chứng khoán vì nó có tắnh dự báo cao.
- Phân cụm (clustering/segmentation): xếp các ựối tượng theo từng cụm (số lượng cũng như tên của cụm chưa ựược biết trước. Phân cụm còn ựược gọi là học không giám sát (học không có thầy Ờ unsupervised learning).
- Mô tả khái niệm (concept description & summarization): thiên về mô tả, tổng hợp và tóm tắt khái niệm. Vắ dụ: tóm tắt văn bản.
2.2.2 Các dạng dữ liệu có thể khai phá
Do KPDL ựược ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau [8]. Sau ựây là một số kiểu dữ liệu ựiển hình.
- CSDL quan hệ (relational databases)
- CSDL ựa chiều (multidimensional structures, data warehouses) - CSDL dạng giao dịch (transactional databases)
- CSDL quan hệ - hướng ựối tượng (object-relational databases) - Dữ liệu không gian và thời gian (spatial and temporal data) - Dữ liệu chuỗi thời gian (time-series data)
- CSDL ựa phương tiện (multimedia databases) như âm thanh (audio), hình ảnh (image), phim ảnh (video), .v.v.
- Dữ liệu Text và Web (text database & www)
2.3 Ứng dụng của Khai phá dữ liệu 2.3.1 Ứng dụng của Khai phá dữ liệu 2.3.1 Ứng dụng của Khai phá dữ liệu
KPDL tuy là một lĩnh vực mới nhưng thu hút ựược rất nhiều sự quan tâm của các nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Chúng ta có thể liệt kê ra ựây một số ứng dụng ựiển hình:
- Phân tắch dữ liệu và hỗ trợ ra quyết ựịnh (data analysis & decision support)
- điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn ựoán và phương pháp ựiều trị (chế ựộ dinh dưỡng, thuốc men, phẩu thuật, Ầ).
- Text mining & Web mining: phân lớp văn bản và các trang web, tóm tắt văn bản, .v.v.
- Tin-sinh (bio-informatics): tìm kiếm, ựối sánh các hệ gene và thông tin di truyền, mối liên hệ giữa một số hệ gene và một số bệnh di truyền, .v.v.
- Tài chắnh và thị trường chứng khoán (finance & stock market): phân tắch tình hình tài chắnh và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán, .v.v.
- Bảo hiểm (insurance) - .v.v.
2.3.2 Phân loại các hệ Khai phá dữ liệu
KPDL là một công nghệ tri thức liên quan ựến nhiều lĩnh vực nghiên cứu khác nhau như CSDL, kỹ thuật máy học (machine learning), giải thuật, trực quan hóa (visualization), .v.v. Chúng ta có thể phân loại các hệ thống KPDL dựa trên các tiêu chắ khác nhau.
- Phân loại dựa trên kiểu dữ liệu ựược khai phá: CSDL quan hệ (relational database), kho dữ liệu (data warehouse), CSDL giao dịch (transactional database), CSDL hướng ựối tượng, CSDL không gian (spatial database), CSDL ựa phương tiện (multimedia database), CSDL Text và WWW, .v.v.
- Phân loại dựa trên dạng tri thức ựược khám phá: tóm tắt và mô tả (summarization & description), luật kết hợp (association rules), phân lớp (classification), phân cụm (clustering), khai phá chuỗi (sequential mining), .v.v.
- Phân loại dựa trên kỹ thuật ựược áp dụng: hướng CSDL (databaseoriented), phân tắch trực tuyến (OnLine Analytical Processing Ờ OLAP), machine learning (cây quyết ựịnh, mạng nơ ron nhân tạo, k- min, giải thuật di truyền, máy vectơ hỗ trợ - SVM, tập thô, tập mờ, .v.v.), trực quan hóa (visualization), .v.v.
- Phân loại dựa trên lĩnh vực ựược áp dụng: kinh doanh bán lẻ (retail), truyền thông (telecommunication), tin-sinh (bio-informatics), y học (medical treatment), tài chắnh & thị trường chứng khoán (finance & stock market), Web mining, .v.v.
2.4 Những vấn ựề ựược chú trọng trong Khai phá dữ liệu
KPDL là một lĩnh vực mới, do ựó ựang còn rất nhiều vấn ựề chưa ựuợc nghiên cứu một cách trọn vẹn. Sau ựây là một số hướng nghiên cứu ựã và ựang thu hút ựược sự chú ý của các nhà tin học.
- OLAM (OnLine Analytical Mining) - Sự tắch hợp giữa CSDL, kho dữ liệu, và PDL. Hiện nay một số hệ quản trị CSDL như Oracle, MS SQL Server, DB2 ựã tắch hợp tắnh năng xây dựng kho dữ liệu và phân tắch trực tuyến (OLAP).
- Những tắnh năng này ựược hỗ trợ dưới dạng những công cụ ựi kèm và người dùng phải trả tiền thêm nếu cần sử dụng những tắnh năng ựó. Những nhà nghiên cứu trong lĩnh vực CSDL không muốn dừng lại ở ựó mà họ muốn có một sự tắch hợp giữa CSDL, kho dữ liệu và KPDL [8]. - Khám phá ựược nhiều dạng tri thức khác nhau từ nhiều kiểu dữ liệu [8]
[10].
- Tắnh hiệu quả, tắnh chắnh xác, ựộ phức tạp tắnh toán, khả năng mở rộng và tắch hợp, xử lý nhiễu và dữ liệu không ựầy ựủ, tắnh hữu dụng (ý nghĩa) của tri thức [8].
- Vấn ựề song song hóa và phân tán quá trình KPDL [13].
- Ngôn ngữ truy vấn trong KPDL (Data Mining Query Language Ờ DMQL): cung cấp cho người sử dụng một ngôn ngữ hỏi thuật tiện tương tự như SQL ựối với CSDL quan hệ [8].
- Biểu diễn và trực quan hóa tri thức khai phá ựược sao cho gần gũi với người sử dụng (human-readable expression). Tri thức có thể biểu diễn ựa chiều, ựa tầng ựể người dùng sử dụng tri thức hiệu quả hơn [8].
Chương 3:
KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT đỊNH
3.1 Cây quyết ựịnh
3.1.1 định nghĩa cây quyết ựịnh
Trong lĩnh vực học máy, cây quyết ựịnh là một kiểu mô hình dự báo
(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện
tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi nút trong
(internal node) tương ứng với một biến; ựường nối giữa nó với nút con của nó
thể hiện giá trị cụ thể cho biến ựó. Mỗi nút lá ựại diện cho giá trị dự ựoán của biến mục tiêu, cho trước các giá trị dự ựoán của các biến ựược biểu diễn bởi ựường ựi từ nút gốc tới nút lá ựó. Kỹ thuật học máy dùng trong cây quyết ựịnh ựược gọi là học bằng cây quyết ựịnh, hay chỉ gọi với cái tên ngắn gọn là cây quyết ựịnh. [3]
Vắ dụ: Cây quyết ựịnh phân lớp mức lương
Hình 3.1 Cây quyết ựịnh phân lớp mức lương
3.1.2 Ưu ựiểm của cây quyết ựịnh
So với các phương pháp khai phá dữ liệu khác, cây quyết ựịnh có một số ưu ựiểm sau:
Age? ≤ 35 salary > 35 salary ≤ 40 >40 bad good ≤50 >50 bad good
- Cây quyết ựịnh tương ựối dễ hiểu. - đòi hỏi mức tiền xử lý dữ liệu ựơn giản.
- Có thể xử lý với cả các dữ liệu rời rạc và liên tục. - Cây quyết ựịnh là một mô hình hộp trắng.
- Kết quả dự ựoán bằng cây quyết ựịnh có thể thẩm ựịnh lại bằng cách kiểm tra thống kê.
3.1.3 Vấn ựề xây dựng cây quyết ựịnh
Có nhiều thuật toán khác nhau ựể xây dựng cây quyết ựịnh như: CLS, ID3, C4.5, SLIQ, SPRINT, EC4.5, C5.0ẦNhưng nói chung quá trình xây dựng cây quyết ựịnh ựều ựược chia ra làm 3 giai ựoạn cơ bản:
a. Xây dựng cây: Thực hiện chia một cách ựệ quy tập mẫu dữ liệu huấn luyện cho ựến khi các mẫu ở mối nút lá thuộc cùng một lớp. b. Cắt tỉa cây: Là việc làm dùng ựể tối ưu hoá cây. Cắt tỉa cây chắnh là
việc trộn một cây con vào trong một nút lá.
c. đánh giá cây: Dùng ựể ựánh giá ựộ chắnh xác của cây kết quả. Tiêu chắ ựánh giá là tổng số mẫu ựược phân lớp chắnh xác trên tổng số mẫu ựưa vào.
3.1.4 Rút ra các luật từ cây quyết ựịnh.
Có thể chuyển ựổi qua lại giữa mô hình cây quyết ựịnh và mô hình dạng luật (IF ẦTHENẦ). Hai mô hình này là tương ựương nhau.
Vắ dụ từ cây 2.1 ta có thể rút ra ựược các luật sau.
IF (Age <= 35) AND (salary<=40) THEN class = bad IF (Age<=35) AND (salary>40) THEN class = good IF (Age>35) AND (salary <=50 ) THEN class = bad IF (Age > 35) AND(salary>50) THEN class = good
3.2 Các thuật toán khai phá dữ liệu bằng cây quyết ựịnh
3.2.1 Thuật toán CLS
Thuật toán này ựược Hovland và Hint giới thiệu trong Concept learning System (CLS) vào những năm 50 của thế kỷ 20. Sau ựó gọi tắt là thuật toán CLS. Thuật toán CLS ựược thiết kế theo chiến lược chia ựể trị từ trên xuống. Nó gồm các bước sau [6]:
1. Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện.
2. Nếu tất cả các mẫu trong T có thuộc tắnh quyết ựịnh mang giá trị "yes" (hay thuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại. T lúc này là nút lá.
3. Nếu tất cả các mẫu trong T có thuộc tắnh quyết ựịnh mang giá trị "no" (hay thuộc cùng một lớp), thì gán nhãn cho nút T là "no" và dừng lại. T lúc này là nút lá.
4. Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp "yes" và "no" thì:
+ Chọn một thuộc tắnh X trong tập thuộc tắnh của tập mẫu dữ liệu, X có các giá trị v1,v2, Ầvn.
+ Chia tập mẫu trong T thành các tập con T1, T2,Ầ.,Tn. chia theo giá trị của X.
+ Tạo n nút con Ti (i=1,2Ần) với nút cha là nút T.
+ Tạo các nhánh nối từ nút T ựến các nút Ti (i=1,2Ần) là các thuộc tắnh của X.
5. Thực hiện lặp cho các nút con Ti(i =1,2..n) và quay lại bước 2. Ta nhận thấy trong bước 4 của thuật toán, thuộc tắnh ựược chọn ựể triển khai cây là tuỳ ý. Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự chọn thuộc tắnh triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau. Việc lựa chọn
thuộc tắnh sẽ ảnh hưởng tới ựộ rộng, ựộ sâu, ựộ phức tạp của cây. Vì vậy một câu hỏi ựặt ra là thứ tự thuộc tắnh nào ựược chọn ựể triển khai cây sẽ là tốt nhất. Vấn ựề này sẽ ựược giải quyết trong thuật toán ID3 dưới ựây.
3.2.2 Thuật toán ID3
Thuật toán ID3 ựược phát biểu bởi Quinlan (trường ựại học Syney, Australia) 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 decision trees, machine learning năm 1986. ID3 ựược xem như là một cải tiến của CLS với khả năng lựa chọn thuộc tắnh tốt nhất ựể tiếp tục triển khai cây tại mỗi bước. ID3 xây dựng cây quyết ựịnh từ trên- xuống (top -down) [5] .
Entropy [5]: dùng ựể ựo tắnh thuần nhất của một tập dữ liệu. Entropy của một tập S ựược tắnh theo công thức (1)
Entropy(S)= - P log (+ 2 P+) P log (− - 2 P−) (3.1)
Trong trường hợp các mẫu dữ liệu có hai thuộc tắnh phân lớp "yes" (+), "no" (-). Ký hiệu p+ là ựể chỉ tỷ lệ các mẫu có giá trị của thuộc tắnh quyết ựịnh là "yes", và p- là tỷ lệ các mẫu có giá trị của thuộc tắnh quyết ựịnh là "no" trong tập S.
Trường hợp tổng quát, ựối với tập con S có n phân lớp thì ta có công thức sau: n i 2 i=1 Entropy(S)= ∑(- P log ( ))Pi (3.2)
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
- Nếu tất cả các mẫu thành viên trong tập S ựều thuộc cùng một lớp thì Entropy(S) =0
- 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
- Các trường hợp còn lại 0< Entropy(S)<1
Information Gain (viết tắt là Gain)[5]: 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. đại lượng này ựược tắnh thông qua hai giá trị Information và Entropy.\
- Cho tập dữ liệu S gồm có n thuộc tắnh Ai(i=1,2Ần) giá trị Information của thuộc tắnh Ai ký hiệu là Information(Ai) ựược xác ựịnh bởi công thức .
n
i 2
i=1
Information(A ) = -∑log ( )pi =Entropy(S) (3.3)
- 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:
v
v v value(A)
S
( , ) Information(A) - Entropy(A)= Entropy(S)- Entropy(S ) S
Gain S A
∉
= ∑ (3.4)
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.
- Sv bằng tập hợp con của tập S mà có thuộc tắnh A mang giá trị v. - |Sv| là số phần tử của tập Sv.
- |S| là số phần tử của tập S.
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.
Hàm xây dựng cây quyết ựịnh trong thuật toán ID3 [2]
Function induce_tree(tập_vắ_dụ, tập_thuộc_tắnh)
begin
return một nút lá ựược gán nhãn bởi lớp ựó
else if tập_thuộc_tắnh là rỗng then
return nút lá ựược gán nhãn bởi tuyển của tất cả các lớp trong tập_vắ_dụ
else begin
chọn một thuộc tắnh P, lấy nó làm gốc cho cây hiện tại; xóa P ra khỏi tập_thuộc_tắnh;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V; đặt vào phân_vùng
V các vắ dụ trong tập_vắ_dụ có
giá trị V tại thuộc tắnh P; Gọi induce_tree(phân_vùng V, tập_thuộc_tắnh), gắn kết quả vào nhánh V end end end
Với việc tắnh toán giá trị Gain ựể lựa chọn thuộc tắnh tối ưu cho việc triển khai cây, thuật toán ID3 ựược xem là một cải tiến của thuật toán CLS. Tuy nhiên thuật toán ID3 không có khả năng xử lý ựối với những dữ liệu có chứa thuộc tắnh số - thuộc tắnh liên tục (numeric attribute) và khó khăn trong việc xử lý các dữ liệu thiếu (missing data)và dữ liệu nhiễu (noisy data). Vấn ựề này sẽ ựược giải quyết trong thuật toán C4.5 sau ựây.