Tìm hiểu khai phá dữ liệu bằng cây quyết định
Trang 1HỌ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
Trang 2Lờ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
Trang 3CHƯƠ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
Trang 4cá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
Trang 5- 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ữ
Trang 6liệ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,
Trang 7v.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 :
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
Trang 8GĐ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
Trang 9GĐ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
Trang 10CHƯƠ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
Trang 112.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:
Trang 12Hì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
Trang 13trong 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
Trang 14nhữ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ữ
Trang 15liệ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.
- 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
Trang 162.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
Trang 17- 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
Trang 18mẫ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.
Trang 19CHƯƠ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
Trang 20Hì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
Age?
≤ 35 salary
Trang 213.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
Trang 22Thuậ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"
+ Tạo n nút con Ti (i=1,2…n) với nút cha là nút T
+ Tạo các nhánh nối từ nút T đến các nút Ti (i=1,2…n) là các
thuộc tính của X
• Thực hiện lặp cho các nút con Ti(i =1,2 n) và quay lại bước 2
Ta nhận thấy trong bước 4 của thuật toán, thuộc tính được chọn để triển khai cây là tuỳ ý Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự chọn thuộc tính triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau Việc lựa chọn thuộc tính sẽ ảnh hưởng tới độ rộng, độ sâu, độ phức tạp của cây Vì vậy một câu hỏi đặt ra là thứ tự thuộc tính nào được chọn để triển khai cây sẽ là tốt nhất Vấn đề này sẽ được giải quyết trong thuật toán ID3 dưới đây
3.2.2 Thuật toán ID3
Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney, Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20 Sau đó, thuật toán ID3 được giới thiệu và trình bày trong mục Induction on decision trees, machine learning năm 1986 ID3 được xem như là một cải tiến của CLS với khả năng lựa
Trang 23chọ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:
Entropy(S)= - P log ( P+) P log ( − 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 ( ))P i Trong đó Pi là tỷ lệ các mẫu thuộc lớp i trên tập hợp S các mẫu kiểm tra Các trường hợp đặc biệt
- Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng một lớp thì Entropy(S) =0
- Nếu trong tập S có số mẫu phân bổ đều nhau vào các lớp thì Entropy(S)
=1
Trang 243.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 Ai(i=1,2…n) giá trị Information của thuộc tính Ai ký hiệu là Information(Ai) được xác định bởi công thức
n
i=1
Information(A ) = -∑log ( ) Entropy(S)p i =
- 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 )
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;
Trang 25xó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ùngV 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ùngV, tập_thuộc_tính), gắn kết
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:
Chơi Tennis
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 ở