Các phươngphá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à khaiphá dữ liệu” KDD - Knowle
Trang 1
Trang 2
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
MỤC LỤC
LỜI NÓI ĐẦU 1
Chương 1 2
TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 2
1.1 Phát hiện tri thức và khai phá dữ liệu 2
1.2 Quá trình phát hiện tri thức từ cơ sở dữ liệu 2
1.2.1 Xác định bài toán 3
1.2.2 Thu thập và tiền xử lý dữ liệu 3
1.2.2.1 Gom dữ liệu 4
1.2.2.2 Chọn lọc dữ liệu 4
1.2.2.3 Làm sạch 5
1.2.2.3 Làm giàu dữ liệu 5
1.2.2.4 Mã hoá dữ liệu 5
1.2.2.5 Đánh giá và trình diễn 6
1.2.3 Khai phá dữ liệu và rút ra tri thức 6
1.2.4 Phát biểu và đánh giá kết quả 6
1.2.5 Sử dụng tri thức đã phát hiện 6
1.3 Khai phá dữ liệu 7
1.3.1 Khái niệm khai phá dữ liệu 7
1.3.2 Chức năng của khai phá dữ liệu 7
1.3.3 Ứng dụng về khai phá dữ liệu 9
1.3.4 Một số kỹ thuật khai phá dữ liệu 10
1.3.5 Các dạng dữ liệu có thể khai phá được 12
1.3.6 Một vài thách thức đặt ra trong khai phá dữ liệu 12
1.3.7 Hướng phát triển của khám phá tri thức và khai phá dữ liệu 13
Chương 2 14
CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU DÙNG CÂY QUYẾT ĐỊNH 14
2.1 Cây quyết định 14
2.1.1 Khái niệm cây quyết định 14
2.1.2 Các kiểu cây quyết định 16
2.2.3 Ưu điểm của cây quyết định 16
2.2.4 Giải quyết vấn đề xây dựng cây quyết định 16
2.2.5 Rút ra các luật từ cây quyết định 16
Trang 32.2.1 Thuật toán CLS 17
2.2.2 Thuật toán ID3 18
2.2.3 Thuật toán C4.5 20
2.2.4 Thuật toán SLIQ 23
2.2.5 Cắt tỉa cây quyết định 26
2.3 Đánh giá và kết luận về các thuật toán xây dựng cây quyết định 28
Chương 3 30
CHƯƠNG TRÌNH CÀI ĐẶT VÀ THỬ NGHIỆM THUẬT TOÁN ID3 30
3.1 Mô tả bài toán 30
3.2 Tiền xử lý dữ liệu và Tính toán dùng thuật toán ID3 30
3.3 Chương trình 39
3.3.1 Giao diện của chương trình 39
3.3.2 Các lớp của chương trình 40
KẾT LUẬN 41
TÀI LIỆU THAM KHẢO 42
Trang 4Kỹ nguyên Internet, Intranets, Warehouses, đã mở ra nhiều cơ hội chocác cơ quan, các doanh nghiệp, các đơn vị trong việc thu thập và xử lý thôngtin Bên cạnh đó, với sự phát triển mạnh mẽ của công nghệ điện tử và cácthiế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ạngviễ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ộtcuộc điện thoại, kiểm tra sức khỏe, sử dụng thẻ tín dụng, đều được ghi vàotrong 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ầucủ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ươngphá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à khaiphá 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 tintiềm ẩn có giá trị mà trước đó chưa được phát hiện cũng như tìm ra những xuhướ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
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 Khaiphá 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ĩ KhoaHọ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ấnqua mạng và các bạn bè học viên trong lớp đã giúp đỡ em hoàn thành bài thuhoạch
Em xin chân thành cảm ơn!
Chương 1
Trang 5TỔ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ệcbiế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ẵnphải tìm ra những thông tin tiềm ẩn mà trước đó chưa được phát hiện, tìm ranhững xu hướng phát triển và những yếu tố tác động lên chúng Thực hiệncô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ìnhphát hiện tri thức trong cơ sở dữ liệu Tuy nhiên đây là giai đoạn đóng vaitrò 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 trithứ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 đó conngườ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ữacon 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
Trang 6Sử dụng tri thức và phát hiện được triết xuất tri thứ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 trithứ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ểuxoắ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ácnướ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áthiệ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.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ạikhông đầy đủ, không thuần nhất, có nhiều lỗi và các giá trị đặc biệt Vì vậygiai đoạn thu thập và tiền xử lý dữ liệu trở nên rất quan trọng trong quá trìnhphá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
Trang 7Ngườ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:
Knowledge
Pattern Discovery Transforme
d Data
Cleansed Preprocessed Preparated Data
Target Data
Gom DL
Mã hoá DL
Chọn lọc DL
Làm giàu DL Làm sạch DL
Đánh giá & trình diễn
Internet,
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
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ạnghì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ệuthật tốt để chuyển sang giai đoạn tiếp theo
Trang 81.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ườngmắ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ệchnghiệ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
Đây là bước mang tính tư duy trong khai phá dữ liệu.Ở giai đoạnnà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ợphoặc các mô hình dữ liệu tuần tự, v v
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ôngnhất Các khuôn dạng khác nhau của dữ liệu cũng được quy đổi, tính toánlạ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 đổiphù hợp với mục đích khai thác Mục đích của giai đoạn này là chuyển đổikiể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.
Trang 9- 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ôngphả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ứccầ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 thuthậ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ácphù 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ácbá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áctri 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úptạo cơ sở cho những quyết định chiến lược Thông thường, chúng được tổnghợ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ứcthà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
Trang 10Các kết quả của quá trình phát hiện tri thức có thể được đưa vào ứngdụng trong những lĩnh vực khác nhau Do các kết quả có thể là các dự báohoặ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, khaiphá 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 íchtrong 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ở
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ặcnhữ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)
Trang 11- 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.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ộtbiến dự đoán có giá trị thực Có rất nhiều ứng dụng khai phá dữ liệu vớinhiệ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 nhucầ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ênnhau 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áckhách hàng có phản ứng giống nhau trong cơ sở dữ liệu tiếp thị, xác định cácloại quang phổ từ các phương pháp đo tia hồng ngoại
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ộtlớ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ủatấ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ôndạ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ưngcho 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ữacá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ô
Trang 12hì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ủamộ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êucầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnhhưở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ọckhác như: Hệ CSDL, thống kê, trực quan hoá.v.v Hơn nữa, tuỳ vào cách tiếpcậ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ácphươ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ệukhô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ôngqua 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ớicác dữ liệu trong CSDL, và chúng thường chỉ bao hàm được các trường hợpquan 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ủacác mẫu phát hiện được
Phương pháp thống kê là một trong những nên tảng lý thuyết củakhai phá dữ liệu, nhưng khi so sánh hai phương pháp với nhau ta có thể thấycá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ệukhắ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
Trang 13Với nhưng ưu điểm đó, khai phá dữ liệu hiện đang được áp dụng mộtcá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ậtkhai phá dữ liệu vào các hoạt động sản xuất kinh doanh của mình và thu đượcnhữ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ínhtiề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ơncũng có thể được suy diễn từ kho thông tin đó Có hai kỹ thuật chính để thựchiện việc này là suy diễn và quy nạp
• 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ệnchí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 đượcbằ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ứcchứ 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
Trang 14cá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ớptheo 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ínhcủ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 đề đúngvớ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ớihạ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ànhphầ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àytrong cơ sở dữ liệu lớn là không khó Tuy nhiên, vấn đề là ở chỗ có thể có rấtnhiề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ệulớ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ácluật dạng X => B sao cho tần số của luật không nhỏ hơn ngưỡng Minsup chotrướ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ìncác luật kết hợp
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ểncấ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ệcnghiê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 đếnmạ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ể
Trang 15Mô hình mạng Neuron
Mẫu chiết xuất được
Dữ liệu
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ốngtiế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ụngrấ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
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ệnkhông còn phù hợp nữa
Trang 16 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ệckhai 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ềukhiển quá trình khai phá dữ liệu, định hướng hệ thống khai phá dữ liệu trongviệ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 khaiphá dữ liệu để khai phá dữ liệu web trực tuyến Một vấn đề quan trọng trongviệ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
Chương 2
CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU
Trang 17DÙ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áccâ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
(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiệntượ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úttrong (internal node) tương ứng với một biến; đường nối giữa nó với nút concủ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ễnbởi đường đi từ nút gốc tới nút lá đó Kỹ thuật học máy dùng trong cây quyếtđịnh được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn làcây quyết định
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
Age?
≤ 35 salary
Trang 18lá đạ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ộctí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, haykhi 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ínhtoá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ậttoá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ộttậ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
( , ) ( , , , , , ) x y x x x x yk
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 x x x1 , , 2 3 là các biến sẽ giúp ta thực hiện côngviệc đó
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ủaCSDL; 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útgố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ầnxé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:
Trang 19Câ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áchkiể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:
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
Trang 20IF (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 learningSystem (CLS) vào những năm 50 của thế kỷ 20 Sau đó gọi tắt là thuật toánCLS Thuật toán CLS được thiết kế theo chiến lược chia để trị từ trên xuống
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ạ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
Bước 5: Thực hiện lặp cho các nút con Ti(i =1,2 n) và quay lại Bước 2.
Ta nhận thấy trong Bước 4 của thuật toán, thuộc tính được chọn để triển khaicâ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ụngthuật toán CLS với thứ tự chọn thuộc tính triển khai cây khác nhau, sẽ cho racá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ọcSyney, Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20 Sau
Trang 21đó, thuật toán ID3 được giới thiệu và trình bày trong mục Induction ondecision trees, Machine learning năm 1986 ID3 được xem như là một cải tiếncủ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âytạ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:
- 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ọncho 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 địnhbở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:
Trang 22v
v
v value(A)
S ( , ) Information(A) - Entropy(A)= Entropy(S)- Entropy(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
return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong
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ệctriể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
Trang 23Tuy 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ớiviệ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 đạilượng để đánh giá độ hiệu quả của thuộc tính dùng để thực hiện phép táchtrong 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 InformationGain theo công thức sau:
( , ) ( , )
(X,T)
Gain X T GainRation X T
Value(X) là tập các giá trị của thuộc tính X
Ti là tập con của tập T ứng với thuộc tính X = giá trị là vi
Đố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âncho mọi giá trị của thuộc tính đó Để thu thập được giá trị Entropy gain củatấ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: