Tải bản đầy đủ (.pdf) (81 trang)

Khai phá dữ liệu bằng cây quyết định và ứng dụng trong hệ hỗ trợ quyết định

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.13 MB, 81 trang )


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG




NGUYỄN VĂN SỰ




KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH
VÀ ỨNG DỤNG TRONG HỆ HỖ TRỢ QUYẾT ĐỊNH




LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH






Thái Nguyên - 2012
1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

1
MỤC LỤC


LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iii
DANH MỤC BẢNG BIỂU iv
DANH MỤC HÌNH ẢNH v
LỜI NÓI ĐẦU 3
Chương 1. KHAI PHÁ DỮ LIỆU 5
1.1. Khám phá tri thức và khai phá dữ liệu 5
1.2. Tại sao phải khai phá dữ liệu 5
1.3. Quá trình khám phá tri thức 6
1.4. Trình tự thực hiện trong quá trình khai phá dữ liệu 8
1.5. Chức năng của Khai phá dữ liệu 10
1.6. Các kỹ thuật khai phá dữ liệu 11
1.7. Các dạng dữ liệu có thể khai phá được 13
1.8. Ứng dụng của Khai phá dữ liệu 13
1.9. Tổng kết 14
Chương 2. KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH 15
2.1. Cây quyết định 15
2.1.1. Cây quyết định là gì? 15
2.1.2. Một số vấn đề trong khai phá dữ liệu bằng cây quyết định 16
2.1.3. Ưu nhược điểm của cây quyết định trong khai phá dữ liệu 18
2.1.4. Xây dựng cây quyết định 20
2.2. Một số thuật toán khai phá dữ liệu bằng cây quyết định 22
2.2.1. Thuật toán CLS 22
2.2.2. Thuật toán ID3 26
i
2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

2
2.2.3. Thuật toán C4.5 37

2.2.4. Thuật toán SLIQ 41
2.3. Kỹ thuật cắt tỉa cây quyết định 50
2.4. Tổng kết 61
Chương 3. CÂY QUYẾT ĐỊNH VÀ ỨNG DỤNG TRONG HỆ HỖ TRỢ
QUYẾT ĐỊNH 64
3.1. Tổng quan về công tác thi đua khen thưởng trong ngành giáo dục 65
3.1.1. Các tiêu chuẩn và danh hiệu thi đua trong ngành giáo dục 66
3.1.2. Quy trình đề nghị xét duyệt và ra quyết định khen thưởng 67
3.2. Phần mềm hỗ trợ ra quyết định khen thưởng 70
3.2.1. Cấu trúc kho dữ liệu 70
3.2.2. Kết quả cài đặt phần mềm 72
3.2. 3. Đánh giá kết quả đạt được của chương trình 75
3.3. Kết luận và hướng phát triển 77
TÀI LIỆU THAM KHẢO 79


ii
3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

3
LỜI NÓI ĐẦU
Song song với sự phát triển không ngừng của ngành Công nghệ thông tin nói
chung và các lĩnh vực ngành công nghệ phần mềm nói riêng, hệ thống các kho dữ
liệu phục vụ trong công tác hỗ trợ ra quyết định và việc phân loại các thông tin
cũng như nhu cầu lưu trữ thông tin ngày càng cần thiết. Bên cạnh đó việc tin học
hóa trong các công tác quản lý cũng như nhiều lĩnh vực, hoạt động khác đã tạo ra
cho nhân loại một thư viện dữ liệu khổng lồ, sẵn sàng phục vụ bất cứ ai quan tâm.
Đối với chúng ta nó là một trong những nguồn tài nguyên thông tin vô cùng giá trị,
việc tận dụng kho dữ liệu này để làm cơ sở cho việc hỗ trợ ra quyết định trong
công tác quản lý mang lại hiệu quả đáng kể. Nhưng vấn đề là chúng ta cần phải

phân loại nguồn tài nguyên đó như thế nào để sử dụng có hiệu quả nhất trong từng
lĩnh vực cụ thể. Để tìm được đúng thông tin cần tìm trong nguồn tài nguyên khổng
lồ này làm cơ sở hỗ trợ ra quyết định trong mọi hoạt động là một thách thức lớn.
Chính vì vậy mà hiện nay các phương pháp quản trị và khai thác cơ sở dữ
liệu truyền thống ngày càng không đáp ứng được nhu cầu thực tế, từ những hiện
trạng cũng như thách thức này đã làm phát triển một khuynh hướng kỹ thuật mới
nhằm giải quyết bài toán này, đó là Kỹ thuật phát hiện tri thức và khai phá dữ liệu
(Knowledge Discovery and Data Mining).
Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên cứu,
ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt
Nam kỹ thuật này cũng đã và đang được nghiên cứu và dần đưa vào ứng dụng.
Bước quan trọng nhất của quá trình này là khai phá dữ liệu (Data Mining), giúp
người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu (CSDL)
hoặc các nguồn dữ liệu khổng lồ khác để từ đó làm cơ sở ra quyết định xử lý đối
với dữ liệu thu được. Rất nhiều tổ chức trên thế giới đã ứng dụng kĩ thuật khai phá
dữ liệu vào công tác quản lý đã thu được những lợi ích to lớn. Để làm được điều
đó, sự phát triển của các mô hình toán học và các giải thuật hiệu quả chính là chìa
4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

4
khoá quan trọng. Vì vậy, trong luận văn này tác giả sẽ đề cập tới một số kỹ thuật
Khai phá dữ liệu bằng cây quyết định và ứng dụng nó trong hệ hỗ trợ quyết định.
Luận văn gồm 3 chương với nội dung sau:
Chương 1: Trình bày tổng quan về khai phá dữ liệu, các khái niệm cơ bản,
các bước thực hiện, các chức năng, kỹ thuật khai phá dữ liệu, và ứng dụng của khai
phá dữ liệu trong các lĩnh vực.
Chương 2: Trình bày các khái niệm về cây quyết định, các kiểu cây quyết
định và các kỹ thuật khai phá dữ liệu bằng cây quyết định, kỹ thuật cắt tỉa cây
quyết định.
Chương 3: Trình bày bài toán ra quyết định khen thưởng trong ngành giáo

dục, các quy trình xét duyệt và ra quyết định khen thưởng, xác định yêu cầu bài
toán, lựa chọn thuật toán để cài đặt xây dựng công cụ hỗ trợ ra quyết định khen
thưởng trong công tác quản lý thi đua khen thưởng của Bộ Giáo dục và Đào tạo.
5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

5
Chương 1
KHAI PHÁ DỮ LIỆU

1.1. Khám phá tri thức và khai phá dữ liệu
Khám phá tri thức (Knowledge Discovery) trong các cơ sở dữ liệu, kho dữ
liệu là một quy trình gồm nhiều công đoạn để nhận biết các mẫu hoặc các mô hình
trong dữ liệu với các tính năng: hợp thức, mới, khả ích, và có thể hiểu được [18].
Khai phá dữ liệu là việc sử dụng dữ liệu lịch sử để khám phá những qui tắc và
cải thiện những quyết định trong tương lai.
Khai phá dữ liệu như là một quá trình phân tích được thiết kế thăm dò một
lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp và (hoặc) các mối
quan hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp thức hoá các kết quả
tìm được bằng cách áp dụng các mẫu đã phát hiện được cho tập con mới của dữ
liệu. Mục đích của khai phá dữ liệu là:
o Rút trích thông tin hữu ích, chưa biết, các mẫu hoặc các mô hình tiềm
ẩn trong khối dữ liệu lớn dưới dạng các quy luật, ràng buột, quy tắc
trong cơ sở dữ liệu.
o Phân tích dữ liệu bán tự động.
o Giải thích dữ liệu trên các tập dữ liệu lớn.
Khai phá dữ liệu là một bước trong quy trình khám phá tri thức để hỗ trợ ra
quyết định, dự báo và khái quát dữ liệu.
1.2. Tại sao phải khai phá dữ liệu
Ước tính cứ mỗi năm lượng thông tin trên thế giới lại tăng lên khoảng 2 lần.
Chính vì vậy, hiện nay dữ liệu mà con người thu thập và lưu trữ trong các kho dữ

liệu là vô cùng lớn, thậm chí lớn đến mức vượt quá khả năng kiểm soát,… Cũng
bởi lý do này các nhà khoa học đã đề cập đến việc tổ chức lại dữ liệu sao cho hiệu
6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

6
quả, đáp ứng được yêu cầu chất lượng ngày càng cao nhằm hỗ trợ những nhà quản
lý ra quyết định trong các tổ chức quản lý tài chính, thương mại, khoa học,
Với lượng dữ liệu tăng nhanh hàng năm, rõ ràng các phương pháp thủ công
truyền thống áp dụng để phân tích dữ liệu sẽ không hiệu quả, tốn kém và dễ dẫn
đến những sai lệch. Do đó, để có thể sử dụng hiệu quả hơn nữa các cơ sở dữ liệu
lớn thì nhất thiết cần phải có những kỹ thuật mới, và kỹ thuật khai phá dữ liệu đã
được các nhà khoa học đề cập tới.
Khai phá dữ liệu là một lĩnh vực khoa học nhằm tự động hóa khai thác những
thông tin, tri thức hữu ích, tiềm ẩn trong các CSDL cho các tổ chức, doanh
nghiệp, Các kết quả nghiên cứu cùng với những ứng dụng thành công trong khai
phá dữ liệu, khám phá tri thức cho thấy khai phá dữ liệu là một lĩnh vực khoa học
tiềm năng, mang lại nhiều lợi ích, đồng thời có ưu thế hơn hẳn so với các công cụ
phân tích dữ liệu truyền thống. Hiện nay, khai phá dữ liệu được ứng dụng rộng rãi
trong các lĩnh vực như: Phân tích dữ liệu hỗ trợ ra quyết định, điều trị y học, tin-
sinh học, thương mại, tài chính, bảo hiểm, text mining, web mining,
1.3. Quá trình khám phá tri thức
Quá trình khám phá tri thức được tiến hành qua 5 bước sau:

Hình 1.1. Quá trình khám phá tri thức [18]
7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

7
- Bước 1: Hình thành và định nghĩa bài toán
Đây là bước tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này sẽ
quyết định cho việc rút ra những tri thức hữu ích, đồng thời lựa chọn các phương

pháp khai phá dữ liệu thích hợp với mục đích của ứng dụng và bản chất của dữ
liệu.
- Bước 2: Thu thập và tiền xử lý dữ liệu
Trong bước này dữ liệu được thu thập ở dạng thô (nguồn dữ liệu thu thập có
thể là từ các kho dữ liệu hay nguồn thông tin khác từ internet). Trong giai đoạn này
dữ liệu cũng được tiền xử lý để biến đổi và cải thiện chất lượng dữ liệu cho phù
hợp với phương pháp khai phá dữ liệu được chọn lựa trong bước trên.
Bước này thường chiếm nhiều thời gian nhất trong quá trình khám phá tri
thức.
Các giải thuật tiền xử lý dữ liệu bao gồm:
1. Xử lý dữ liệu bị mất/thiếu: các dạng dữ liệu bị thiếu sẽ được thay thế bởi
các giá trị thích hợp.
2. Khử sự trùng lặp: các đối tượng dữ liệu trùng lặp sẽ bị loại bỏ đi.
3. Giảm nhiễu: nhiễu và các đối tượng tách rời khỏi phân bố chung sẽ bị loại
đi khỏi dữ liệu.
4. Chuẩn hoá: miền giá trị của dữ liệu sẽ được chuẩn hoá.
5. Rời rạc hoá: các dạng dữ liệu số sẽ được biến đổi ra các giá trị rời rạc.
6. Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có.
7. Giảm chiều: các thuộc tính chứa ít thông tin sẽ được loại bỏ bớt.
- Bước 3: Khai phá dữ liệu và rút ra các tri thức
Đây là bước quan trọng nhất trong tiến trình khám phá tri thức. Kết quả của
bước này là trích ra được các mẫu và (hoặc) các mô hình ẩn dưới các dữ liệu. Một
mô hình có thể là một biểu diễn cấu trúc tổng thể một thành phần của hệ thống hay
8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

8
cả hệ thống trong cơ sở dữ liệu, hay miêu tả cách dữ liệu được nảy sinh. Còn một
mẫu là một cấu trúc cục bộ có liên quan đến vài biến và vài trường hợp trong cơ sở
dữ liệu.
- Bước 4: Phân tích và kiểm định kết quả

Bước thứ tư là hiểu các tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả
và dự đoán. Trong bước này, kết quả tìm được sẽ được biến đổi sang dạng phù hợp
với lĩnh vực ứng dụng và dễ hiểu hơn cho người dùng.
- Bước 5: Sử dụng các tri thức phát hiện được
Trong bước này, các tri thức khám phá được sẽ được củng cố, kết hợp lại
thành một hệ thống, đồng thời giải quyết các xung đột tiềm năng trong các tri thức
đó. Các mô hình rút ra được đưa vào những hệ thống thông tin thực tế dưới dạng
các module hỗ trợ việc đưa ra quyết định.
Các giai đoạn của quá trình khám phá tri thức có mối quan hệ chặt chẽ với
nhau trong bối cảnh chung của hệ thống. Các kỹ thuật được sử dụng trong giai
đoạn trước có thể ảnh hưởng đến hiệu quả của các giải thuật được sử dụng trong
các giai đoạn tiếp theo. Các bước của quá trình khám phá tri thức có thể được lặp
đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần
thực hiện.
1.4. Trình tự thực hiện trong quá trình khai phá dữ liệu
Khai phá dữ liệu là hoạt động trọng tâm của quá trình khám phá tri thức.
Thuật ngữ khai phá dữ liệu còn được một số nhà khoa học gọi là phát hiện tri thức
trong cơ sở dữ liệu (Knowledge discovery in database) (theo Fayyad Smyth và
Piatestky-Shapiro 1989). Quá trình này gồm có 6 bước [1]:
9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

9

Hình 1.2. Quá trình khai phá dữ liệu
Quá trình khai phá dữ liệu bắt đầu với kho dữ liệu thô và kết thúc với tri thức
được chiết xuất ra. Nội dung của quá trình như sau:
- Gom dữ liệu (gatherin)
Tập hợp dữ liệu là bước đầu tiên trong khai phá dữ liệu. Bước này lấy dữ liệu
từ trong một cơ sở dữ liệu, một kho dữ liệu, thậm chí dữ liệu từ những nguồn cung
ứng web.

- Trích lọc dữ liệu (selection)
Ở giai đoạn này dữ liệu được lựa chọn và phân chia theo một số tiêu chuẩn
nào đó.
- Làm sạch và tiền xử lý dữ liệu (cleansing preprocessing)
Giai đoạn thứ ba này là giai đoạn thường bị bỏ quên, nhưng thực tế nó là một
bước rất quan trọng trong quá trình khai phá dữ liệu. Một số lỗi thường mắc phải
trong khi gom dữ liệu là dữ liệu không đầy đủ hoặc không thống nhất, thiếu chặt
chẽ, vô nghĩa (ví dụ như: con người có chiều cao = 4 mét  điều này là vô lý), do
vậy ở giai đoạn thứ ba này nhằm xử lý các dữ liệu như trên (dữ liệu vô nghĩa, dữ
10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

10
liệu không có khả năng kết nối). Những dữ liệu dạng này thường được xem là
thông tin dư thừa, không có giá trị. Bởi vậy đây là một quá trình rất quan trọng.
Nếu dữ liệu không được làm sạch - tiền xử lý - chuẩn bị trước thì sẽ tạo ra những
kết quả sai lệch nghiêm trọng về sau.
- Chuyển đổi dữ liệu (transformation)
Trong giai đoạn này, dữ liệu có thể được tổ chức và sử dụng lại. Mục đích của
việc chuyển đổi dữ liệu là làm cho dữ liệu phù hợp hơn với mục đích khai phá dữ
liệu.
- Phát hiện và trích chọn mẫu dữ liệu (pattern extraction and discovery)
Đây là bước tư duy trong khai phá dữ liệu. Ở trong giai đoạn này nhiều thuật
toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu. Thuật toán thường
dùng để trích mẫu dữ liệu là thuật toán phân loại dữ liệu, kết hợp dữ liệu, thuật
toán mô hình hoá dữ liệu tuần tự.
- Đánh giá kết quả mẫu (evaluation of result)
Đây là giai đoạn cuối cùng trong quá trình khai phá dữ liệu, ở giai đoạn này
các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu. Không phải
mẫu dữ liệu nào cũng hữu ích, đôi khi nó còn bị sai lệch. Vì vậy cần phải đưa ra
những tiêu chuẩn đánh giá độ ưu tiên cho các mẫu dữ liệu để rút ra được những tri

thức cần thiêt.
1.5. Chức năng của Khai phá dữ liệu
Khai phá dữ liệu có hai chức năng chính là mô tả (description) và dự đoán
(prediction) trong đó:
- Chức năng khai phá dữ liệu mô tả sẽ mô tả các tính chất hoặc đặc tính chung
của dữ liệu trong cơ sở dữ liệu, nghĩa là phân tích và mô tả một tập mẫu nhằm giúp
hiểu rõ hơn, sâu hơn về dữ liệu.
11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

11
- Chức năng khai phá dữ liệu dự đoán sẽ thực hiện việc suy luận dựa trên dữ
liệu hiện hành để cho ra các dự báo, nghĩa là phân tích tập dữ liệu huấn luyện và
tạo ra một hoặc vài mô hình cho phép dự đoán các mẫu mới chưa biết.
1.6. Các kỹ thuật khai phá dữ liệu
Trong thực tế, có nhiều kỹ thuật khác nhau được sử dụng để khai phá dữ liệu
nhằm thực hiện hai đích chính là mô tả và dự đoán, trong đó:
- Kỹ thuật khai phá dữ liệu nhằm thực hiện chức năng mô tả: có nhiệm vụ mô
tả các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có. Một số
kỹ thuật khai phá trong nhóm này là: phân cụm dữ liệu (Clustering), tổng hợp
(Summarisation), trực quan hoá (Visualization),
- Kỹ thuật khai phá dữ liệu nhằm thực hiện chức năng dự đoán: có nhiệm vụ
đưa ra các dự đoán dựa vào các suy diễn trên cơ sở dữ liệu hiện thời. Một số kỹ
thuật khai phá trong nhóm này là: phân lớp (Classification), hồi quy (Regression),
cây quyết định (Decision tree), thống kê (statictics), mạng nơron (Neural network),
luật kết hợp,
Một số kỹ thuật khai phá dữ liệu thường được sử dụng hiện nay [3]:
1) Phân lớp dữ liệu
Mục tiêu của phân lớp dữ liệu đó là dự đoán nhãn lớp cho các mẫu dữ liệu.
Quá trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu
(mỗi mẫu 1 lớp). Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác

của mô hình chấp nhận được.
2) Phân cụm dữ liệu
Mục tiêu của phân cụm 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 cụm, sao cho các đối tượng thuộc cùng một cụm là tương đồng
với nhau.


12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

12
3) Khai phá luật kết hợp
Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các
giá trị dữ liệu trong cơ sở dữ liệu. Phương pháp khai phá luật kết hợp gồm có hai
bước:
Bước 1: Tìm ra tất cả các tập mục phổ biến, một tập mục phổ biến được xác
định thông qua độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu.
Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, các luật phải thoả
mãn độ hỗ trợ và độ tin cậy cực tiểu.
4) Hồi quy
Phương pháp hồi quy tương tự như là phân lớp dữ liệu. Nhưng khác ở chỗ nó
dùng để dự đoán các giá trị liên tục còn phân lớp dữ liệu dùng để dự đoán các giá
trị rời rạc.
5) Giải thuật di truyền
Là quá trình mô phỏng theo tiến hoá của tự nhiên. Ý tưởng chính của giải
thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá
trong sinh học.
6) Mạng nơron
Đây là một trong những kỹ thuật khai phá dữ liệu được ứng dụng phổ biến
hiện nay. Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả
năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con

người.
Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo, dự
đoán với độ chính xác và độ tin cậy cao. Nó có khả năng phát hiện ra được các xu
hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được. Tuy
nhiên, phương pháp mạng nơ ron rất phức tạp và quá trình tiến hành nó gặp rất
nhiều khó khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm tra thử
nghiệm.
13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

13
7) Cây quyết định
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp
và dự báo. Các đối tượng dữ liệu được phân thành các lớp. Các giá trị của đối
tượng dữ liệu chưa biết sẽ được dự đoán, dự báo. 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.
1.7. Các dạng dữ liệu có thể khai phá được
Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngành, nhiều lĩnh
vực như: thống kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán học, tính toán song
song và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu Đặc
biệt phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vực thống kê, sử
dụng các phương pháp thống kê để mô hình dữ liệu và phát hiện các mẫu, luật,
Do vậy, khai phá dữ liệu có thể ứng dụng cho bất kỳ kho thông tin nào bao gồm:
+ Các cơ sở dữ liệu quan hệ;
+ Kho dữ liệu;
+ Các cơ sở dữ liệu giao tác;
+ Các hệ thống cơ sở dữ liệu tiên tiến;
+ Các tệp;

1.8. Ứng dụng của Khai phá dữ liệu

Khai phá dữ liệu tuy không phải là một cách tiếp cận mới, song nó lại thu hút
rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng
dụng thực tiến của nó. Dưới đây là một số ứng dụng điển hình được sử dụng phổ
biến trong từng lĩnh vực cụ thể:
- Nhận dạng (Pattern recognition)
- Tin - sinh (Bio-informatics)
- Khai phá dữ liệu văn bản, dữ liệu web (Textmining & Webmining)
- Trong tài chính và thị trường chứng khoán (Finace & Stock market)
14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

14
- Trong điều trị y học (Medical treatment)
- Trong bảo hiểm (Insurance)
- Phát hiện gian lận (Fraud detection)
- Các ứng dụng phát hiện và cô lập lỗi trên hệ thống mạng viễn thông
(Network fault isolation)
.v.v.
1.9. Tổng kết
Khai phá dữ liệu là một môn khoa học liên ngành: Cơ sở dữ liệu, học máy và
thống kê toán học, nghiên cứu các kỹ thuật nhằm phát hiện những thông tin có giá
trị, tiềm ẩn trong các cơ sở dữ liệu lớn.
Khai phá dữ liệu bằng cây quyết định là một kỹ thuật trong số các kỹ thuật
thường được sử dụng để khai phá dữ liệu nhằm tìm kiếm các tri thức có ích và hỗ
trợ ra quyết định trong các công tác quản lý của các nhà lãnh đạo các cơ quan, tổ
chức doanh nghiệp,
15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

15
Chương 2
KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH



2.1. Cây quyết định
Cây quyết định là một trong những giải pháp trực quan và hữu hiệu để mô tả
quá trình phân lớp dữ liệu. Trên cây quyết định, chúng ta tìm được các luật, những
luật này cung cấp những thông tin hữu ích để hỗ trợ việc ra quyết định giải quyết
một vấn đề nào đó.
2.1.1. Cây quyết định là gì?
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 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 [16].
Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, như mô tả trong
hình vẽ sau:

16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

16

Hình 2.1. Ví dụ về cây quyết định
Trong cây quyết định:
- Gốc: là node trên cùng của cây
- Node trong: biểu diễn một kiểm tra trên một thuộc tính đơn (hình chữ nhật)
- Nhánh: biểu diễn các kết quả của kiểm tra trên node trong (mũi tên)
- Node lá: biểu diễn lớp hay sự phân phối lớp (hình tròn)
Các kiểu cây quyết định [16]:

- Cây hồi quy (Regression tree) ước lượng các hàm giá có giá trị là số thực
thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính khoảng thời gian
một bệnh nhân nằm viện hoặc giá của một ngôi nhà).
- Cây phân loại (Classification tree) nếu y là một biết phân loại như giới tính
(nam hay nữ), kết quả của một kỳ thi đại học (đỗ hay trượt).
2.1.2. Một số vấn đề trong khai phá dữ liệu bằ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 đào tạo 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. Sau đây luận văn sẽ đề cập đến những vấn
đề chính đã được giải quyết trong các thuật toán phân lớp dựa trên cây quyết định.

17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

17
+ Tránh “quá vừa” dữ liệu
Có thể hiểu “quá vừa” là hiện tượng cây quyết định chứa một số đặc trưng
riêng của tập dữ liệu đào tạo, nếu lấy chính tập dữ liệu đào tạo để kiểm tra lại mô
hình phân lớp thì độ chính xác sẽ rất cao, trong khi đối với những dữ liệu tương lai
khác nếu sử dụng cây đó lại không đạt được độ chính xác như vậy.
“Quá vừa” dữ liệu là một khó khăn đáng kể đối với học bằng cây quyết định
và những phương pháp học khác. Đặc biệt khi số lượng ví dụ trong tập dữ liệu đào
tạo quá ít, hay có “nhiễu” trong dữ liệu.
Có hai phương pháp tránh “quá vừa” dữ liệu trong cây quyết định:
1) Dừng phát triển cây sớm, trước khi đạt tới điểm phân lớp hoàn hảo tập dữ
liệu đào tạo. Với phương pháp này, một thách thức đặt ra là phải ước
lượng chính xác thời điểm dừng phát triển cây.
2) Cho phép cây có thể “quá vừa” dữ liệu, sau đó sẽ cắt, tỉa cây.
Mặc dù phương pháp thứ nhất có vẻ trực tiếp hơn, nhưng với phương pháp

thứ hai thì cây quyết định được sinh cho phép quá vừa và sau đó sẽ thực hiện thao
tác cắt tỉa, điều này sẽ đơn giản hơn nhiều xo với việc ước lượng thời điểm dừng
phát triển cây. Hơn nữa việc cắt tỉa cây quyết định còn giúp tổng quát hóa, và cải
thiện độ chính xác của mô hình phân lớp. Dù thực hiện phương pháp nào thì vấn
đề mấu chốt ở đây là tiêu chuẩn nào được sử dụng để xác định kích thước hợp lý
của cây cuốicùng.
+ Thao tác với thuộc tính liên tục
Việc thao tác với thuộc tính liên tục trên cây quyết định hoàn toàn không đơn
giản như với thuộc tính rời rạc.
Thuộc tính rời rạc có tập giá trị (domain) xác định từ trước và là tập hợp các
giá trị rời rạc; ví dụ loại ô tô là một thuộc tính rời rạc với tập giá trị là: {xe tải, xe
khách, xe con, taxi}. Việc phân chia dữ liệu dựa vào phép kiểm tra giá trị của
thuộc tính rời rạc được chọn tại một ví dụ cụ thể có thuộc tập giá trị của thuộc tính
18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

18
đó hay không: value(A) ∈ X với X ⊂ domain(A). Đây là phép kiểm tra logic đơn
giản, không tốn nhiều tài nguyên tính toán. Trong khi đó, với thuộc tính liên tục
(thuộc tính dạng số) thì tập giá trị là không xác định trước. Chính vì vậy, trong quá
trình phát triển cây, cần sử dụng kiểm tra dạng nhị phân: value(A) ≤ θ. Với θ là
ngưỡng (threshold) được lần lượt xác định dựa trên từng giá trị riêng biệt hay từng
cặp giá trị liền nhau (theo thứ tự đã sắp xếp) của thuộc tính liên tục đang xem xét
trong tập dữ liệu đào tạo. Điều đó có nghĩa là nếu thuộc tính liên tục A trong tập dữ
liệu đào tạo có n giá trị phân biệt thì cần thực hiện n-1 lần kiểm tra value(A) ≤ θ
i

với i = 1 n-1 để tìm ra ngưỡng θ
best
tốt nhất tương ứng với thuộc tính đó. Việc xác
định giá trị của θ và tiêu chuẩn tìm θ

best
tốt nhất tùy vào chiến lược của từng thuật
toán [8].
2.1.3. Ưu nhược điểm của cây quyết định trong khai phá dữ liệu
So với các phương pháp khai phá dữ liệu khác, kỹ thuật khai phá dữ liệu bằng
cây quyết định có một số ưu nhược điểm sau:
+ Ưu điểm:
1) Khả năng sinh ra các quy tắc hiểu được: Cây quyết định có khả năng sinh
ra các quy tắc có thể chuyển đổi sang mô hình dạng quy tắc (hay còn gọi
là mô hình dạng luật IF THEN ) đây là ưu điểm nổi bật của kỹ thuật
này, cho dù hình dáng cây quyết định có thể lớn và phức tạp do những tập
dữ liệu lớn nhưng việc đi theo bất cứ đường nào trên cây đều dễ dàng theo
nghĩa phổ biến và rõ ràng. Do vậy việc giải thích cho bất cứ một sự phân
lớp hay dự đoán nào đều tương đối rõ ràng và trực quan.
2) Khả năng thực thi những lĩnh vực hướng quy tắc: Quy tắc quy nạp nói
chung và cây quyết định nói riêng là lựa chọn hoàn hảo cho những lĩnh
vực thực sự là các quy tắc. Ta thấy, trong các lĩnh vực từ di truyền đến các
quá trình công nghiệp thực sự chứa các quy tắc ẩn, không rõ ràng do khá
phức tạp và tối nghĩa bởi những dữ liệu nhiễu. Cây quyết định sẽ là một sự
19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

19
lựa chọn tự nhiên khi chúng ta nghi nghờ sự tồn tại của các quy tắc ẩn,
không minh bạch.
3) Dễ tính toán trong khi phân lớp: Như chúng ta đã biết, cây quyết định có
thể chứa nhiều định dạng, nhưng trong thực tế, các thuật toán sử dụng để
tạo ra cây quyết định thường tạo ra những cây với số phân nhánh thấp và
các test đơn giản tại từng node. Những test điển hình là: so sánh số, xem
xét phần tử của một tập hợp, và các phép nối đơn giản. Khi thực thi trên
máy tính, những test này chuyển thành các toán hàm logic và số nguyên là

những toán hạng thực thi nhanh và không đắt. Đây chính là một ưu điểm
quan trọng bởi trong môi trường thương mại, các mô hình dự đoán thường
được sử dụng để phân lớp hàng triệu thậm trí hàng tỉ bản ghi.
4) Khả năng xử lý với cả hai thuộc tính liên tục và rời rạc: Cây quyết định xử
lý “tốt” như nhau với thuộc tính liên tục và thuộc tính rời rạc. Tuy nhiên,
thuộc tính liên tục cần nhiều tài nguyên tính toán hơn. Những thuộc tính
rời rạc đã từng gây ra những vấn đề với mạng neural và các kỹ thuật thống
kê lại thực sự dễ dàng thao tác với các điều kiện phân chia (splitting
criteria) trên cây quyết định, mỗi nhánh tương ứng với từng phân tách tập
dữ liệu theo giá trị của thuộc tính được chọn để phát triển tại node đó. Các
thuộc tính liên tục cũng dễ dàng phân chia bằng việc chọn ra một số gọi là
ngưỡng trong tập các giá trị đã sắp xếp của thuộc tính đó. Sau khi chọn
được ngưỡng tốt nhất, tập dữ liệu phân chia theo test nhị phân của ngưỡng
đó.
5) Thể hiện rõ ràng những thuộc tính tốt nhất: Các thuật toán xây dựng cây
quyết định đưa ra thuộc tính mà phân chia tốt nhất tập dữ liệu huấn luyện
bắt đầu từ node gốc của cây. Từ đó có thể thấy những thuộc tính nào là
quan trọng nhất cho việc dự đoán hay phân lớp.

20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

20
+ Nhược điểm:
Với những ưu điểm nổi bật như đã nêu trên, cây quyết định cũng vẫn không
tránh khỏi những tồn tại và hạn chế.
1) Cây quyết định không thích hợp cho những bài toán với mục tiêu là dự
đoán giá trị của thuộc tính liên tục như thu tập, huyết áp hay lãi xuất ngân
hàng, Cây quyết định cũng khó giải quyết với những dữ liệu thời gian
liên tục nếu không bỏ ra nhiều công sức cho việc đặt ra sự biểu diễn dữ
liệu theo các mẫu liên tục.

2) Dễ gâ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”. 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ố mẫu huấn luyện
ứng với một lớp là nhỏ. Điều này thể hiện càng nhanh, rõ hơn với cây mà
có nhiều tầng hay có nhiều nhánh trên một node.
3) Chi phí tính toán “đắt” để đào tạo, nghe có vẻ mâu thuẫn với ưu điểm thứ
3 được nên trên. Tuy nhiên, quá trình phát triển cây quyết định “đắt” về
mặt tính toán là vì 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 (hoặc 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 xắp
xếp lại tập dữ liệu theo thứ tự giá trị ủa thuộc tính đó, sau đó mới có thể
chọn một thuộc tính phát triển và tương ứng là một phân chia tốt nhất. Một
vài thuật toán sử dụng tổ hợp các thuộc tính kết hợp với nhau có trọng số
để phát triển cây quyết định. Quá tình cắt tỉa cây cũng “đắt” bởi nhiều cây
con ứng cử phải được tạo ra và so sánh.
2.1.4. Xây dựng cây quyết định
Xây dựng cây quyết định là công đoạn quan trọng nhất trong việc sử dụng cây
quyết định để khai phá dữ liệu. Quá trình xây dựng cây quyết định gồm ba bước cơ
bản sau:

21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

21
Bước 1: Tạo cây quyết định
Tại bước này việc tạo cây quyết định 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.
Các công việc của bước này gồm:
1) Chọn thuộc tính “tốt” nhất bằng một độ đo định trước;
2) Phát triển cây bằng việc sinh các nhánh tương ứng với từng giá trị của

thuộc tính đã chọn;
3) Sắp xếp, phân chia tập dữ liệu đào tạo với node con;
4) Nếu các ví dụ được phân lớp rõ ràng thì dừng;
Ngược lại thì lặp lại bước 1 đến bước 4 cho từng node con.
Bước 2: Cắt tỉa cây quyết định
Bước 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
(noise) 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. Bước này chỉ truy cập dữ liệu
trên cây quyết định đã được phát triển trong bước 1 và quá trình thực nghiệm cho
thấy bước này không tốn nhiều tài nguyên tính toán, như với phần lớn các thuật
toán, Bước 2 chỉ chiếm khoảng dưới 1% tổng thời gian xây dựng mô hình phân lớp
[8], [11].
Bước 3: Đánh giá cây
Tại bước này cần đánh giá độ chính xác của cây kết quả thu được. Việc đánh
giá cây kết quả khá đơn giản bằng cách cho một tập dữ kiện vào và so sánh nhãn
của lớp đã dự đoán với nhãn của lớp trên thực tế đạt được. Tiêu chí để đánh giá độ
chính xác của cây quyết định là tỷ số các mẫu được phân lớp chính xác trên tổng
số các mẫu đưa vào.
22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

22
2.2. Một số thuật toán khai phá dữ liệu bằng cây quyết định
2.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 [9]:
- Đầu vào: Tập dữ liệu mẫu, thuộc tính phân lớp;
- Đầu ra: Cây Quyết định (tập dữ liệu đã được phân lớp);
Quá trình thực hiện như sau:

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ì:
i. 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ị v
1
,v
2
, …v
n
;
ii. Chia tập mẫu trong T thành các tập con T
1
, T
2
,….,T
n
. chia theo giá
trị của X;
iii. Tạo n nút con T
i
(i=1,2…n) với nút cha là nút T;
iv. Tạo các nhánh nối từ nút T đến các nút T
i

(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 T
i
(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ỳ ý. Điều đó nói lên rằng khi áp dụng thuật toán CLS để xây dựng cây trên
23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

23
cùng một tập mẫu huấn luyện, cây quyết định thu được sẽ phụ thuộc vào việc chọn
thuộc tính mở rộng cây ở bước 4. Để kiểm chứng khẳng định này ta xét ví dụ sau:
Ví dụ: Cho tập dữ liệu huấn luyện thể hiện trong bảng 2.1, xâydựng cây quyết
định chơi thể thao.
Ngày

Bầu trời Nhiệt độ Độ ẩm Gió
Chơi
thể thao

1 Nắng Nóng Cao Yếu Không
2 Nắng Nóng Cao Mạnh Không
3 U ám Nóng Cao Yếu Có
4 Mưa Bình thường Cao Yếu Có
5 Mưa Mát Trung bình Yếu Có
6 Mưa Mát Trung bình Mạnh Không
7 U ám Mát Trung bình Mạnh Yes
8 Nắng Bình thường Cao Yếu Không
9 Nắng Mát Trung bình Yếu Có
10 Mưa Bình thường Trung bình Yếu Có

11 Nắng Bình thường Trung bình Mạnh Có
12 U ám Bình thường Cao Mạnh Có
13 U ám Nóng Trung bình Yếu Có
14 Mưa Bình thường Cao Mạnh Không
Bảng 2.1. Tập dữ liệu huấn luyện quyết định chơi thể thao

Bảng dữ liệu trên là một tập các mẫu mô tả quyết định đi chơi tennis. Trong
bảng, thuộc tính Day được dùng để định danh (chỉ số). Các thuộc tính outlook
(quang cảnh bầu trời), temperature (nhiệt độ), humidity (độ ẩm), wind (gió) là các
thuộc tính ứng cử viên được dùng để xét. Còn thuộc tính play tennis là thuộc tính
khẳng định được dùng để phân lớp các mẫu dữ liệu. Khi đó cây quyết định được
xây dựng theo thuật toán CLS đối với tập dữ liệu trong bảng 11.1 được xây dựng
như sau:
1) Chọn thuộc tính Bầu trời = {Nắng, U ám, Mưa} ta có cây như hình 2.2
dưới đây:
24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

24

Hình 2.2. Cây được tạo khi thuộc tính “Bầu trời” được chọn
Với giá trị thuộc tính Bầu trời = "U ám" các giá trị thuộc tính “Chơi thể thao”
của các ngày {3,7,12,13} đếu có giá trị là “Có”, chúng thuộc cùng một lớp "Có",
đây là nút lá có nhãn là "Có".
2) Tiếp theo chọn thuộc tính Độ ẩm = {Cao, Trung bình} để mở rộng cho
nhánh bên trái của cây, chúng ta được cây như hình 2.3 bên dưới.

Hình 2.3. Cây được mở rộng khi thuộc tính “Độ ẩm” được chọn
Bầu trời
[1,2,3,4,5,6,7,8,9,10,11,12,13,14]
U ám

Nắng
Mưa


“Có”
[3,7,
12,13]
“?”
[4,5,6,10,14]
Độ ẩm
[1,2,8,9,11]
Cao Trung bình
“Không”
[1,2,8]
“Có”
[9,11]
Bầu trời
[1,2,3,4,5,6,7,8,9,10,11,12,13,14]
U ám
Nắng
Mưa


“Có”
[3,7,
12,13]
“?”
[4,5,6,10,14]
“?”
[1,2,8,9,11]

25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×