Tải bản đầy đủ (.doc) (45 trang)

Khai phá dữ liệu và xây dựng cây quyết định cải tiến, ứng dụng thoật toán ID3

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.04 MB, 45 trang )

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN


























MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1


1
MỤC LỤC 2
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 2
MỤC LỤC 2
LỜI NÓI ĐẦU 3
1.2.Quá trình phát hiện tri thức từ cơ sở dữ liệu 5
1.2.1. Xác định bài toán 5
1.2.2. Thu thập và tiền xử lý dữ liệu 6
1.2.2.1. Gom dữ liệu 6
1.2.2.2. Chọn lọc dữ liệu 7
1.2.2.3. Làm sạch 7
1.2.2.4. Làm giàu dữ liệu 7
1.2.2.5. Mã hoá dữ liệu 8
1.2.2.6. Đánh giá và trình diễn 8
1.2.3. Khai phá dữ liệu và rút ra tri thức 8
1.2.4.Phát biểu và đánh giá kết quả 8
1.2.5.Sử dụng tri thức đã phát hiện 9
1.3.2.1. Phân lớp (Classification) 10
1.3.2.2. Hồi quy (Regression) 10
1.3.2.3. Gom nhóm (Clustering) 10
1.3.2.4. Tổng hợp (Summarization) 11
1.3.2.5. Mô hình ràng buộc (Dependency modeling) 11
1.3.2.6. Dò tìm biến đổi và độ lệch (Change and Deviation Dectection) 11
1.3.3. Ứng dụng của khai phá dữ liệu 11
1.3.4. Một số kỹ thuật khai phá dữ liệu 12
1.3.4.1. Phương pháp quy nạp (Induction) 12
1.3.4.2. Cây quyết định và luật 13
1.3.4.3. Phát hiện các luật kết hợp 13
1.3.4.4. Mạng Neuron 14
1.3.4.5. Giải thuật di truyền 14

1.3.6. Một vài thách thức đặt ra trong việc khai phá dữ liệu 15
Chương 2 16
2.1. Cây quyết định 16
2.1.2. Các kiểu cây quyết định 18
2.2.4.Thuật toán SLIQ 26
2.2.5.Cắt tỉa cây quyết định 29
3.1. Mô tả bài toán 32
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
LỜI NÓI ĐẦU
Kỹ nguyên Internet, Intranets, Warehouses, đã mở ra nhiều cơ hội cho
các cơ quan, các doanh nghiệp, các đơn vị trong việc thu thập và xử lý thông
tin. Bên cạnh đó, với sự phát triển mạnh mẽ của công nghệ điện tử và các
thiết bị thu thập dữ liệu tự động đã tạo ra những kho dữ liệu khổng lồ; những
bộ nhớ có dung lượng lớn, bộ xử lý tốc độ cao cùng với các hệ thống mạng
viễn thông, các chủ doanh nghiệp đã xây dựng các hệ thống thông tin nhằm tự
động hoá mọi hoạt động kinh doanh của họ. Điều này đã tạo ra một dòng dữ
liệu tăng lên không ngừng vì ngay từ các giao dịch đơn giản nhất như: một
cuộc điện thoại, kiểm tra sức khỏe, sử dụng thẻ tín dụng, đều được ghi vào
trong máy tính.
Vấn đề đặt ra là làm thế nào để xử lý khối lượng thông tin cực lớn như
vậy để phát hiện ra các tri thưc tiềm ẩn trong nó. Trong điều kiện và yêu cầu
của thương trường, đòi hỏi phải có những phương pháp nhanh, phù hợp, tự
động, chính xác và có hiệu quả để lấy được thông tin có giá trị. Các phương
pháp quản trị và khai thác cơ sở dữ liệu truyền thống không đáp ứng được kỳ
vọng này, và giải pháp là sự ra đời của “Kỹ thuật phát hiện tri thức và khai
phá dữ liệu” (KDD - Knowledge Discovery and Data Mining).
Nhiệm vụ của KDD là từ dữ liệu sẵn có phải tìm ra những thông tin
tiềm ẩn có giá trị mà trước đó chưa được phát hiện cũng như tìm ra những xu
hướng phát triển và các xu hướng tác động lên chúng .Các kỹ thuật cho phép
HVTH: Phạm Ngọc Giàu – CH1101080 Trang

3
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
ta lấy được các tri thức từ cơ sở dữ liệu sẵn có đó được gọi là kỹ thuật Khai
phá dữ liệu( Data Mining).
Từ những lý do đó em đã hiểu đề tài Khai phá dữ liệu và xây dựng cây
quyết định cải tiến, ứng dụng thoật toán ID3.
Với lượng thời gian có giới hạn và năng lực còn hạn chế nên không
tránh khỏi những sai sót, em mong nhận được sự góp ý hơn nữa của Thầy và
các bạn.
Qua đây, em xin chân thành gửi lời cảm ơn tới Giáo sư - Tiến sĩ Khoa
Học Hoàng Văn Kiếm, Người đã tận tâm chỉ dẫn em trong suốt quá trình học
và thực hiện đề tài. Bên cạnh đó, em cũng xin cảm ơn các chuyên gia cố vấn
qua mạng và các bạn bè học viên trong lớp đã giúp đỡ em hoàn thành bài thu
hoạch.
Em xin chân thành cảm ơn!
Sinh viên thực hiện: Phạm Ngọc Giàu
Chương 1
TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC
VÀ KHAI PHÁ DỮ LIỆU
1.1. Phát hiện tri thức và khai phá dữ liệu
Yếu tố thành công trong mọi hoạt động kinh doanh ngày nay là việc
biết sử dụng thông tin có hiệu quả. Điều đó có nghĩa là từ các dữ liệu có sẵn
phải tìm ra những thông tin tiềm ẩn mà trước đó chưa được phát hiện, tìm ra
những xu hướng phát triển và những yếu tố tác động lên chúng. Thực hiện
công việc đó chính là quá trình phát hiện tri thức trong cơ sở dữ liệu mà trong
đó kỹ thuật cho phép ta lấy được các tri thức chính ra từ kỹ thuật khai phá dữ
liệu.
Nếu quan niệm tri thức là mối quan hệ của các mẫu giữa các phần tử
dữ liệu thì quá trình phát hiện tri thức chỉ toàn bộ quá trình chiết xuất tri thức
từ cơ sở dữ liệu, trong đó trải qua nhiều giai đoạn khác nhau như: Tìm hiểu và

phát hiện vấn đề, thu thập và tiền xử lý dữ liệu, phát hiện tri thức, minh hoạ
và đánh giá tri thức đã phát hiện và đưa kết quả vào thực tế.
Khai phá dữ liệu có những điểm khác nhau về mặt ngữ nghĩa so với
phát hiện tri thức từ cơ sở dữ liệu nhưng thực tế ta thấy khai phá dữ liệu là
chỉ một giai đoạn phát hiện tri thức trong một chuỗi các giai đoạn quá trình
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
4
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
phát hiện tri thức trong cơ sở dữ liệu. Tuy nhiên đây là giai đoạn đóng vai
trò chủ chốt và là giai đoạn chính tạo nên tính đa ngành của phát hiện tri
thức trong cơ sở dữ liệu.
1.2. Quá trình phát hiện tri thức từ cơ sở dữ liệu
Phát hiện tri thức từ cơ sở dữ liệu là một quá trình có sử dụng nhiều
phương pháp và công cụ tin học nhưng vẫn là một quá trình mà trong đó con
người làm trung tâm. Do đó nó không phải là một hệ thống phân tích tự động
mà là một hệ thống bao gồm nhiều hoạt động tương tác thường xuyên giữa
con người và cơ sở dữ liệu, tất nhiên là với sự hỗ trợ của các công cụ tin học.
Hình 1.2. Quá trình phát hiện tri thức từ cơ sở dữ liệu
Mặc dù có 5 giai đoạn như trên(hình 1.1), song quá trình phát hiện tri
thức từ cơ sở dữ liệu là một quá trình tương tác và lặp đi lặp lại theo kiểu
xoắn trôn ốc, trong đó lần lặp sau hoàn chỉnh hơn lần lặp trước. Ngoài ra giai
đoạn sau lại dựa trên kết quả thu được của giai đoạn trước theo mô hình thác
nước. Đây là một quá trình biện chứng mang tính chất học của quá trình phát
hiện tri thức và là phương pháp luận trong việc phát hiện tri thức. Các giai
đoạn đó được trình bày cụ thể như sau:
1.2.1. Xác định bài toán
Đây là một quá trình mang tính định hình với mục đích xác định được
lĩnh vực yêu cầu phát hiện tri thức và xây dựng bài toán tổng kết. Trong thực
tế các cơ sở dữ liệu được chuyên môn hoá và phân chia theo các lĩnh vực
khác nhau như: Sản phẩm, kinh doanh, tài chính, Với mỗi tri thức phát hiện

được có thể có giá trị trong lĩnh vực này nhưng lại không mang nhiều ý nghĩa
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
5
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
với một lĩnh vực khác. Vì vậy việc xác định lĩnh vực và định nghĩa bài toán
giúp định hướng cho giai đoạn tiếp theo thu thập và tiền xử lý dữ liệu.
1.2.2. Thu thập và tiền xử lý dữ liệu
Các cơ sở dữ liệu thu được thường chứa rất nhiều thuộc tính nhưng lại
không đầy đủ, không thuần nhất, có nhiều lỗi và các giá trị đặc biệt. Vì vậy
giai đoạn thu thập và tiền xử lý dữ liệu trở nên rất quan trọng trong quá trình
phát hiện tri thức từ cơ sở dữ liệu. Có thể nói giai đoạn này chiếm từ 70%-
80% giá thành trong toàn bài toán.
Người ta chia giai đoạn tiền xử lý dữ liệu như sau: Gom dữ liệu, chọn
dữ liệu, làm sạch, mã hoá dữ liệu, làm giàu, đánh giá và trình diễn dữ liệu.
Các công đoạn này được thực hiện theo trình tự nhất định cụ thể như sau:
Hình 1.2.2. Quá trình phát hiện tri thức
1.2.2.1. Gom dữ liệu
Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu. Đây
là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí
các dữ liệu từ các nguồn ứng dụng Web.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
6
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
1.2.2.2. Chọn lọc dữ liệu
Ở giai đoạn này dữ liệu được lựa chọn hoặc phân chia theo một số tiêu
chuẩn nào đó. Đây là giai đoạn chọn lọc, trích rút các dữ liệu cần thiết từ cơ
sở dữ liệu tác nghiệp vào một cơ sở dữ liệu riêng. Chúng ta chọn ra những dữ
liệu cần thiết cho các giai đoạn sau. Tuy nhiên công việc thu gom dữ liệu vào
một cơ sở dữ liệu thường rất kho khăn vì dữ liệu nằm rải rác khắp nơi trong
cơ quan, tổ chức cùng một loại thông tin, nhưng được tạo lập theo các dạng

hình thức khác nhau. Ví dụ nơi này dùng kiểu chuỗi, nơi kia lại dùng kiểu số
để khai báo một thuộc tính nào đó của khách hàng. Đồng thời chất lượng dữ
liệu của các nơi cũng không giống nhau. Vì vậy chúng ta cần chọn lọc dữ liệu
thật tốt để chuyển sang giai đoạn tiếp theo.
1.2.2.3. Làm sạch
Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, 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à tính không đủ chặt chẻ, logíc. Vì vậy, dữ
liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu.
Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên.
Những dữ liệu dạng này được xem như 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 vì dữ liệu này nếu không được
“làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch
nghiệm trọng.
Giai đoạn này thực hiện một số chức năng sau:
- Điều hoà dữ liệu
- Xử lý các giá trị khuyết.
- Xử lý nhiễu và các ngoại lệ
1.2.2.4. Làm giàu dữ liệu
Mục đích của giai đoạn này là bổ sung thêm nhiều loại thông tin có
liên quan vào cơ sở dữ liệu gốc. Để làm được điều này, chúng ta phải có
các cơ sở dữ liệu khác ở bên ngoài có liên quan tới cơ sở dữ liệu gốc ban
đầu. Ta tiến hành bổ sung những thông tin cần thiết, làm tăng khả năng
khám phá tri thức.
Đây là bước mang tính tư duy trong khai phá dữ liệu.Ở 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 là nguyên tắc phân loại, nguyên tắc kết hợp
hoặc các mô hình dữ liệu tuần tự, v. v.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
7

Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Quá trình làm giàu bao gồm việc tích hợp và chuyển đổi dữ liệu.
Các dữ liệu từ nhiều nguồn khác nhau được tích hợp thành một kho thông
nhất. Các khuôn dạng khác nhau của dữ liệu cũng được quy đổi, tính toán
lại để đưa về một kiểu thống nhất, tiện cho quá trình phân tích.
1.2.2.5. Mã hoá dữ liệu
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa ra có thể sử
dụng và điều khiển được bởi việc tổ chức lại nó. Dữ liệu đã được chuyển đổi
phù hợp với mục đích khai thác. Mục đích của giai đoạn này là chuyển đổi
kiểu dữ liệu về những dạng thuật tiện để tiến hành các thuật toán khám phá dữ
liệu. Có nhiều cách mã hoá dữ liệu như:
- Phân vùng: Dữ liệu là giá trị chuỗi, nằm trong các tập các chuỗi cố đinh.
- Biến đổi giá trị năm thành con số nguyên là số năm đã trôi qua so với năm
hiện hành.
- Chia giá trị số theo một hệ số để tập các giá trị nằm trong vùng nhỏ hơn.
- Chuyển đổi Yes-No thành 0-1.
1.2.2.6. Đánh giá và trình diễn
Đây là giai đoạn cuối 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 bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch. Vì
vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức
cần chiết xuất ra.
Trên đây là 6 giai đoạn trong quá trình khai phá dữ liệu.
1.2.3. Khai phá dữ liệu và rút ra tri thức
Giai đoạn khai thác dữ liệu được bắt đầu sau khi dữ liệu đã được thu
thập và tiến hành xử lý. Trong giai đoạn này, công việc chủ yếu là xác định
được bài toán khai phá dữ liệu, tiến hành lựa chọn các phương pháp khai thác
phù hợp với dữ liệu có được và tách ta các tri thức cần thiết.
Là giai đoạn thiết yếu, trong đó các phương pháp thông minh sẽ được
áp dụng để trích xuất ra các mẩu dữ liệu.

1.2.4. Phát biểu và đánh giá kết quả
Các tri thức phát hiện từ cơ sở dữ liệu cần được tổng hợp dưới dạng các
báo cáo phục vụ cho các mục đích hỗ trợ các quyết định khác nhau.
Do nhiều phương pháp khai thác có thể được áp dụng nên các kết quả có
mức độ tốt, xấu khác nhau. Việc đánh giá các kết quả thu được là cần thiết, các
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
8
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
tri thức phát hiện từ cơ sở dữ liệu cần được tổng hợp dưới dạng các báo cáo phục
vụ cho các mục đích hỗ trợ các quyết định khác nhau.
Do nhiều phương pháp khai thác có thể được áp dụng nên các kết quả có
mức độ tốt, xấu khác nhau. Việc đánh giá các kết quả thu được là cần thiêt, giúp
tạo cơ sở cho những quyết định chiến lược. Thông thường, chúng được tổng
hợp, so sánh bằng các biểu đồ và được kiểm nghiệm, tin hoc.
1.2.5. Sử dụng tri thức đã phát hiện
Củng cố, tinh chế các tri thức đã được phát hiện. Kết hợp các tri thức
thành hệ thống. Giải quyết các xung đột tiềm tàng trong tri thức khai thác
được. Sau đó tri thức được chuẩn bị sẵn sàng cho ứng dụng.
Các kết quả của quá trình phát hiện tri thức có thể được đưa vào ứng
dụng trong những lĩnh vực khác nhau. Do các kết quả có thể là các dự báo
hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết
định nhằm tự động hoá quá trình này.
1.3. Khai phá dữ liệu
1.3.1. Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời vào những năn cuối của thập
kỷ 80. Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có
giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, khai
phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật
để tìm ra các mẫu hình có tính chính quy (regularities) trong tập dữ liệu.
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm

Phát hiện tri thức trong cơ sở dữ liệu (Kownledge Discovery in Database –
KDD) để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu
lớn. Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá trình,
sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu (pattern) (hay các mô
hình) từ dữ liệu.
1.3.2. Chức năng của khai phá dữ liệu
Rõ ràng rằng mục đích của khai phá dữ liệu là các tri thức chiết xuất
được sẽ được sử dụng cho lợi ích cạnh tranh trên thương trường và các lợi ích
trong nghiên cứu khoa học.
Do đó, ta có thể coi mục đích chính của khai thác dữ liệu sẽ là mô tả
và dự đoán. Các mẫu mà khai phá dữ liệu phát hiện được nhằm vào mục đích
này. Dự đoán liên quan đến việc sử dụng các biến hoặc các trường trong cơ sở
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
9
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
dữ liệu để chiết xuất ra các mẫu là các dự đoán những giá trị chưa biết hoặc
những giá trị trong tương lai của các biến đáng quan tâm.
Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể
hiểu được. Để đạt được hai mục đích này, chức năng chính của khai phá dữ
liệu là:
- Phân lớp (Classification).
- Hồi qui (Regression).
- Gom nhóm (Clustering).
- Tổng hợp (Summarization).
- Mô hình ràng buộc (Dependency modeling).
- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection).
1.3.2.1. Phân lớp (Classification)
Phân lớp là việc phân loại một mẫu dữ liệu vào một trong số các lớp
đã xác định.
Mục tiêu của thuật toán phân lớp là tìm ra các mối quan hệ nào đó

giữa các thuộc tính dự báo và thuộc tính phân lớp, từ đó sử dụng mối quan hệ
này để dự báo lớp cho các bộ dữ liệu mới khác cùng khuông dạng.
1.3.2.2. Hồi quy (Regression)
Hồi quy là việc l ọc một hàm ánh xạ từ một mẫu dữ liệu thành một
biến dự đoán có giá trị thực. Có rất nhiều ứng dụng khai phá dữ liệu với
nhiệm vụ hồi quy, ví dụ như biết các phép đo vi sóng từ xa, đánh giá khả năng
tử vong của bệnh nhân biết các kết quả xét nghiệm chẩn đoán, dự đoán nhu
cầu tiêu thụ một sản phẩm mới bằng một hàm chỉ tiêu quảng cáo,
1.3.2.3. Gom nhóm (Clustering)
Là việc mô tả chung để tìm ra các tập xác định các nhóm hay các loại để
mô tả dữ liệu. Các nhóm có thể tách riêng nhau hoặc phân cấp hoặc gối lên
nhau. Có nghĩa là một dữ liệu có thể vừa thuộc nhóm này, vừa thuộc nhóm kia.
Các ứng dụng khai phá dữ liệu có nhiệm vụ gom nhóm như: Phát hiện tập các
khách hàng có phản ứng giống nhau trong cơ sở dữ liệu tiếp thị, xác định các
loại quang phổ từ các phương pháp đo tia hồng ngoại.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
10
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
1.3.2.4. Tổng hợp (Summarization)
Nhiệm vụ tổng hợp là việc sản sinh ra các mô tả đặc trưng cho một
lớp. Các mô tả này là một kiểu tổng hợp, tóm tắt mô tả các đặc tính chung của
tất cả các bộ dữ liệu dạng giỏ mua hàng thuộc một lớp.
Các mô tả đặc trưng thể hiện dưới dạng các luật thường có khuôn
dạng: “Nếu một bộ dữ liệu thuộc về một lớp đã chỉ ra trong tiền đề, thì bộ dữ
liệu đó có tất cả các thuộc tính đã nêu trong kết luận”. Những luật này có
những đặc trưng khác biệt so với các luật phân lớp. Luật phát hiện đặc trưng
cho một lớp chỉ được sản sinh khi các bộ dữ liệu thuộc về lớp đó.
1.3.2.5. Mô hình ràng buộc (Dependency modeling)
Bao gồm việc tìm kiếm một mô hình mô tả sự phụ thuộc đáng kể giữa
các biến. Các mô hình phụ thuộc tồn tại dưới hai mức: Mức cấu trúc của mô

hình xác định các biến nào là phụ thuộc cục bộ với nhau, mức định lượng của
một mô hình xác định độ mạnh của sự phụ thuộc theo một thước đo nào đó.
1.3.2.6. Dò tìm biến đổi và độ lệch (Change and Deviation Dectection)
Tập trung vào khai thác những thay đổi đáng kể nhất trong dữ liệu từ
các giá trị chuẩn hoặc được đo trước đó. Vì các nhiệm vụ khác nhau này yêu
cầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnh
hưởng đến việc thiết kế và chọn giải thuật khai phá dữ liệu khác nhau.
1.3.3. Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực liên quan tới nhiều ngành học
khác như: Hệ CSDL, thống kê, trực quan hoá.v.v. Hơn nữa, tuỳ vào cách tiếp
cận được sử dụng, khai phá dữ liệu còn có thể áp dụng một số kỹ thuật như
mạng nơron, lý thuyết tập thô, tập mờ, biểu diễn tri thức, v.v.So với các
phương pháp này, khai phá dữ liệu có một số ưu thế rõ rệt.
So với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ,
khai phá dữ liệu có thể sử dụng với các CSDL chứa nhiều nhiễu, dữ liệu
không đầy đủ hoặc biến đổi liên tục. Trong khi đó phương pháp học máy chủ
yếu được áp dụng trong các CSDL đầy đủ, ít biến động và tập dữ liệu không
qua lớn.
Phương pháp hệ chuyên gia: Phương pháp này khác với khai phá
dữ liệu ở chỗ các ví dụ của chuyên gia thường ở mức cao hơn nhiều so với
các dữ liệu trong CSDL, và chúng thường chỉ bao hàm được các trường hợp
quan trọng. Hơn nữa các chuyên gia sẽ xác nhận giá trị và tính hữu ích của
các mẫu phát hiện được.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
11
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Phương pháp thống kê là một trong những nên tảng lý thuyết của
khai phá dữ liệu, nhưng khi so sánh hai phương pháp với nhau ta có thể thấy
các phương pháp thống kê còn tồn tại một số điểm yếu mà khai phá dữ liệu
khắc phục được.

Các phương pháp thống kê chuẩn không phù hợp với các kiểu dữ
liệu có cấu trúc trong rất nhiều CSDL.
Các phương pháp thống kê hoạt động hoàn toàn theo dữ liệu, nó
không sử dụng tri thức có sẵn về lĩnh vực.
Kết quả phân tích của hệ thống sẽ rất nhiều và khó có thể làm rõ ra
được.
Phương pháp thống kê cần có sự hướng dẫn của người dùng để xác
định phân tích dữ liệu như thế nào và ở đâu.
Với nhưng ưu điểm đó, khai phá dữ liệu hiện đang được áp dụng một
cách rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau như:
Marketing, tài chính, ngân hàng và bảo hiểm, khoa học, y tế, an ninh,
internet…rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật
khai phá dữ liệu vào các hoạt động sản xuất kinh doanh của mình và thu được
những lợi ích to lớn.
Một số ứng dụng của khai phá dữ liệu trong lĩnh vực kinh doanh:
Brandaid: Mô hình Marketing linh hoạt tập chung vào hàng tiêu dùng.
Callpla: Giúp nhân viên bán hàng xác định số lần viếng thăm của
khách hàng triển vọng và khách hàng hiện có.
Detailer: Xác định khách hàng nào nên viếng thăm và sản phẩm nào
nên giới thiệu trong từng chuyến viếng thăm.
Geoline: Mô hình thiết kế địa bàn tiêu thụ và dịch vụ.
Mediac: Giúp người quảng cáo mua phương tiện trong một năm, lập kế
hoạch sử dụng phương tiện bao gồm phác hoạ khúc thị trường, ước tính
tiềm năng.
1.3.4. Một số kỹ thuật khai phá dữ liệu
1.3.4.1. Phương pháp quy nạp (Induction)
Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọng hơn
cũng có thể được suy diễn từ kho thông tin đó. Có hai kỹ thuật chính để thực
hiện việc này là suy diễn và quy nạp.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang

12
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
• Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các
thông tin trong cơ sở dữ liệu. Phương pháp suy diễn dựa trên các sự kiện
chính xác để suy ra các tri thức mới từ các thông tin cũ. Mẫu chiết xuất được
bằng cách sử dụng phương pháp này thường là các luật suy diễn.
• Phương pháp quy nạp: .Phương pháp quy nạp suy ra các thông tin được
sinh ra từ cơ sở dữ liệu. Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức
chứ không phải bắt đầu với các tri thức đã biết trước. Trong khai phá dữ liệu,
quy nạp được sử dụng trong cây quyết định và tạo luật.
1.3.4.2. Cây quyết định và luật
• Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản
nhằm phân các đối tượng dữ liệu thành một số lớp nhất định. Các nút của cây
được gán nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của
các thuộc tính, các lá mô tả các lớp khác nhau. Các đối tượng được phân lớp
theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị, thuộc tính
của đối tượng tới lá.
• Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý
nghĩa về mặt thống kê. Các luật có dạng Nếu P thì Q, với P là mệnh đề đúng
với một phần trong CSDL, Q là mệnh đề dự đoán.
Cây quyết định và luật có ưu điểm là hình thức mô tả đơn giản, mô hình suy
diễn khá dễ hiểu đối với người sử dụng. Tuy nhiên, giới hạn của nó là mô tả
cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới
hạn về cả độ chính xác của mô hình.
1.3.4.3. Phát hiện các luật kết hợp
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành
phần dữ liệu trong cơ sở dữ liệu. Mẫu đầu ra của giải thuật khai phá dữ liệu là
tập luật kết hợp tìm được. Việc phát triển một thuật toán để phát hiện luật này
trong cơ sở dữ liệu lớn là không khó. Tuy nhiên, vấn đề là ở chỗ có thể có rất
nhiều luật kiểu này hoặc là ta chỉ biết một tập nhỏ dữ liệu trong cơ sở dữ liệu

lớn thoả mãn tiền đề của luật.
Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các
luật dạng X => B sao cho tần số của luật không nhỏ hơn ngưỡng Minsup cho
trước và độ tin cậy của luật không nhỏ hơn ngưỡng Minconfi cho trước. Từ
một cơ sở dữ liệu ta có thể tìm được hàng nghìn và thậm chí hàng trăm nghìn
các luật kết hợp.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
13
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
1.3.4.4. Mạng Neuron
Mạng Neuron là tiếp cận tính toán mới liên quan tới việc phát triển
cấu trúc toán học và khả năng học. Các phương pháp là kết quả của việc
nghiên cứu mô hình học của hệ thống thần kinh con người.
Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến
mạng Neuron. Tuy mạng Neuron có một số hạn chế gây khó khăn trong việc
áp dụng và phát triển nhưng nó cũng có những ưu điểm đáng kể.
Hình 1.4.Thể hiện sơ đồ khai phá dữ liệu bằng mạng Neunon.
1.3.4.5. Giải thuật di truyền
Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống
tiến hóa trong tự nhiên, chính xác hơn đó là giải thuật chỉ ra tập các cá thể
được hình thành, được ước lựợng và biến đổi như thế nào? Ví dụ như xác
định xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể
nào sẽ bị loại bỏ. Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể
sinh học trên máy tính để có thể giải quyết nhiều bài toán thực tế khác nhau.
Giải thuật di truyền là một giải thuật tối ưu hóa. Nó được sử dụng
rất rộng rãi trong việc tối ưu hóa các kỹ thuật khai phá dữ liệu trong đó có kỹ
thuật mạng Neuron. Ví dụ như trong kỹ thuật cây quyết định, tạo luật. Như đã
đề cập ở phần trước, các luật mô hình hóa dữ liệu chứa các tham số được xác
định bởi các giải thuật phát hiện tri thức.
Giai đoạn tối ưu hóa là cần thiết để xác định xem các giá trị tham

số nào tạo ra các luật tốt nhất. Và vì vậy mà giải thuật di truyền đã được sử
dụng trong các công cụ khai phá dữ liệu.
1.3.5. Các dạng dữ liệu có thể khai phá được
− CSDL quan hệ
− CSDL đa chiều
− CSDL giao dịch
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
14
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
− CSDL quan hệ - đối tượng
− CSDL không gian và thời gian
− CSDL đa phương tiện.
1.3.6. Một vài thách thức đặt ra trong việc khai phá dữ liệu
− Các cơ sở dữ liệu lớn.
− Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện
không còn phù hợp nữa.
− Dữ liệu bị thiếu hoặc nhiễu.
− Quan hệ giữa các trường phức tạp.
− Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
− Tích hợp với các hệ thống khác…
1.3.7. Hướng phát triển của khám phá tri thức và khai phá dữ liệu
Hướng phát triển của khám phá tri thức và khai phá dữ liệu là vượt qua
được tất cả những thách thức trên, chú trọng vào việc mở rộng ứng dụng để
đáp ứng cho mọi lĩnh vực trong đời sống xã hội, và tăng tính hữu ích của việc
khai phá dữ liệu trong những lĩnh vực đã có khai phá dữ liệu.
Tạo ra các phương pháp khai phá dữ liệu linh động, uyển chuyển để xử lý
số lượng dữ liệu lớn một cách hiệu quả.
Tạo ra tương tác người sử dụng tốt, giúp người sử dụng tham gia điều
khiển quá trình khai phá dữ liệu, định hướng hệ thống khai phá dữ liệu trong
việc phát hiện các mẫu đáng quan tâm.

Tích hợp khai phá dữ liệu vào trong các hệ cơ sở dữ liệu. Ứng dụng khai
phá dữ liệu để khai phá dữ liệu web trực tuyến. Một vấn đề quan trọng trong
việc phát triển khám phá tri thức và khai phá dữ liệu đó là vấn đề an toàn và
bảo mật thông tin trong khai phá dữ liệu.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
15
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Chương 2
CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU
DÙNG CÂY QUYẾT ĐỊNH
2.1. Cây quyết định
2.1.1. Khái niệm cây quyết định
Trong lý thuyết quyết định (chẳng hạn quản lí rủi ro), một cây quyết định
(tiếng Anh: decision tree) là một đồ thị của các quyết định và các hậu quả có
thể của nó (bao gồm rủi ro và hao phí tài nguyên). Cây quyết định được sử
dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn. Các
cây quyết định được dùng để hỗ trợ quá trình ra quyết định. Cây quyết định là
một dạng đặc biệt của cấu trúc cây.
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 một 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 một 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ị 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
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
16
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
đị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.

Ví dụ: Cây quyết định phân lớp mức lương
Học bằng cây quyết định cũng là một phương pháp thông dụng trong
khai phá dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các
lá đại diện cho các phân loại còn cành đại diện cho các kết hợp của các thuộc
tính dẫn tới phân loại đó. Một cây quyết định có thể được học bằng cách chia
tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính . Quá
trình này được lặp lại một cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ
qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, hay
khi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất.
Một bộ phân loại rừng ngẫu nhiên (random forest) sử dụng một số cây quyết
định để có thể cải thiện tỉ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính
toán các xác suất có điều kiện.
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:
1 2 3
( , ) ( , , , , , )
k
x y x x x x y
=
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.
1 2 3
, , x x x
là các biến sẽ giúp ta thực hiện công
việc đó.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
Age?

≤ 35
salary
> 35
salary
≤ 40 >40
bad good
≤50 >50
bad good
17
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Có thể mô tả cây quyết định là một cấu trúc phân cấp của các nút và
các nhánh, bao gồm :
- 3 loại nút trên cây: Nút gốc; Nút nội bộ: mang tên thuộc tính của
CSDL; Nút lá: mang tên lớp Ci;
- Nhánh: mang giá trị có thể của thuộc tính.
Cây quyết định được sử dụng trong phân lớp bằng cách duyệt từ nút
gốc của cây cho đến khi đụng đến nút lá, từ đó rút ra lớp của đối tượng cần
xét.
2.1.2. Các kiểu cây quyết định
Cây quyết định còn có hai tên khác:
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 giá
một ngôi nhà hoặc khoảng thời gian một bệnh nhân nằm viện)
Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới
tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
2.1.3. Ư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 như sau:
- 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ê.
2.1.4. Giải quyết 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:
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
18
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Giai đoạn 1: 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.
Giai đoạn 2: 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á.
Giai đoạn 3: Đá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 vào.
2.1.5. 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
2.2. Các 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.
Nó gồm các bước sau:
Bước 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.
Bước 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á.
Bước 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á.
Bước 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ị v
1
,v
2
, …v
n
.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
19
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
+ 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.

+ Tạo n nút con T
i
(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 T
i
(i=1,2…n) là các thuộc tính
của X.
Bước 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ỳ ý. 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.
2.2.2. Thuật toán ID3
Thuật toán ID3 được phát biểu bởi Quinlan (Sinh viên 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).
2.2.2.1. Entropy: 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 sau:
+ -
2 2
Entropy(S)= - P log ( ) P log ( )P P
+ −



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 ( ))
i
P


Trong đó P
i
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:
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
20
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
- Nếu tất cả các mẫu thành viên trong tập S đều thuộc 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
2.2.2.2. 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. Đạ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 A
i
(i=1,2…n) giá trị
Information của thuộc tính A
i
ký hiệu là Information(A
i
) được xác định
bởi công thức

n
i 2
i=1
Information(A ) = - log ( ) Entropy(S)
i
p =


- 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

=


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.
 S
v
bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.
 |S
v
| là số phần tử của tập S
v
.
 |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.
2.2.2.3. Hàm xây dựng cây quyết định trong thuật toán ID3
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then
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
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
21

Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
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.
2.2.3. Thuật toán C4.5
Thuật toán C4.5 được phát triển và công bố bởi Quinlan vào năm
1996. Thuật toán C4.5 là một thuật toán được cải tiến từ thuật toán ID3 với
việc cho phép xử lý trên tập dữ liệu có các thuộc tính số (numeric atributes)

và và làm việc được với tập dữ liệu bị thiếu và bị nhiễu. Nó thực hiện phân
lớp tập mẫu dữ liệu theo chiến lược ưu tiên theo chiều sâu (Depth - First).
Thuật toán xét tất cả các phép thử có thể để phân chia tập dữ liệu đã cho và
chọn ra một phép thử có giá trị GainRatio tốt nhất. GainRatio là một đại
lượng để đánh giá độ hiệu quả của thuộc tính dùng để thực hiện phép tách
trong thuật toán để phát triển cây quyết định.
GainRatio được tính dựa trên kết quả tính toán đại lượng Information
Gain theo công thức sau:
( , )
( , )
(X,T)
Gain X T
GainRation X T
SplitInfo
=

HVTH: Phạm Ngọc Giàu – CH1101080 Trang
22
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
Với:
i i
2
i Value(X)
|T | |T |
info(X,T) = - log
| | | |
Split
T T



Trong đó:
Value(X) là tập các giá trị của thuộc tính X
T
i
là tập con của tập T ứng với thuộc tính X = giá trị là v
i
.
Đối với các thuộc tính liên tục, chúng ta tiến hành phép thử nhị phân
cho mọi giá trị của thuộc tính đó. Để thu thập được giá trị Entropy gain của
tất cả các phép thử nhị phân một cách hữu hiệu ta tiến hành xắp xếp các dữ
liệu theo giá trị của thuộc tính liên tục đó bằng thuật toán Quicksort.
2.2.3.1. Thuật toán xây dựng cây quyết định C4.5
Mô tả thuật toán dưới dạng giả mã như sau:
Function xay_dung_cay(T){
<Tính toán tần xuất các giá trị trong các lớp của T>;
If <Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít mẫu khác
lớp>Then <Trả về 1 nút lá>
Else <Tạo một nút quyết định N>;
For <Với mỗi thuộc tính A> Do <Tính giá trị Gain(A)>;
<Tại nút N, thực hiện việc kiểm tra để chọn ra thuộc tính có giá trị Gain
tốt nhất (lớn nhất). Gọi N.test là thuộc tính có Gain lớn nhất>;
If <Nếu N.test là thuộc tính liên tục> Then
<Tìm ngưỡng cho phép tách của N.test>;
For <Với mỗi tập con T` được tách ra từ tập T> Do
( T` được tách ra theo quy tắc:
- Nếu N.test là thuộc tính liên tục tách theo ngưỡng ở bước 5
- Nếu N.test là thuộc tính phân loại rời rạc tách theo các giá trị
của thuộc tính này. )
If <Kiểm tra, nếu T' rỗng>} Then
HVTH: Phạm Ngọc Giàu – CH1101080 Trang

23
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
<Gán nút con này của nút N là nút lá>;
Else
<Gán nút con này là nút được trả về bằng cách gọi đệ qui lại đối
với hàm xay_dung_cay(T'), với tập T'>;
}
<Tính toán các lỗi của nút N>;
<Trả về nút N>;
}
Một số công thức được sử dụng:
n
i
x i
i=1
T
Info (T)=- *Info(T )
T

X
( ) Info(T)-Info ( )Gain X T=
(*)
Công thức (*) được sử dụng làm tiêu chuẩn để lựa chọn thuộc tính khi
phân lớp. Thuộc tính được chọn là thuộc tính có giá trị Gain tính theo (*) đạt
giá trị lớn nhất.
2.2.3.2. Một số cải tiến của thuật toán C4.5:
2.2.3.2.1 Làm việc với thuộc tính đa trị
Tiêu chuẩn (*) có một khuyết điểm là không chấp nhận các thuộc
tính đa trị. Vì vậy thuật toán C4.5 đã đưa ra các đại lượng GainRatio và
SplitInfo (SplitInformation), chúng được xác định theo các công thức sau:

( , )
j
freq C T
P
S
=
n
i
2
i=1
T
Info (X) =- log
T
i
T
Split
T
 
 ÷
 

(**)
( )
( )
Info(X)
Gain X
GainRatio X
Split
=
(***)

Giá trị SplitInfo là đại lượng đánh giá thông tin tiềm năng thu thập
được khi phân chia tập T thành n tập hợp con.
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
24
Thu hoạch Môn Công nghệ tri thức và ứng dụng GVHD: GS. TS Hoàng Văn Kiếm
GainRatio là tiêu chuẩn để đánh giá việc lựa chọn thuộc tính phân loại.
2.2.3.2.2 Làm việc với dữ liệu bị thiếu
Thuật toán vừa xây dựng dựa vào giả thuyết tất cả các mẫu dữ liệu có
đủ các thuộc tính. Nhưng trong thực tế, xẩy ra hiện tượng dữ liệu bị thiếu, tức
là ở một số mẫu dữ liệu có những thuộc tính không được xác định,hoặc mâu
thuẫn, hoặc không bình thường. Ta xem xét kỹ hơn với trường hợp dữ liệu bị
thiếu. Đơn giản nhất là không đưa các mẫu với các giá trị bị thiếu vào, nếu
làm như vậy thì có thể dẫn đến tình trạng thiếu các mẫu học. Giả sử T là một
tập hợp gồm các mẫu cần được phân loại, X là phép kiểm tra theo thuộc tính
L, U là số lượng các giá trị bị thiếu của thuộc tính L. Khi đó ta có:
k
j
2
j=1
freq(C ,T) ( , )
Info(T) = - *log
|T|-U | |
j
freq C T
T U
 
 ÷

 


n
x 2
j=1
|T|
Info (T) = - *log ( )
|T|-U
i
T

Trong trường hợp này, khi tính tần số freq (C
i
, T) ta chỉ tính riêng các
mẫu với giá trị trên thuộc tính L đã xác định. Khi đó tiêu chuẩn (*) được viết
lại bằng công thức sau:
x
| |
( ) (Info(T)-Info ( ))
| |
T U
Gain X T
T

=
(****)
Tương tự thay đổi tiêu chuẩn (****). Nếu phép kiểm tra có N giá trị đầu
vào thì tiêu chuẩn (****) được tính như trong trường hợp chia N tập hợp ban
đầu thành (N+1) tập hợp con.
Giả sử phép thử X có các giá trị O
1
,O

2
,….O
n
được lựa chọn theo tiểu
chuẩn (****), ta cần xử lý như thế nào với các dữ liệu bị thiếu. Giả sử mẫu từ
tập hợp T với đầu ra là Oi có liên quan đến tập hợp Ti thì khả năng mẫu đó
thuộc tập hợp Ti là 1.
Giả sử mỗi mẫu trong T
i
có một chỉ số xác định xác suất thuộc tập hợp
T
i
. Nếu mẫu có giá trị thuộc tính L thì có trọng số bằng 1. Nếu trong trường
hợp ngược lại, thì mẫu này liên quan đến tập con T
1
,T
2
,…T
n
với xác xuất
tương ứng là :
1 2
, , ,
| | | | | |
n
T T T
T U T U T U− − −
HVTH: Phạm Ngọc Giàu – CH1101080 Trang
25

×