Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CNTT
BÁO CÁO THỰC TẬP
Đề tài: “Tìm hiểu khai phá dữ liệu bằng cây quyết định”
GV hướng dẫn : NGUYỄN QUỲNH CHI
Tên Sinh Viên : NGUYỄN ĐỨC TÙNG
NGUYỄN CÔNG TOAN
ĐỒNG THỊ YẾN
Lớp : L10CQCN7-B
Nhóm SV Lớp: L10CQCN7-B
1
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
Lời mở đầu
Trong những năm gần đây, việc nắm bắt được thông tin được coi là chìa
khóa của kinh doanh. Ai thu thập, phân tích và hiểu được thông tin và hành động
được nhờ vào những thông tin đó là kẻ thắng cuộc trong thời đại thông tin này.
Chính vì vậy, việc tạo ra thông tin và mức tiêu thụ thông tin ngày nay ngày càng
gia tăng.
Cúng với chức năng khai thác có tính chất tác nghiệp, việc khai thác các cơ
sở dữ liệu (CSDL) phục vụ các yêu cầu trợ giúp quyết định ngày càng có ý nghĩa
quan trọng và là nhu cầu to lớn trong mọi lĩnh vực hoạt động kinh doanh, quản lý.
Dữ liệu được thu thập và lưu trữ ngày càng nhiều nhưng người ra quyết định trong
quản lý, kinh doanh lại cần những thông tin bổ ích, những “tri thức” rút ra từ nguồn
dữ liệu đó hơn là chính những dữ liệu đó cho việc ra quyết định của mình.
Các nhu cầu đó đã được biết đến từ lâu nhưng mới thực sự bùng nổ từ thập
niên 90 này. Do đó, những năm gần đây đã phát triển mạnh mẽ một loạt các lĩnh
vực nghiên cứu về tổ chức các kho dữ liệu và kho thông tin (data warehouse,
information warehouse), các hệ trợ giúp quyết định, các phương pháp phát hiện tri
thức và khai phá dữ liệu (data mining). Trong đó, khai phá dữ liệu và phát hiện tri
thức đã trở thành một lĩnh vực nghiên cứu sôi động, thu hút sự quan tâm của rất
nhiều người trên khắp các lĩnh vực khác nhau như các hệ cơ sở dữ liệu, thống kê,
chiết xuất thông tin, nhận dạng, học máy, trí tuệ nhân tạo, v.v. Trong phạm vi đề tài
báo cáo này, chúng em sẽ trình bày những nội dung sau:
Chương I. Tổng quan về CSDL và sự xuất hiện của khai phá dữ liệu
Chương II. Khai phá dữ liệu
Chương III.Khai phá dữ liệu bằng cây quyết định
Chương IV. Demo bằng Công cụ WEKA
Nhóm SV Lớp: L10CQCN7-B
2
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
CHƯƠNG 1. TỔNG QUAN VỀ CSDL VÀ SỰ XUẤT HIỆN
KHAI PHÁ DỮ LIỆU
1.1. Tổ chức và khai thác CSDL truyền thống
Việc dùng các phương tiện tin học để tổ chức và khai thác các cơ sở dữ liệu
đã được phát triển từ những năm 60. Từ đó cho đến nay, rất nhiều cơ sở dữ liệu đã
được tổ chức, phát triển và khai thác ở mọi quy mô và ở khắp các lỹnh vực hoạt
động của con người và xã hội. Theo như đánh giá cho thấy, lượng thông tin trên thế
giới cứ sau 20 tháng lại tăng gấp đôi. Kích thước và số lượng cơ sở dữ liệu thậm
chí còn tăng nhanh hơn. Năm 1989, tổng số cơ sở dữ liệu trên thế giới vào khoảng
5 triệu, hầu hết đều là các cơ sở dữ liệu cỡ nhỏ được phát triển trên DBaseIII. Với
sự phát triển mạnh mẽ của công nghệ điện tử tạo ra các 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, người ta đã xây dựng
các hệ thống thông tin nhằm tự động hóa mọi hoạt động kinh doanh của mình. Đ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 gọi điện thoại, kiểm tra sức khỏe, sử dụng thẻ tín dụng,
v.v… đều được ghi vào trong máy tính. Cho đến nay, con số ày đã trở nên khổng
lồ, bao gồm các cơ sở dữ liệu cực lớn cỡ gigabytes và thậm chí terabytes lưu trữ
các dữ liệu kinh doanh, ví dụ như dữ liệu thông tin khách hàng, dữ liệu lịch sử các
giao dịch, dữ liệu bán hàng, dữ liệu các tài khoản, các khoản vay, sử dụng vốn, …
Nhiều hệ quản trị cơ sở dữ liệu mạnh với các công cụ phong phú và thuận tiện đã
giúp con người khai thác có hiệu quả các nguồn tài nguyên dữ liệu. Mô hình cơ sở
dữ liệu quan hệ và ngôn ngữ vấn đáp chuẩn (SQL) đã có vai trò hết sức quan trọng
trong việc tổ chức và khai thác các cơ sở dữ liệu đó. Cho đến nay, không một tổ
chức kinh tế nào là không sử dụng các hệ quản trị cơ sở dữ liệu và các hệ công cụ
báo cáo, ngôn ngữ hỏi đáp nhằm khai thác các cơ sở dữ liệu phục vụ cho hoạt động
tác nghiệp của mình.
1.2. Bước phát triển mới của việc tổ chức và khai thác các CSDL
Cùng với việc tăng không ngừng khối lượng dữ liệu, các hệ thống thông tin
cũng được chuyên môn hóa, phân chia theo các lỹnh vực ứng dụng như sản xuất,
tài chính, buôn bán thị trường v.v. Như vậy, bên cạnh chức năng khai thác dữ liệu
có tính chất tác nghiệp, sự thành công trong kinh doanh không còn là năng suất của
Nhóm SV Lớp: L10CQCN7-B
3
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
các hệ thống thông tin nữa mà là tính linh hoạt và sẵn sàng đáp lại những yêu cầu
trong thực tế, CSDL cần đem lại những “tri thức” hơn là chính những dữ liệu đó.
Các quyết định cần phải có càng nhanh càng tốt và phải chính xác dựa trên những
dữ liệu sẵn có trong khi khối lượng dữ liệu cứ sau 20 tháng lại tăng gấp đôi làm ảnh
hưởng đến thời gian ra quyết định cũng như khả năng hiểu hết được nội dung dữ
liệu. Lúc này các mô hình CSDL truyền thống và ngôn ngữ SQL đã cho thấy không
có khả năng thực hiện công việc này. Để lấy được những thông tin có tính “tri
thức” trong khối dữ liệu khổng lồ này, người ta đã đi tìm những kỹ thuật có khả
năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi thành
một tập hợp các cơ sở dữ liệu ổn định, có chất lượng, chỉ được sử dụng riêng cho
một vài mục đích nào đó. Các kỹ thuật đó được gọi chung là kỹ thuật tạo kho dữ
liệu (data warehousing) và môi trường các dữ liệu có được gọi là các kho dữ liệu
(data warehouse).
Kho dữ liệu là một môi trường có cấu trúc các hệ thống thông tin, cung cấp
cho người dùng các thông tin khó có thể truy nhập hoặc biểu diễn trong các CSDL
tác nghiệp truyền thống, nhằm mục đích hỗ trợ việc ra quyết định mang tính lịch sử
hoặc hiện tại. Theo W.H.Inmon, có thể định nghỹa kho dữ liệu như sau: “Một kho
dữ liệu là một tập hợp dữ liệu tích hợp hướng chủ đề có tính ổn định, thay đổi theo
thời gian nhằm hỗ trợ cho việc ra quyết định. Nói cách khác, một kho dữ liệu bao
gồm:
- Một hoặc nhiều công cụ để chiết xuất dữ liệu từ bất kỳ dạng cấu trúc
dữ liệu nào.
- Cơ sở dữ liệu tích hợp hướng chủ đề ổn định được tổng hợp từ các dữ
liệu bằng cách lập bảng dữ liệu của dữ liệu.”
Một kho dữ liệu có thể được coi là một hệ thống thông tin với những thuộc
tính sau:
- Là một cơ sở dữ liệu được thiết kế có nhiệm vụ phân tích, sử dụng các
dữ liệu từ các ứng dụng khác nhau.
- Hỗ trợ cho một số người dùng có liên quan với các thông tin liên quan.
- Là dữ liệu chỉ đọc.
- Nội dung của nó được cập nhật thường xuyên theo cách thêm thông
tin.
Nhóm SV Lớp: L10CQCN7-B
4
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
- Chứa các dữ liệu lịch sử và hiện tại để cung cấp các xu hướng thông
tin.
- Chứa các bảng dữ liệu có kích thước lớn.
Cấu trúc kho dữ liệu được xây dựng dựa trên hệ quản trị CSDL quan hệ, có
chức năng giống như một kho lưu trữ thông tin trung tâm. Trong đó, dữ liệu tác
nghiệp và phần xử lý được tách riêng khỏi quá trình xử lý kho dữ liệu. Kho lưu trữ
trung tâm được bao quanh bởi các thành phần được thiết kế để làm cho kho dữ liệu
có thể hoạt động, quản lý và truy nhập được từ người dùng đầu cuối cũng như từ
các nguồn dữ liệu.
Nhưng chỉ có kho dữ liệu thôi thì chưa đủ để có các tri thức. Như đã đề cập ở
trên, các kho dữ liệu được sử dụng theo ba cách chính:
- Theo cách khai thác truyền thống, kho dữ liệu được sử dụng để
khai thác các thông tin bằng các công cụ vấn đáp và báo cáo.
Tuy nhiên, nhờ có việc chiết xuất, tổng hợp và chuyển đổi từ
các dữ liệu thô sang dạng các dữ liệu chất lượng cao và có tính
ổn định, kho dữ liệu đã giúp cho việc nâng cao các kỹ thuật biểu
diễn thông tin truyền thống (hỏi đáp và báo cáo).
- Thứ hai là các kho dữ liệu được sử dụng để hỗ trợ cho phân tích trực
tuyến (OLAP). Trong khi ngôn ngữ vấn đáp chuẩn SQL và các công cụ làm
báo cáo truyền thống chỉ có thể mô tả những gì có trong CSDL thì phân tích
trực tuyến có khả năng phân tích dữ liệu, xác định xem giả thuyết đúng hay
sai. Tuy nhiên, phân tích trực tuyến lại không có khả năng đưa ra được các
giả thuyết.
Hơn nữa, do kích thước quá lớn và tính chất phức tạp của kho dữ liệu làm
cho nó rất khó có thể được sử dụng cho những mục đích như đưa ra các giả thuyết
từ các thông tin mà chương trình ứng dụng cung cấp (ví dụ như khó có thể đưa ra
được giả thuyết giải thích được hành vi của một nhóm khách hàng).
Trước đây, kỹ thuật học máy thường được sử dụng để tìm ra những giả
thuyết từ các thông tin dữ liệu thu thập được. Tuy nhiên, thực nghiệm cho thấy
chúng thể hiện khả năng rất kém khi áp dụng với các tập dữ liệu lớn trong kho dữ
liệu này. Phương pháp thống kê tuy ra đời đã lâu nhưng không có gì cải tiến để phù
hợp với sự phát triển của dữ liệu. Đây chính là lý do tại sao một khối lượng lớn dữ
Nhóm SV Lớp: L10CQCN7-B
5
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
liệu vẫn chưa được khai thác và thậm chí được lưu trữ chủ yếu trong các kho dữ
liệu không trực tuyến (off-line). Điều này tạo nên một lỗ hổng lớn trong việc hỗ trợ
phân tích và tìm hiểu dữ liệu, tạo ra khoảng cách giữa việc tạo ra dữ liệu và việc
khai thác các dữ liệu đó.Trong khi đó, càng ngày người ta càng nhận thấy rằng, nếu
được phân tích thông minh thì dữ liệu sẽ là một nguồn tài nguyên quý giá trong
cạnh tranh trên thương trường.
Giới tin học đã đáp ứng lại những thách thức trong thực tiễn cũng như trong
nghiên cứu khoa học bằng cách đã đưa ra một phương pháp mới đáp ứng cả nhu
cầu trong khoa học cũng như trong hoạt động thực tiễn. Đó chính là công nghệ
Khai phá dữ liệu (data mining). Đây chính là ứng dụng thứ ba của kho dữ liệu.
1.3. Quá trình 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 một cách có hiệu quả. Điều đó có nghĩa là từ các 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, 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à thực hiện quá trình phát hiện tri thức trong cơ sở dữ liệu
(Knowledge Discovery in Database – KDD) mà trong đó kỹ thuật cho phép ta lấy
được các tri thức chính là kỹ thuật khai phá dữ liệu (data mining).
Như John Naisbett đã nói “Chúng ta đang chìm ngập trong dữ liệu mà vẫn
đói tri thức”. Dữ liệu thường được cho bởi các giá trị mô tả các sự kiện, hiện tượng
cụ thể. Còn tri thức (knowledge) là gì? Có thể có những định nghỹa rõ ràng để phân
biệt các khái niệm dữ liệu, thông tin và tri thức hay không? Khó mà định nghỹa
chính xác nhưng phân biệt chúng trong những ngữ cảnh nhất định là rất cần thiết và
có thể làm được. Thông tin là một khái niệm rất rộng, khó có thể đưa ra một định
nghỹa chính xác cho khái niệm này. Cũng không thể định nghỹa cho khái niệm tri
thức cho dù chỉ hạn chế trong phạm vi những tri thức được chiết xuất từ các CSDL.
Tuy nhiên, ta có thể hiểu tri thức là một biểu thức trong một ngôn ngữ nào đó diễn
tả một (hoặc nhiều) mối quan hệ giữa các thuộc tính trong các dữ liệu đó. Các ngôn
ngữ thường được dùng để biểu diễn tri thức (trong việc phát hiện tri thức từ các
CSDL) là các khung (frames), các cây và đồ thị, các luật (rules), các công thức
trong ngôn ngữ logic mệnh đề hoặc tân từ cấp một, các hệ thống phương trình,
Nhóm SV Lớp: L10CQCN7-B
6
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
v.v…, ví dụ như ta có các luật mô tả các thuộc tính của dữ liệu, các mẫu thường
xuyên xảy ra, các nhóm đối tượng trong cơ sở dữ liệu, v.v…
Tóm lại: Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in
Database – KDD) là một quy trình 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 như hợp thức mới, khả ích và có thể hiểu được.
1.3.1. 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
Mặc dù có 5 giai đoạn như trên, xong quá trình phát hiện tri thức 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 hình xoắn chô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 kiểu thác nước. Đây là một quá trình
biện trứngmang tính chất học của quá trình phát hiện trí thức và là
phương pháp luận trongviện phát hiện tri thức. Các giai đoạn đó sẽ được trình
bày cụ thể như sau:
GĐ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.
Nhóm SV Lớp: L10CQCN7-B
7
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
GĐ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 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. Kỹ
thuật này không được sử dụng cho các tác vụ có quan tâm đến phân bố
dữ liệu.
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.
GĐ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
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.
GĐ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.
Nhóm SV Lớp: L10CQCN7-B
8
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
GĐ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 môdun 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.
Nhóm SV Lớp: L10CQCN7-B
9
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
CHƯƠNG 2: KHAI PHÁ DỮ LIỆU
2.1. Khai phá dữ liệu là gì?
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong
CSDL. Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự
báo trong kinh doanh, các hoạt động sản xuất, Khai phá dữ liệu làm giảm chi
phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương
pháp thống kê).
Khai thác dữ liệu (data mining) là một ngữ tương đối mới, nó ra đời vào
khoảng những năm cuối của của thập kỷ 1980. Có rất nhiều định nghĩa khác nhau
về khai phá dữ liệu. Giáo sư Tom Mitchell đã đưa ra định nghĩa của khai phá dữ
liệu như sau: “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.”. Với một cách tiếp cận ứng
dụng hơn, tiến sĩ Fayyad đã phát biểu: ”Khai phá dữ liệu thường được xem là việc
khám phá tri thức trong các cơ sở dữ liệu, là một quá trình trích xuất những thông
tin ẩn, trước đây chưa biết và có khả năng hữu ích, dưới dạng các quy luật, ràng
buộc, qui tắc trong cơ sở dữ liệu.”. Còn các nhà thống kê thì xem " 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".
Tóm lại: Khai phá dữ liệu là một bước trong quy trình phát hiện tri thức gồm
có các thuật toán khai phá dữ liệu chuyên dùng dưới một số quy định về hiệu quả
tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu.
Nhóm SV Lớp: L10CQCN7-B
10
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
2.2. Quá trình khai phá dữ liệu
Hình 2.1. Kiến trúc hệ thống 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 _KDD) ( theo Fayyad
Smyth and Piatestky-Shapiro 1989). Quá trình này gồm có 6 bước:
Nhóm SV Lớp: L10CQCN7-B
11
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
Hình 2.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:
2.2.1.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.
2.2.2. 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 đó. Đâ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 khó 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.
2.2.3.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 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
Nhóm SV Lớp: L10CQCN7-B
12
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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ì 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. Ví dụ Sinh viên có tuổi=200. 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ữ 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ẽ gây nên những kết quả sai lệch nghiêm trọng về sau.
Giai đoạn này có một số chức năng sau:
+ Điều hòa dữ liệu: giảm bớt tính không nhất quán dữ liệu lấy từ nhiều nguồn
khác nhau. Phương pháp thông thường là khử các trường hợp trùng lặp dữ
liệu và thống nhất các ký hiệu.
+ Xử lý các giá trị khuyết: Tính không đầy đủ của dữ liệu có thể gây ra hiện
tượng dữ liệu chứa các giá trị khuyết. Đây là hiện tượng khá phổ biến. Người
ta sử dụng nhiều phương pháp khác nhau để xử lý các giá trị khuyết.
+ Xử lý nhiễu và ngoại lệ: Thông thường nhiễu dữ liệu có thể là nhiễu ngẫu
nhiên hoặc các giá trị bất bình thường. Để làm sạch nhiễu, người ta có thể sử
dụng phương pháp làm trơn nhiễu hoặc dùng các giải thuật phát hiện ra các
ngoại lệ để xử lý.
2.2.4. 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.
2.2.5. Phát hiện và trích 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ự.
2.2.6. Đá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óm SV Lớp: L10CQCN7-B
13
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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.
2.3. Chức năng của khai phá dữ liệu
Khai phá dữ liệu có hai chức năng cơ bản đó là: chức năng dự đoán và chức
năng mô tả. Dự báo là dùng một số biến hoặc trường trong CSDL để dự đoán ra các
giá trị chưa biết hoặc sẽ có của các biến quan trọng khác. Việc mô tả tập trung vào
tìm kiếm các mẫu mà con người có thể hiểu được để mô tả dữ liệu. Trong lĩnh vực
KDD, mô tả được quan tâm nhiều hơn dự báo, nó ngược với các ứng dụng học máy
và nhận dạng mẫu mà trong đó việc dự báo thường là mục tiêu chính.
Khai phá dữ liệu mang lại những lợi ích như :
+ Cung cấp tri thức hỗ trợ ra quyết định
+ Dự báo
+ Khái quát dữ liệu
2.4. Các kỹ thuật khai phá dữ liệu
Trong thực tế có nhiều kỹ thuật khai phá dữ liệu khác nhau nhằm thực hiện
hai chức năng mô tả và dự đoán.
- Kỹ thuật khai phá dữ liệu 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), phân tích sự phát triển và
độ lệch (Evolution and deviation analyst),….
- Kỹ thuật khai phá dữ liệu 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 phổ biến thường được sử dụng để khai phá dữ liệu hiện nay
là :
2.4.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ữ
Nhóm SV Lớp: L10CQCN7-B
14
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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.4.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 cum, sao cho các đối tượng thuộc cùng một lớp là tương đồng.
2.4.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. Đầu ra của giải thuật luật kết hợp là tập luật
kết hợp tìm được. 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 tính độ 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.
2.4.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.
2.4.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.
2.4.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.
Nhóm SV Lớp: L10CQCN7-B
15
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
2.4.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.
2.5. Các dạng dữ liệu có thể khai phá được
- CSDL quan hệ
- CSDL đa chiều
- CSDL giao dịch
- CSDL quan hệ - đối tượng
- CSDL không gian và thời gian
- CSDL đa phương tiện.
2.6. Các lĩnh vực liên quan đến khai phá dữ liệu và ứng dụng của khai phá dữ
liệu
2.6.1. Các lĩnh vực liên quan đến phát hiện tri thức và khai phá dữ liệu
Phát hiện tri thức và khai phá dữ liệu được ứng dụng trong nhiều ngành và
lĩnh vực khác nhau như: tài chính ngân hàng, thương mại, y tế, giáo dục, thống kê,
máy học, trí tuệ nhân tạo, csdl, thuật toán toán học, tính toán song song với tốc độ
cao, thu thập cơ sở tri thức cho hệ chuyên gia,…
2.6.2. Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu được vận dụng để giải quyết các vấn đề thuộc nhiều lĩnh
vực khác nhau. Chẳng hạn như giải quyết các bài toán phức tạp trong các ngành đòi
hỏi kỹ thuật cao, như tìm kiếm mỏ dầu, từ ảnh viễn thám, cảnh báo hỏng hóc trong
các hệ thống sản xuất; Được ứng dụng cho việc quy hoạch và phát triển các hệ
thống quản lý và sản xuất trong thực tế như dự đoán tải sử dụng điện, mức độ tiêu
thụ sản phẩm, phân nhóm khách hàng; Áp dụng cho các vấn đề xã hội như phát
hiện tội phạm, tăng cường an ninh…
Một số ứng dụng cụ thể như sau :
- Khai phá dữ liệu được sử dụng để phân tích dữ liệu, hỗ trợ ra quyết định.
Nhóm SV Lớp: L10CQCN7-B
16
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
- Trong sinh học: nó dùng để tìm kiếm , so sánh các hệ gen và thông tin di
chuyền, tìm mối liên hệ giữa các hệ gen và chuẩn đoán một số bệnh di
chuyền
- Trong y học: khai phá dữ liệu giúp tìm ra mối liên hệ giữa các triệu
chứng, chuẩn đoán bệnh.
- Tài chính và thị trường chứng khoán: Khai phá dữ liệu để phân tích tình
hình tài chính, phân tích đầu tư, phân tích cổ phiếu
- Khai thác dữ liệu web.
- Trong thông tin kỹ thuật: khai phá dữ liệu dùng để phân tích các sai hỏng,
điều khiển và lập lịch trình…
- Trong thông tin thương mại: dùng để phân tích dữ liệu người dùng, phân
tích dữ liệu marketing, phân tích đầu tư, phát hiện các gian lận.
2.7. Các thách thức và hướng phát triển của phát hiện tri thức và khai phá dữ
liệu.
Sự phát triển của phát hiện tri thức và khai phá dữ liệu gặp phải một số thách
thức sau:
- CSDL lớn (số lượng bản ghi, số bảng)
- Số chiề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 bị nhiễu.
- Quan hệ giữa các trường phức tạp
- Vấn đề 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.
- …
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
Nhóm SV Lớp: L10CQCN7-B
17
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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.
Nhóm SV Lớp: L10CQCN7-B
18
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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 (decision tree) là một phương pháp rất mạnh và phổ biến cho
cả hai nhiệm vụ của khai phá dữ liệu là phân loại và dự báo. Mặt khác, cây quyết
định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các
luật If-Then.
Cây quyết định là cấu trúc biễu diễn dưới dạng cây. Trong đó, mỗi nút trong
(internal node) biễu diễn một thuộc tính, nhánh (branch) biễu diễn giá trị có thể có
của thuộc tính, mỗi lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên cùng
của cây gọi là gốc (root). 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 để xây dựng một kế hoạch nhằm đạt được mục
đích 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.
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.
Ví dụ: Cây quyết định phân lớp mức lương
Nhóm SV Lớp: L10CQCN7-B
19
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
Hình 3.1 Cây quyết định phân lớp mức lương
3.1.2.Học cây quyết định (Dicision tree learning):
Là phương pháp xấp xỉ giá trị rời rạc bởi những hàm mục tiêu ( target
function), trong đó hàm được biểu diễn bởi một cây quyết định.Những cây học
( learned trees) có thể cũng được biểu diễn như là tập hợp của những luật if then để
tăng tính dễ đọc cho con người . Những phương pháp học này thể hiện trong những
giải thuật suy diễn quy nạp thông dụng nhất và được ứng dụng thành công trong
những nhiệm vụ từ việc học để chuẩn đoán bệnh trong y học đến việc định giá rủi ro
trong tài chính về kinh tế.
3.1.3.Tại sao học cây quyết định là một phương pháp học qui nạp hấp dẫn
Những phương pháp học qui nạp tạo thành những công thức cho không gian
giả thuyết tổng quát bằng việc tìm ra tính qui tắc bằng kinh nghiệm dựa trên những
dữ liệu ví dụ.
Với học qui nạp , học cây quyết định hấp dẫn vì 3 nguyên nhân:
1. Cây quyết định là một sự tổng quát tốt cho những trường hợp ta không để
ý đến , chỉ những trường hợp được mô tả trong những giới hạn của những
đặc tính mà liên quan đến những khái niệm mục tiêu.
2. Những phương pháp hiệu quả trong tính toán là số hạng của tỉ lệ thức đến
số của những trường hợp của dữ liệu đưa vào tính toán.
3. Kết quả của cây quyết định đưa ra một sự biểu diễn của ý niệm mà dễ dàng
cho con người bởi vì nó đưa ra quá trình phân loại hiển nhiên
Nhóm SV Lớp: L10CQCN7-B
Age?
≤ 35
salary
> 35
salary
≤ 40 >40
bad good
≤50 >50
bad good
20
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
3.1.4.Ư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
- 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.5.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:
- 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
- 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á.
- Đá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.6.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.
Nhóm SV Lớp: L10CQCN7-B
21
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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:
- 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.
- 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á.
- 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á.
• 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
.
+ 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.
• 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.
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
Nhóm SV Lớp: L10CQCN7-B
22
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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).
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 đó.
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các ví
dụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training data).
Hay nói khác hơn, giải thuật có:
• Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm 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.
3.2.2.1. Entropy đo tính thuần nhất của tập dữ liệu
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
- 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
Nhóm SV Lớp: L10CQCN7-B
23
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
3.2.2.2. Information 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.
3.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
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;
Nhóm SV Lớp: L10CQCN7-B
24
Báo cáo thực tập GVHD: Nguyễn Quỳnh Chi
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
2.2.2.4.Ví dụ minh họa
Chúng ta hãy xét bài toán phân loại xem ta có đi chơi tennis ứng với thời tiết
nào đó không. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:
Ngày
Quang
cảnh
Nhiệt độ Độ ảm Gió
Chơi
Tennis
Dl Nắng Nóng Cao Nhẹ Không
D2 Nắng Nóng Cao Mạnh Không
D3 Âm u Nóng Cao Nhẹ Có
D4 Mưa Ấm áp Cao Nhẹ Có
D5 Mưa Mát Trung bình Nhẹ Có
D6 Mưa Mát Trung bình Mạnh Không
D7 Âm u Mát Trung bình Mạnh Có
D8 Nắng Ấm áp Cao Nhẹ Không
D9 Nắng Mát Trung bình Nhẹ Có
Dl0 Mưa Ấm áp Trung bình Nhẹ Có
Dl1 Nắng Ấm áp Trung bình Mạnh Có
Dl2 Âm u Ấm áp Cao Mạnh Có
Dl3 Âm u Nóng Trung bình Nhẹ Có
Dl4 Mưa Ấm áp Cao Mạnh Không
Bảng 2.1. Tập dữ liệu ví dụ cho chơi Tennis
Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ biểu diễn cho tình trạng thời
tiết gồm các thuộc tính quang cảnh, nhiệt độ, độ ẩm và gió; và đều có một thuộc
tính phân loại ‘chơi Tennis’(có, không). ‘Không’ nghĩa là không đi chơi tennis ứng
với thời tiết đó, ‘Có’ nghĩa là chơi tennis ứng với thời tiết đó. Giá trị phân loại ở
Nhóm SV Lớp: L10CQCN7-B
25