Ngày nay, kỹ thuật khai phá dữ liệu dựa trên cây quyết định đã được áp dụng và mạng lại hiệu quả cho nhiều ngành, nhiều lĩnh vực như: kinh tế, tài chính, khoa học - kỹ thuật, ngân hàng,
Trang 1MỤC LỤC
MỞ ĐẦU 4
CHƯƠNG 1 TỔNG QUAN 6
1.1 SƠ LƯỢC VỀ KHAI PHÁ TRI THỨC 6
1.1.1 Dữ liệu và tri thức 6
1.1.2 Khai phá tri thức 8
1.1.3 Các quá trình khai phá tri thức 9
1.2 KHAI PHÁ DỮ LIỆU 12
1.2.1 Khái niệm khai phá dữ liệu 12
1.2.2 Mục tiêu của khai phá dữ liệu 13
1.2.3 Chức năng của khai phá dữ liệu 13
1.2.4 Phương pháp khai phá dữ liệu 16
1.2.5 Các kỹ thuật khai phá dữ liệu 20
1.2.6 Các thách thức khi khai phá dữ liệu 25
1.2.7 Các yêu cầu khi khai phá dữ liệu 27
1.2.8 Đánh giá, kết luận 28
CHƯƠNG 2 CÁC KHÁI NIỆM CƠ BẢN 30
2.1 CÂY QUYẾT ĐỊNH 30
2.1.1 Khái niệm chung 30
2.1.2 Xây dựng cây quyết định 33
2.1.3 Cắt tỉa cây quyết định 34
2.1.4 Đánh giá cây quyết định 34
2.2 CƠ SỞ DỮ LIỆU QUAN HỆ 34
2.2.1 Quan hệ 34
2.2.2 Cơ sở dữ liệu quan hệ 35
2.2.3 Đại số quan hệ 36
2.2.4 Phụ thuộc hàm 36
2.2.5 Phụ thuộc hàm xấp xỉ 39
CHƯƠNG 3 MỘT SỐ PHƯƠNG PHÁP XÂY DỰNG CÂY QUYẾT ĐỊNH 42
3.1 THUẬT TOÁN XÂY DỰNG CÂY QUYẾT ĐỊNH 42
3.1.1 Thuật toán CLS 42
3.1.2 Thuật toán ID3 (Interative Dichotomizer) 46
3.1.3 Thuật toán C4.5 50
Trang 23.1.4 Thuật toán xây dựng cây quyết định dựa trên phụ thuộc hàm 55
3.2 CẮT TỈA CÂY QUYẾT ĐỊNH 59
3.3 ĐÁNH GIÁ CÁC THUẬT TOÁN VÀ KẾT LUẬN 60
3.3.1 Đánh giá 60
3.3.2 Kết luận 61
CHƯƠNG 4 ỨNG DỤNG THỬ NGHIỆM 62
4.1 BÀI TOÁN THỬ NGHIỆM 62
4.1.1 Mô tả bài toán 62
4.1.2 Mục đích thực hiện bài toán 63
4.2 KẾT QUẢ ĐẠT ĐƯỢC 63
4.4 MỘT SỐ HÌNH ẢNH CỦA CHƯƠNG TRÌNH 64
4.4.2 Giao diện hệ thống 64
4.4.3 Giao diện xây dựng cây quyết định 65
4.4.5 Cây quyết định dựa theo thuật toán CLS 65
4.4.6 Cây quyết định theo thuật toán ID3 66
4.4.7 Cây quyết định theo thuật toán C4.5 66
4.4.8 Xây dựng cây quyết định theo phụ thuộc hàm xấp xỉ 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70
Trang 3Aproximate Functional Dependencies
Genetic Algorithm
Trang 4MỞ ĐẦU
Công nghệ thông tin đã và đang trở thành lĩnh vực nghiên cứu, ứng dụng
và triển khai có hiệu quả trong đời sống kinh tế, xã hội Việc ứng dụng công nghệ thông tin trong các ngành khoa học, kinh tế, xã hội đã mang lại những hiệu quả to lớn không thể phủ nhận Với các ngành khoa học, kinh tế - xã hội nơi có những kho dữ liệu khổng lồ thì việc tìm kiếm, truy xuất và đưa ra những thông tin cần thiết phù hợp với thời gian và yêu cầu là không dễ dàng và chính vì thế một thế hệ mới các phương pháp tiếp cận, phương pháp nghiên cứu, và các kỹ thuật, công cụ cho phép phân tích, tổng hợp, khai phá tri thức từ dữ liệu một cách thông minh và hiệu quả đã được các nhà khoa học quan tâm và nghiên cứu
Một trong những lĩnh vực nghiên cứu các phương pháp ứng dụng khai phá dữ liệu, tìm kiếm tri thức, kết xuất tri thức … từ dữ liệu là cây quyết định (decision tree) cũng được nghiên cứu từ nhiều năm trước đây và đã có những kết quả khả quan và mang lại hướng ứng dụng có hiệu quả cao Ngày nay, kỹ thuật khai phá dữ liệu dựa trên cây quyết định đã được áp dụng và mạng lại hiệu quả cho nhiều ngành, nhiều lĩnh vực như: kinh tế, tài chính, khoa học - kỹ thuật, ngân hàng, thương mại, giáo dục, y tế,… Các kỹ thuật khai phá dữ liệu bằng cây quyết định rất đa dạng và phong phú như các kỹ thuật dựa trên các thuật toán Hunt, ID3, C4.5, … và kỹ thuật xây dựng cây quyết đinh dựa trên các phụ thuộc hàm trong cơ sở dữ liệu quan hệ
Với mong muốn làm rõ hơn các kỹ thuật khai phá tri thức từ dữ liệu sử dụng cây quyết định nhằm phục vụ công tác nghiên cứu chuyên môn cũng như mong muốn đưa các kỹ thuật khai phá dữ liệu sử dụng cây quyết định vào thực
tế nên tôi lựa chọn thực hiện luận văn tốt nghiệp sau đại học là “Một số phương
pháp xây dựng cây quyết định trong khai phá dữ liệu” Mục đích khi thực
hiện luận văn này là tổng hợp các kiến thức về kỹ thuật khai phá dữ liệu bằng các kỹ thuật xây dựng cây quyết định dựa trên các thuật toán và phương pháp xây dựng cây quyết định dựa trên phụ thuộc hàm của cơ sở dữ liệu quan hệ
Trang 5Chương 1 Tổng quan, chương này trình bày khái quát về các vấn đề về
khai phá dữ liệu, các thách thức gặp phải khi sử dụng các kỹ thuật khai phá dữ liệu và các ứng dụng của khai phá dữ liệu và tình hình nghiên cứu về khai phá
dữ liệu nói chung và kỹ thuật khai phá dữ liệu sử dụng cây quyết định nói riêng
ở thế giới và nước ta
Chương 2 Các khái niệm cơ bản, bao gồm các khái niệm cơ bản về
khai phá dữ liệu, cây quyết định, các khái niệm trong cơ sở dữ liệu quan hệ
Chương 3 Một số phương pháp xây dựng cây quyết định, chương này
là trọng tâm của luận văn đề cập đến phương pháp xây dựng cây quyết định dựa trên các thuật toán khai phá dữ liệu bằng cây quyết định bao gồm các thuật toán CLS, ID3, C4.5 và phương pháp xây dựng cây quyết định dựa trên phụ thuộc hàm xấp xỉ trong cơ sở dữ liệu quan hệ
Chương 4 Ứng dụng thử nghiệm, chương này so sánh các kỹ thuật xây
dựng cây quyết định và đưa ra bài toán ứng dụng thử nghiệm để từ đó áp dụng một phương pháp khai phá dữ liệu cho bài toán đã nêu ra, từ đó thiết kế các modul cho triển khai bài toán
Chương 5 Đánh giá, kết luận, chương này đưa ra các đánh giá, kết luận
và các phân tích sau khi thực hiện luận văn
Trong luận văn, các trích dẫn của các tác giả khác liên quan đến lĩnh vực nghiên cứu đặt trong dấu ngoặc vuông [ ]
Trang 6có dữ liệu Chúng ta có thể có nhiều dạng dữ liệu khác nhau cho nhiều lĩnh vực khác nhau nhưng cũng có thể các dữ liệu lại có một sự quan hệ tương đối mật thiết và chặt chẽ với nhau và không phải dữ liệu nào thu được cũng hoàn toàn chính xác hoặc phù hợp với yêu cầu của con người Từ dữ liệu, con người phải tiến một bước dài trước khi xác định được tri thức trong khi con người luôn luôn mong muốn có được một tri thức đúng về một vấn đề cụ thể nào đó
Tri thức chính là động lực quan trọng trong quá trình phát triển và tiến bộ của con người nói riêng và văn minh nhân loại nói chung dù rằng những khái niệm chính xác về tri thức, bản chất của tri thức, quá trình hình thành của tri thức, mối quan hệ của các đối tượng trong thế giới với tri thức,… vẫn đang được tranh luận và chưa có câu trả lời thỏa đáng nhưng trong mọi lĩnh vực từ khoa học, công nghệ, kỹ thuật,… đến kinh tế, văn hóa, xã hội tri thức luôn luôn được tìm kiếm, phát hiện và tác động ngày càng lớn đến sự phát triển của loài người
Sự phong phú về thông tin, dữ liệu cùng với khả năng kịp thời khai thác chúng đã mang lại những năng suất và chất lượng cao trong công tác quản lý, hoạt động kinh tế, phát triển sản xuất và dịch vụ,… tuy nhiên, các yêu cầu về thông tin, tri thức trong các dữ liệu đó đặc biệt là công tác quyết định ngày càng đòi hỏi chất lượng cao hơn, kịp thời hơn và nhều tri thức hơn nhằm hỗ trợ việc
ra quyết định của mình Không phải ngẫu nhiên mà John Naisbett đã cảnh báo
“Chúng ta đang ngập chìm trong dữ liệu mà vẫn đói tri thức” [1], điều đó cũng
báo trước việc ứng dụng công nghệ thông tin đang chuyển sang một thời kỳ mới
mà mục đích chủ yếu của công nghệ thông tin là giúp con người nhiều hơn trong
Trang 7quá trình tìm kiếm, khai phá tri thức từ dữ liệu, biến đổi từ sự giàu có về thông tin thành sự giàu có về tri thức
Các khái niệm thông tin, dữ liệu và tri thức luôn có quan hệ chặt chẽ, mật thiết với nhau và khó phân biệt được bằng các định nghĩa rõ ràng Ta có thể hiểu thông tin như là khái niệm chung nhất bao gồm mọi sự hiểu biết về các sự vật, hiện tượng, quan hệ,… mà con người thu nhận được qua các giác quan, giao tiếp, khảo sát, thực nghiệm, nghiên cứu, lý giải,… Dữ liệu có thể được mô tả bởi các giá trị cho các sự kiện, hiện tượng cụ thể còn tri thức có thể được xem như là những hiểu biết có mức độ khái quát, về các mối quan hệ có quy luật giữa các thuộc tính của đối tượng, các sự vật, hiện tượng mà con người thu được sau khi
“chân lý hóa” bằng kinh nghiệm, phân tích dữ liệu hay qua nghiên cứu, lý giải, suy luận Hoạt động nhận thức của con người bao gồm việc tìm kiếm tri thức để tăng cường sự hiểu biết về xã hội và cuộc sống, từ đó có thể tạo nên các kỹ thuật, công nghệ và giải pháp nhằm cải thiện đời sống của mình Dưới sự trợ giúp của công nghệ thông tin, các phương pháp khai phá tri thức từ dữ liệu đã được từng bước nghiên cứu và các công cụ, giải pháp nhằm tổ chức các kho thông tin và dữ liệu có khả năng linh hoạt hơn trong việc trợ giúp quyết định trên nền kiến trúc khách hàng, phục vụ thích hợp, với việc sử dụng các phương pháp khai phá dữ liệu và phát hiện tri thức hiện đang được nghiên cứu rộng rãi trên thế giới cũng như ở Việt Nam
Từ nhiều thế kỷ qua, nếu như khoa học luôn hướng đến việc phát hiện các tri thức có giá trị phổ biến dưới dạng các nguyên lý, quy luật, định lý,… thì ngày nay chúng ta càng thấy rõ rằng ngay trong cuộc sống hàng ngày, trong việc quản
lý, kinh doanh,… cũng cần những tri thức có thể có ý nghĩa hẹp hơn, ít phổ biến hơn, có độ chính xác thấp hơn, có đời sống ngắn hơn,… nhưng lại đáp ứng và phù hợp với nhu cầu trực tiếp của con người Tuy nhiên, để có thể nhận biết được các tri thức này lại là điều không đơn giản Một trong những nguồn dữ liệu quan trọng để từ đó có thể khai phá, phân tích, tổng hợp là các kho thông tin, các
cơ sở dữ liệu phong phú mà con người đã và đang tích lũy được Khai phá dữ
Trang 8liệu và phát hiện tri thức là một hướng nghiên cứu quan trọng, đang phát triển mạnh và phù hợp với các công việc quan trọng đó
1.1.2 Khai phá tri thức
Với khối lượng thông tin do con người khám phá và được lưu trữ ngày càng nhiều đặc biệt là trong những thập niên gần đây Dữ liệu được tích lũy ngày càng nhiều và tốc độ phát triển của dữ liệu tích lũy ngày càng cao Một số báo cáo cũng đã nhận định rằng lượng thông tin trên toàn cầu tăng khoảng gấp đôi sau hai năm, theo đó số lượng cũng như kích cỡ các cơ sở dữ liệu cũng tăng lên nhanh chóng Và trong rất nhiều ngành từ kinh tế, xã hội đến khoa học công nghệ, các nhà nghiên cứu, quản lý, ứng dụng và triển khai đang phải đối mặt với một thách thức to lớn là trong tay có một khối lượng tài nguyên thông tin khổng
lồ nhưng trong nhiều trường hợp lại thấy thiếu tri thức Lượng thông tin và dữ liệu khổng lồ này thực sự đã trở thành nguồn tài nguyên có giá trị bởi thông tin
và dữ liệu là yếu tố then chốt trong quá trình xử lý, điều hành, nghiên cứu,… Việc khai thác những thông tin, tri thức tiềm ẩn mang tính dự đoán từ các cơ sở
dữ liệu lớn, khổng lồ đã và đang ngày càng trở thành lĩnh vực thiết yếu trong cuộc sống con người
Những năm năm mươi của thế kỷ trước, cha đẻ của ngành khoa học máy tính là A Turing, J.Von Neumann đã phân tích, so sánh, đánh giá và đưa ra nhiều nhận xét lạc quan về khả năng tư duy của máy tính trong tương lai Những thành tựu bước đầu của máy tính để tự động hóa chứng minh các định lý trong logic toán, trong các trò chơi giải trí trí tuệ cao, phiên dịch,… ngay từ thập niên năm mươi tuy còn khá thô sơ nhưng cũng đủ để kích thích một chân trời mới cho nhiều ngành khoa học và công nghệ tri thức cho các thập niên tiếp theo Và trong quá trình phát triển đó, con người có dịp tìm hiểu sâu hơn bản thân hoạt động nhận thức của mình, hệ thống tri thức mà mình tích lũy được, đưa ra các thuộc tính của tri thức và những đòi hỏi đối với tri thức trong hoạt động thực tiễn của con người trong một môi trường ngày càng nhiều biến động đồng thời
Trang 9cũng thúc đẩy việc nghiên cứu những phương pháp khoa học mới và giải pháp công nghệ để biểu diễn, thu thập và tìm kiếm tri thức, xử lý tri thức, quản trị tri thức nhằm đáp ứng các nhu cầu của con người trong quá trình vận động
Quá trình phát triển của khai phá tri thức có thể chia theo một số bước như sau [3]:
- Tri thức chắc chắn và các phương pháp suy luận logic tất định
- Tri thức không chắc chắn và việc tìm quy luật cho “cái” không chắc chắn
- Tri thức không chắc chắn trong môi trường biến động
Chúng ta có thể tổng hợp khái niệm khai phá tri thức như sau [3]: Khai phá tri thức (đôi khi còn gọi là khai phá dữ liệu hay khám phá tri thức), một cách chung nhất là một quá trình phân tích dữ liệu từ nhiều nguồn dữ liệu khác nhau
và tổng hợp dữ liệu thành các tri thức
1.1.3 Các quá trình khai phá tri thức
Việc khai phá tri thức thông thường có thể mô tả bằng sơ đồ các quy trình sau [4]:
Trang 10Trong đó, mỗi bước là mỗi quy trình nắm giữ một vai trò riêng và có các nhiệm vụ khác nhau cho mỗi bước, bao gồm:
Quy trình 1 Xác định vấn đề và không gian dữ liệu để giải quyết vấn
đề (Problem Understanding and Data Understanding) Tại quy trình này, việc
xác định vấn đề và xác định không gian dữ liệu để giải quyết vấn đề bao gồm chọn lựa các nguồn dữ liệu, phạm vị ứng dụng của không gian bài toán để từ đó hình thành nên quy mô của bài toán Việc xác định vấn đề và không gian dữ liệu
để giải quyết vấn đề là chiến lược quyết định thành công hay thất bại trong suốt quá trình khai phá dữ liệu
Quy trình 2 Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình
làm sạch dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu (data selection), biến đổi dữ liệu (data transformation) Làm sạch dữ liệu chính
là việc trích lọc dữ liệu cần và loại bỏ các dữ liệu nằm ngoài phạm vi của bài toán nhằm khám phá tri thức theo một số tiêu chí nhất định Tích hợp dữ liệu, chọn dữ liệu và biến đổi dữ liệu cho phép tác chuyển đổi, tính toán xử lý để các
dữ liệu có khuôn dạng khác nhau về dạng dữ liệu phù hợp, rút gọn dữ liệu hoặc chỉnh sửa những dữ liệu sai lệch vì hầu hết các cơ sở dữ liệu lớn thường dư thừa hoặc sai lệch dữ liệu Sau bước chuẩn bị, dữ liệu dùng cho khám phá tri thức đã được làm mịn phù hợp cho bước khai phá dữ liệu tiếp sau
Quy trình 3 Khai phá dữ liệu (Data Mining), quá trình này bắt đầu khi
hệ thống dữ liệu đã được xây dựng và biến đổi Tại đây, công việc phân tích và đưa ra các quyết định lựa chọn khai thác dữ liệu, áp dụng các kỹ thuật xây dựng, khai phá dữ liệu để trích chọn các mẫu, mô hình, các mối quan hệ ẩn trong dữ liệu để từ đó khai phá tri thức cần thiết Các lớp mô hình phổ biến của các phương pháp khai phá dữ liệu là:
- Mô hình dự đoán bao gồm phân lớp (classification), hồi quy (regression)
và phân cụm (clustering)
- Mô hình phụ thuộc, chẳng hạn như các mô hình đồ thị hoặc ước lượng mật độ
Trang 11- Mô hình tóm lược như tìm ra các mối quan hệ giữa các trường, các mối liên kết
- Mô hình kiểm tra sự thay đổi để phát hiện độ lệch trong dữ liệu và tri thức
Quy trình 4 Tổng hợp kết quả và đánh giá kết quả (Evaluation),
Mục đích của giai đoạn này là hiểu tri thức đã tìm được từ việc khai phá
dữ liệu đặc biệt là làm sáng tỏ và dự đoán chúng Các kết quả khai phá sẽ được tổng hợp dưới nhiều dạng khác nhau nhằm mục đích hỗ trợ ra quyết định Nghĩa
là các thông tin hữu ích tìm được từ việc khai phá sẽ chuyển thành dữ liệu gần gũi với người sử dụng hơn Kinh nghiệm của các nhà khoa học cho thấy rằng các mẫu hay các mô hình phát hiện từ việc khai phá dữ liệu không phải lúc nào cũng đáng quan tâm và có thể trực tiếp sử dụng được ngay, mà quá trình khám phá tri thức cần phải lặp đi lặp lại nhiều lần có sự điều chỉnh, bước sau dựa vào kết quả của bước trước đó theo các tri thức khám phá được, lần sau hoàn chỉnh hơn lần trước
Các tri thức khám phá được sẽ được đánh giá theo những tiêu chí nhất định Để có thế đánh giá các luật được áp dụng trong qui trình khám phá tri thức, người ta thường chia dữ liệu thành hai tập, huấn luyện trên tập thứ nhất và kiểm chứng trên tập thứ hai Có thể lặp lại quy trình này một số lần với các phần chia khác nhau, sau đó lấy trung bình các kết quả để ước lượng các luật khả thi
Quy trình 5 Triển khai tri thức đƣợc khai phá (Deployment)
Đây là giai đoạn áp dụng tri thức đã khám phá được vào sử dụng trong thực tế Trong một số trường hợp, người ta sử dụng tri thức này mà không cần đưa vào một hệ thống máy tính Hoặc là, các tri thức này có thể được đặt vào máy tính và được khai thác bởi các chương trình, chẳng hạn như đưa chúng vào làm tri thức cho các hệ chuyên gia, sau đó đưa các kết quả tìm được vào việc sử dụng thích hợp của người dùng, đây là mục đích cuối cùng của quá trình khám phá tri thức
Mặc dù được tóm tắt thành năm giai đoạn như trên, nhưng thực chất quá trình xây dựng và thực hiện việc khám phá tri thức không chỉ phải tuân theo các
Trang 12bước cố định mà các quá trình này còn có thể được lặp đi lặp lại ở một hoặc một
số giai đoạn, lần sau sẽ hoàn thiện hơn lần trước và giai đoạn sau dựa vào kết quả của giai đoạn trước và cứ tiếp tục như thế sẽ làm cho quá trình khai phá và tìm kiếm dữ liệu càng ngày càng hoàn thiện hơn, trong sáng hơn
1.2 KHAI PHÁ DỮ LIỆU
1.2.1 Khái niệm khai phá dữ liệu
Ngày nay, việc khai phá dữ liệu còn được coi như là việc khai phá tri thức
từ dữ liệu (knowlegde mining from databases), trích lọc tri thức (knowlegde extraction), phân tích dữ liệu-mẫu (data-partent analysis), khảo cứu dữ liệu (data archaeology), đào xới, nạo vét dữ liệu (data dredging)
Khai phá dữ liệu (Data Mining) được định nghĩa là quá trình trích lọc các thông tin có giá trị ẩn trong lượng lớn dữ liệu được lưu trữ trong các CSDL hoặc các kho dữ liệu,… Khai phá dữ liệu cũng còn được coi là một quá trình tìm kiếm, khám phá ở nhiều góc độ để tìm ra các mối tương quan, các mối liên hệ dưới nhiều góc độ khác nhau nhằm tìm ra các mẫu hay các mô hình tồn tại bên trong cơ sở dữ liệu và đang bị dữ liệu (có khối lượng lớn) che khuất Để trích rút các mẫu, mô hình tiềm ẩn có tính “tri thức” ta phải tìm và áp dụng các phương pháp, kỹ thuật khai phá sao cho các kỹ thuật và phương pháp này phải phù hợp với tính chất, đặc trưng của dữ liệu và mục đích sử dụng Tuy khai phá dữ liệu chỉ là một bước trong quá trình khám phá tri thức từ dữ liệu nhưng nó lại là bước tiên quyết, quan trọng và ảnh hưởng đến toàn bộ quá trình
Tóm lại, có thể nói một cách khái quát, khai phá dữ liệu là một quá trình tìm kiếm thông tin “tri thức” tiềm ẩn trong cơ sở dữ liệu lớn, khổng lồ Vì thế,
có thể nói rằng hai thuật ngữ khám phá tri thức và khai phá dữ liệu là tương đương nếu nói ở khía cạnh tổng quan, còn nếu xét ở một góc độ chi tiết thì Khai phá dữ liệu là một giai đoạn có vai trò quan trọng trong quá trình khám phá tri thức [5]
Trang 131.2.2 Mục tiêu của khai phá dữ liệu
Qua những nội dung đã trình bày ở trên, chúng ta có thể hiểu một cách sơ lược rằng khai phá dữ liệu là quá trình tìm kiếm thông tin hữu ích, tiềm ẩn và mang tính dự báo trong các cơ sở dữ liệu lớn Việc khai phá dữ liệu nhằm các mục đích chính như sau:
- Khai thác những thông tin tiềm ẩn mang tính dự đoán từ những cơ sở dữ liệu lớn dựa trên các công cụ khai phá dữ liệu nhằm dự đoán những xu hướng trong tương lai nhằm giúp các đối tượng cần tri thức khai phá như: các tổ chức, doanh nghiệp, nhà nghiên cứu,… nhằm đưa ra những quyết định kịp thời, được định hướng trên những tri thức được khám phá mang lại;
- Thực hiện phân tích xử lý, tính toán dữ liệu một cách tự động cho mỗi quá trình xử lý dữ liệu để tìm ra tri thức
1.2.3 Chức năng của khai phá dữ liệu
Như trên đã trình bày, việc khai phá dữ liệu có thể được thực hiện dựa trên nhiều dạng lưu trữ dữ liệu và nhiều hệ thống cơ sở dữ liệu khác nhau Các chức năng của khai phá dữ liệu có thể dựa trên các dạng của các mô hình từ cơ
sở dữ liệu thông qua hai loại chính là loại khai phá dữ liệu dựa trên các công việc khai phá dữ liệu mô tả và khai phá dữ liệu dự báo:
- Khai phá dữ liệu mô tả sẽ mô tả các thuộc tính tổng quát của dữ liệu trong từng cơ sở dữ liệu dựa trên các phân tích và mô tả một tập các mẫu đã biết trong khả năng nhận thức của con người, giúp con người có thể hiểu rõ hơn về tri thức và dữ liệu của họ
- Khai phá dữ liệu loại dự báo sẽ thực hiện việc suy luận trên dữ liệu để đưa
ra các dự báo nhằm phân tích tập dữ liệu huấn luyện và tạo ra một mô hình cho phép dự đoán các mẫu, mô hình mới chưa biết
Trang 14Trong một số trường hợp các đối tượng có thể phân tích dữ liệu nhằm tìm
ra mô hình một cách song song do không thể tìm ra được mô hình nào là phù hợp, chính vì vậy để có thể khai phá
Trong vài trường hợp, người dùng có lẽ không có ý kiến về dạng mô hình trong dữ liệu của họ, những cái nào có thể thú vị, vì thế họ có lẽ thích tìm kiếm nhiều dạng mô hình khác nhau một cách song song Vì vậy điều quan trọng là làm sao để có một hệ thống khai phá dữ liệu có thể khai phá được đa dạng mô hình chứa đựng được nhiều ứng dụng và mong đợi khác nhau của người dùng Hơn nữa, các hệ thống khai phá dữ liệu nên có thể khám phá các mô hình ở nhiều mức độ trừu tượng khác nhau Mặt khác, các hệ thống cơ sở dữ liệu cũng nên cho phép người sử dụng xác định rõ các gợi ý chỉ dẫn hoặc làm tập trung việc tìm kiếm các mô hình thú vị Vì các mô hình có lẽ không nắm bắt được tất
cả dữ liệu trong cơ sở dữ liệu, nên một tiêu chuẩn do độ chắc chắn và độ tin cậy thường được gắn kết với từng mẫu được khám phá [5]
Các chức năng của khai phá dữ liệu được thể hiện thông qua các bước phân tích và xử lý dữ liệu bao gồm phân tích sự kết hợp và phân cụm, phân tích
và dự báo, Các phương pháp phân tích dùng để khai phá dữ liệu có thể được xem xét dưới đây
1.2.3.1 Phân tích luật kết hợp (Association Analysis)
Phân tích luật kết hợp là việc khám phá các luật kết hợp thể hiện các điều kiện giá trị thuộc tính xảy ra thường xuyên cùng nhau trên tập dữ liệu đã cho Phân tích luật kết hợp thường sử dụng trong các lĩnh vực phân tích về thương mại hay các giỏ hàng siêu thị (market basket) [5]
1.2.3.2 Phân cụm (Cluster Analysis)
Cách thức phân cụm dựa trên các đối tượng dữ liệu mà không cần tới nhãn lớp đã biết Các nhãn lớp không có mặt trong dữ liệu huấn luyện do chúng
Trang 15một cách đơn điệu phục vụ cho khai phá Các đối tượng được phân cụm dựa trên nguyên tắc làm “tăng tối đa sự giống nhau của một lớp và làm giảm thiểu sự khác nhau giữa các lớp” (maximizing the intraclass similarity and minimizing the interclass similarity) Các cụm đối tượng hình thành sao cho các đối tượng trong cùng một nhóm có sự giống nhau cao nhất còn các đối tượng khác nhau ở các cụm khác thì không giống nhau Mỗi cụm được hình thành có thể xem như
là một lớp các đối tượng, từ lớp các đối tượng thì các luật có thể được trích chọn Sự phân cụm cũng giúp cho các cách thức phân loại một cách dễ dàng và các thông tin được thu thập thành một hệ thống có thứ bậc [5]
1.2.3.3 Phân lớp và dự đoán (Classification and Prediction)
Một trong các phương pháp phân tích dữ liệu dùng trong khai phá dữ liệu
là phương pháp phân lớp và dự đoán
Phân lớp là quá trình lập một tập các mô hình hoặc các chức năng, nhiệm
vụ Quá trình phân lớp bao gồm mô tả và phân biệt các khái niệm và các lớp dữ liệu nhằm mục đích dự báo lớp đối tượng mà chúng ta không biết nhãn của nó
Mô hình của đối tượng được rút ra dựa trên sự phân tích một tập dữ liệu huấn luyện
Dự đoán là quá trình liên quan đến việc dự đoán giá trị dữ liệu và dự đoán nhãn của lớp Nó thường được sử dụng để dự đoán giá trị dữ liệu hơn là dự đoán nhãn lớp
Sự phân lớp và dự đoán cần phải được quyết định trước sau bằng những
sự phân tích thích hợp Điều này nhằm cố gắng nhận dạng và loại bỏ các thuộc tính không có tham gia vào quá trình phân lớp hoặc dự đoán
Trang 16Phân lớp
Data
Data
Data
Dữ liệu huấn luyện
Thuật toán phân lớp
Dữ liệu kiểm tra
Hình Quy trình phân lớp điển hình [9]
1.2.4 Phương pháp khai phá dữ liệu
Hiện nay, có nhiều phương pháp khai phá dữ liệu được sử dụng phụ thuộc vào cách tiếp cận như các phương pháp phân tích, tổng hợp dữ liệu lớn trên mô hình thống kê, mạng neural, lý thuyết tập thô hoặc tập mờ, biểu diễn tri thức,… Phương pháp khai phá dữ liệu so với một số phương pháp khai phá tri thức khác
có một số lợi thế là khai phá dữ liệu có thể sử dụng với các dữ liệu có nhiễu, dữ liệu không đầy đủ hoặc dữ liệu biến đổi liên tục
Trong phần này, trình bày một cách sơ lược về một số phương pháp khai phá dữ liệu thông dụng đang được sử dụng, đó là: phương pháp khai phá dữ liệu
sử dụng phân cụm (data mining with Clustering), phương pháp khai phá dữ liệu
sử dụng luật kết hợp (data mining with Association Rules), phương pháp khái phá dữ liệu sử dụng mạng neural (data mining with Neural Networks), phương pháp khai phá dữ liệu sử dụng thuật giải di truyền (Genetic Algorithm-GA), phương pháp khai phá dữ liệu sử dụng hệ chuyên gia, phương pháp khai phá dữ liệu sử dụng thống kê Các phương pháp này do không phải là trọng tâm của
Trang 17luận văn nên chỉ được trình bày một cách sơ lược về ý tưởng chứ không đi sâu vào chi tiết Riêng phương pháp khai phá dữ liệu sử dụng cây quyết định (data mining with Decision Tree) sẽ được trình bày chi tiết trong phần sau và đây cũng là phần trọng tâm của luận văn
1.2.4.1 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 có chất lượng cao hơn nhiều so với các dữ liệu trong CSDL, và chúng thường chỉ bao hàm được các trường hợp quan trọng Hơn nữa các chuyên gia sẽ xác nhận giá trị và tính hữu ích của các mẫu phát hiện được
1.2.4.2 Phương pháp thống kê
Đây là một trong nhưng nền tảng của lý thuyết khai phá dữ liệu, các cách thức sử dụng của phương pháp này là:
- Thông kê các dữ liệu, hoạt động hoàn toàn theo dữ liệu
- Cần có sự định hướng của người dùng để xác định nguồn gốc của dữ liệu cũng như nơi lưu trữ của dữ liệu
- Không sử dụng tri thức có sẵn về lĩnh vực cần khai phá,…
1.2.4.3 Phương pháp phân cụm
Phân cụm là kỹ thuật nhóm các mẫu dữ liệu tương tự nhau theo các đặc trưng của chúng Kỹ thuật này cho phép phân chia dữ liệu thành các cụm sao cho trong mỗi cụm sẽ có sự tương đồng theo một tiêu chuẩn nào đó Các luật ràng buộc giữa các thành viên trong cụm sẽ được xây dựng từ các mối quan hệ giữa chúng tùy thuộc vào mức độ “giống nhau” của các thành viên tham gia cụm trong đó số lượng các cụm có thể là không xác định trước Kỹ thuật phân cụm
có thể dùng các cách thức khác nhau như phân cụm từng phần hoặc phân cụm theo thứ bậc Kết quả thu được là các tập mẫu được trích chọn từ các cơ sở dữ
Trang 18liệu lớn và chúng có chung một số tính chất nào đó Kết quả này có thể coi đó chính là tri thức, là thông tin hữu ích để sử dụng hoặc tạo thành các tập dữ liệu
nhỏ hơn, dễ hiểu hơn,…[6]
1.2.4.4 Phương pháp luật kết hợp
Khai phá dữ liệu bằng phương pháp luật kết hợp xuất phát từ nhu cầu thực tiễn là để phân tích dữ liệu giao dịch trên thị trường, chẳng hạn phân tích các đặc tính đối với những mặt hàng có xu hướng được mua đồng thời,…
Khai phá luật kết hợp được hình thành từ việc quan sát, thống kê mức độ thường xuyên xảy ra đồng thời giữa các tập thuộc tính trong cơ sở dữ liệu nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở dữ liệu lớn Kết quả của kỹ thuật này là tập các luật kết hợp, chúng là một dạng biểu diễn tri thức có thể được sử dụng cho các hoạt động khác
1.2.4.5 Phương pháp mạng neural
Kỹ thuật khai phá dữ liệu sử dụng mạng neural ngày càng phổ biến và ứng dụng rộng rãi nhất là các ngành công nghiệp mở như nhận diện sổ sai tài chính, chuẩn đoán bệnh trong y học, nhận dạng các khách hàng sử dụng dịch vụ hoặc nhận dạng các thẻ giao dịch giả mạo,…[6] Phương pháp này dựa trên nền tảng toán học với khả năng huấn luyện được dựa theo mô hình thần kinh của con người
Khi cho một tập dữ liệu huấn luyện vào một hệ thống mạng, hệ thống mạng sẽ tự huấn luyện, tự điều chỉnh qua từng lớp mạng và cho dữ liệu kết quả đầu ra, các quá trình thực hiện có thể lặp đi lặp lại nhiều lần đến khi mạng học theo tập dữ liệu thành công
Huấn luyện dữ liệu bằng mạng neural sẽ cho ra các kết quả có ý nghĩa từ
cơ sở dữ liệu lớn ẩn chứa nhiều lỗi hoặc thiếu sót bên trong, tức là không phải
Trang 19tốn thời gian gia công nhiều trước khi đưa vào cho mạng học, đây là một vấn đề khó và phức tạp đối với các phương pháp khai thác khác
Một mạng neural hoạt động tốt sẽ có khả năng tự “học” qua các lần huấn luyện mà không cần sự can thiệp gì vào trong khi hệ thống đang làm việc, khả năng tự điều chỉnh này là một điểm mạnh so với các phương pháp khác của mạng nơron
Các kết quả của mạng có khả năng tạo ra các mô hình dự báo với độ chính xác cao và có khả năng phát hiện các xu hướng phức tạp mà con người cũng như các kỹ thuật thông thường không thể phát hiện được: Do có khả năng tạo ra được các mô hình có độ chính xác cao nên phương pháp này đáp ứng được các nhiệm vụ đặt ra của khai phá dữ liệu như phân lớp, dự báo, mô hình hóa,…
Tuy nhiên phương pháp này cũng có một số mặt yếu như việc chọn và xây dựng các hàm tính toán cho mạng để phù hợp với yêu cầu bài toán thường không đơn giản và việc chọn mô hình mạng cũng có thể gặp khó khăn, cũng như việc lựa chọn thời điểm để mạng dừng huấn luyện cũng không hề đơn giản Kết quả mà mạng cho ra thường không dễ hiểu đối với mọi người mà chỉ có ý nghĩa đối với các nhà chuyên môn Hơn nữa, về vấn đề thời gian, mạng hoạt động đòi hỏi phải có thời gian do phải huấn luyện dữ liệu nhiều lần, mà trong kinh tế thị trường đầy cạnh tranh thì đòi hỏi phải có những quyết định ngoài sự chính xác còn phải nhanh chóng kịp thời thì mới hiệu quả
1.2.4.6 Phương pháp thuật giải di truyền
Là phương pháp mô phỏng quá trình tiến hóa tự nhiên, ý tưởng của phương pháp này là dựa vào các quy luật chọn lọc, biến đổi và tiến hóa tự nhiên trong sinh học Với phương pháp này, tập dữ liệu ban đầu được gọi là các quần thể xuất phát, sau đó qua các thao tác giống như việc lai ghép, biến đổi và đột biến để thay đổi quần thể ban đầu Đối với phương pháp này, sự thích nghi của
dữ liệu được xác định bởi các hàm đánh giá-thích nghi theo từng giai đoạn Quá trình tiến hóa khiến cho dữ liệu có tính “thích nghi” ngày càng cao
Trang 201.2.4.7 Phương pháp Cây quyết định
Phương pháp Cây quyết định được coi là một công cụ mạnh và phổ biến
trong việc phân lớp (classifcation) và dự báo (prediction) dữ liệu, tức là các đối
tượng dữ liệu sẽ được phân thành các lớp hoặc là các giá trị dữ liệu chưa biết sẽ được dự đoán Trong phương pháp này, tri thức được mô tả dưới dạng đơn giản, trực quan, dễ hiểu đối với người sử dụng Tuy nhiên, nó đòi hỏi phải có một không gian nhất định để mô tả tri thức trong giới hạn có thể hiểu được của con người Phương pháp này sẽ được trình bày chi tiết trong Chương 3 Một số phương pháp xây dựng cây quyết định
1.2.5 Các kỹ thuật khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu bao gồm các kỹ thuật chính như sau:
Kỹ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Các kỹ thuật này gồm có: phân cụm (clustering), tóm tắt (summerization), trực quan hóa (visualiztion), phân tích sự phát triển và độ lệch (Evolution and deviation analyst), phân tích luật kết hợp (association rules)
1.2.5.1 Kỹ thuật khai phá dữ liệu dự đoán
Kỹ thuật này có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên
dữ liệu hiện thời Các kỹ thuật này gồm có: phân lớp (classification), hồi quy (regression)
1.2.5.2 Phân cụm dữ liệu
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không
Trang 21tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không có thầy Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế, có thể coi phân cụm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu
là học bằng ví dụ (learning by example) Trong phương pháp này bạn sẽ không thể biết kết quả các cụm thu được sẽ như thế nào khi bắt đầu quá trình Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web… Ngoài
ra phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lí cho các thuật toán khai phá dữ liệu khác
1.2.5.3 Phân lớp dữ liệu và hồi qui
Mục tiêu của phương pháp 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 phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình
và sử dụng mô hình để phân lớp dữ liệu:
- Bước 1: một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu
dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi là thuộc tính lớp Các mẫu dữ liệu này còn được gọi là tập
dữ liệu huấn luyện (training data set) Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có thầy (supervised learning) khác với phân cụm dữ liệu là học không có thầy (unsupervised learning)
- Bước 2: sử dụng mô hình để phân lớp dữ liệu Trước hết chúng ta phải tính độ chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai Phương pháp hồi qui khác với phân lớp dữ liệu ở chỗ, hồi qui dùng để dự đoán về các giá trị liên tục còn phân lớp dữ liệu thì chỉ dùng
để dự đoán về các giá trị rời rạc
Trang 221.2.5.4 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 CSDL 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
Các luật kết hợp là một dạng biểu diễn tri thức, hay chính xác là dạng mẫu của hình thành tri thức Phương pháp nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai phá
dữ liệu là tập các luật kết hợp tìm được
Nhược điểm cơ bản của phương pháp này là sự gia tăng nhanh chóng khối lượng tính toán và các thông số Tuy nhiên, với sự phát triển nhanh chóng và mạnh mẽ của phần cứng thì vấn đề này cũng được khắc phục
1.2.5.5 Khai phá dữ liệu sử dụng mạng Neural
Mạng Neural là một phương pháp khai phá dữ liệu phát triển dựa trên cấu trúc toán học với khả năng học trên mô hình hệ thần kinh con người
Mạng Neural có thể đưa ra ý nghĩa các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để chiết suất các mẫu và phát hiện xu hướng quá phức tạp mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện được
Một trong ưu điểm phải kể đến của mạng Neural là khả năng tạo ra các
mô hình dự đoán do độ chính xác cao, có thể áp dụng cho nhiều các bài toán khác nhau, đáp ứng được các nhiệm vụ đặt ra của khai phá dữ liệu như: phân lớp, phân nhóm, mô hình hoá, dự báo…
Mẫu chiết suất bằng mạng Neural được thể hiện bằng một trong những nút đầu của mạng Mạng Neural sử dụng các hàm số chứ không sử dụng các hàm biểu tượng để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của nó
Trang 23Đặc điểm của mạng Neural là không cần gia công dữ liệu nhiều, trước khi bắt đầu quá trình học như các kỹ thuật khác Tuy nhiên, để có thể sử dụng mạng Neural có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
- Mô hình mạng là gì?
- Mạng cần bao nhiêu nút?
- Số lớp ẩn sử dụng cho mạng là như thế nào?
- Khi nào thì việc học dừng?
Ngoài ra còn có nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu trước khi đưa vào mạng Neural để mạng có thể hiểu được
Mạng Neural được đóng gói với những thông tin trợ giúp của các chuyên gia đáng tin cậy và được họ đảm bảo các mô hình này làm việt tốt Sau khi học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa được học
1.2.5.6 Khai phá dữ liệu sử dụng thuật giải di truyền
Đây là phương pháp không chỉ thực hiện phát hiện tri thức mà còn phục
vụ rất nhiều bài toán khác Ví dụ bài toán tối ưu hoá hoặc lập lịch Tư tưởng của thuật toán là áp dụng quy luật của sự chọn lọc tự nhiên Người ta mô phỏng tập
dữ liệu ban đầu bằng ký tự nhị phân và gọi là những quần thể xuất phát Bằng các thao tác lai ghép, đột biến chúng ta biến đổi quần thể gene ban đầu và loại đi một số gene, làm cho số lượng gene trong quần thể là không thay đổi Một hàm thích nghi được xây dựng để xác định mức độ thích nghi ngày càng cao Về mặt
lý thuyết giải thuật di truyền cho ta lời giải tối ưu toàn cục (khác với phương pháp mạng Neural) Tuy nhiên, người ta cũng hạn chế lời giải với một mức độ thích nghi nào đó để hạn chế số lượng các bước xây dựng quần thể
Nói theo nghĩa rộng, giải thuật di truyền mô phỏng lại hệ thống tiến hoá trong tự nhiên, chính xác hơn là các giải thuật chỉ ra tập các cá thể được hình
Trang 24thà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 để loại bỏ
Giải thuật di truyền là một giải thuật tối ưu hoá, được sử dụng rất rộng rãi trong việc tối ưu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật mạng Neural Sự kết hợp của nó với các giải thuật khai phá dữ liệu ở chỗ tối ưu hoá là cần thiết để xác định các giá trị tham số nào tạo ra các luật tốt nhất
1.2.5.7 Khai phá dữ liệu sử dụng cây quyết định
Phân lớp khai phá dữ liệu luật là một cách tiếp cận quan trọng trong qusa trình khai phá dữ liệu, mục tiêu nhằm tạo ra một tập luật tương đối nhỏ có đọ đúng đắn cao từ cơ sở dữ liệu lớn Cây quyết định được cọi là phương pháp tiếp cận truyền thống cho phép phân lớp luật [16] Cây quyết định đưa ra cách tiếp cận heuristic nhằm tìm kiếm các thuộc tính tốt nhất và dẫn đến kết quả cao nhất Tuy nhiên, cây quyết định có một số hạn chế khi triển khai lựa chọn thuộc tính khi xây dựng cây Các hạn chế của cây quyết định là các trường hợp phân rã và tái tạo, vấn đề khi phân rã là khi cây quyết định cần phân chia dữ liệu nhiều lần
để có thể nhận biết được toàn bộ dữ liệu mẫu Vấn đề khi tái tạo là một cây con cần được xây dựng lại nhiều lần làm cho cây quyết định có độ sâu quá lớn và khó hiểu
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ủa các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc tính, các lá
mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với giá trị của thuộc tính của đối tượng tới lá
Quá trình xây dựng cây quyết định là quá trình phát hiện ra các luật phân chia dữ liệu đã cho thành các lớp đã được định nghĩa Trong thực tế, tập các cây quyết định có thể có đối với bài toán này rất lớn và rất khó có thể duyệt hết một cách tường tận
Trang 25Có nhiều phương pháp xây dựng cây quyết định khi khai phá dữ liệu, đó
là các phương pháp sử dụng các thuật toán CLS, ID3, C4.5,… và một phương pháp tương đối tiên tiến hiện nay và đang là tâm điểm được nghiên cứu là phương pháp xây dựng cây quyết định dựa trên phụ thuộc hàm
1.2.6 Các thách thức khi khai phá dữ liệu
Mặc dù các phương pháp được ứng dụng trong khai phá dữ liệu rất phong phú và đa dạng cho việc giải quyết các bài toán thực tế hiện nay Tuy nhiên vấn
đề này gặp không ít khó khăn và thách thức lớn từ việc chuẩn bị cho đến việc khai phá cũng như việc trình bày và sử dụng tri thức đã được tìm thấy
1.2.6.1 Khó khăn về cơ sở dữ liệu
Việc khai phá dữ liệu thường dựa trên một tập cơ sở dữ liệu lớn, các dữ liệu trong thực tế thường phức tạp, nhập nhằng, đa dạng, có tính chất thời gian, không đầy đủ hoặc nhiễu,… Ngoài ra, cơ sở dữ liệu có thể được lưu trữ phân tán, với số lượng thuộc tính và bản ghi quá đa dạng và phong phú dẫn đến độ phức tạp của bài toán quá lớn, không gian tìm kiếm rộng
Vấn đề dữ liệu phụ thuộc vào thời gian cũng gây không ít khó khăn khi khai phá, các dữ liệu này phụ thuộc vào thời gian và tính chất của dữ liệu thay đổi vào thời điểm quan sát hay khai phá nên tính đúng đắn hay tri thức khai phá được phụ thuộc vào thời điểm sử dụng Có những dữ liệu chỉ đúng trong từng thời điểm nhất định nên chính điều này có thể gây nên các hiệu ứng phụ khi khai phá dữ liệu
Một số khó khăn nữa khi khai phá dữ liệu liên quan đến cơ sở dữ liệu là các thuộc tính không phù hợp, các bộ giá trị không đầy đủ gây nên nhầm lẫn hoặc ảnh hưởng tới quá trình khai phá Đôi khi, các thuộc tính còn bị thiếu gây nên các giá trị của dữ liệu bị giảm
Trang 26Vấn đề nhập nhằng, không chắc chắn của dữ liệu cũng cần được quan tâm, với những dữ liệu dạng này gây nên sự phát sinh lỗi hoặc tri thức không đúng Mối quan hệ, liên quan giữa các thuộc tính cũng phải được xét đến, bộ thuộc tính hay giá trị có cấu trúc phân cấp, phân lớp hay có mối liên quan với nhau đôi khi cũng gây nên các lỗi trong cơ sở dữ liệu phục vụ khai phá
1.2.6.2 Một số vấn đề cần quan tâm
Khi khai phá dữ liệu, các vấn đề cần quan tâm nảy sinh từ khi bắt đầu đến khi sử dụng lại tri thức được khai phá, tuy vậy có một số vấn đề mà chúng ta cần quan tâm khi khai phá dữ liệu, đó là:
Sự quá khổ (overfitting): Điều này thường xuyên xảy ra đối với một hệ
thống khai phá dữ liệu Khi sử dụng thuật toán để đưa ra một mô hình kết quả rất có thể mô hình kết quả không phù hợp hoặc không có khả năng đáp ứng cho các tri thức dữ liệu dạng mới dẫn đến mô hình hoạt động không hiệu quả Để có thể khắc phục được sự quá khổ này, người ta thường dùng các thuật toán kiểm tra chéo kết hợp với một số nguyên tắc cụ thể như thống kê, dự đoán, cắt tỉa,…
Tính dễ hiểu của mô hình kết quả: Mô hình kết quả là đối tượng quan trọng nhất trong suốt quá trình khai phá dữ liệu, đây cũng là sản phẩm cuối cùng của quá trình khai phá Mô hình kết quả thu được phải dễ hiểu cho người sử dụng như được thể hiện dưới dạng đồ họa, trực quan, có cấu trúc đơn giản, dễ biểu diễn bởi ngôn ngữ tự nhiên hay các kỹ thuật quen thuộc,…
Sự tác động của người sử dụng tri thức vào các tri thức thu được: Vấn đề này là cốt yếu trong quá trình khai phá dữ liệu, đây là giai đoạn cuối cùng cũng như là mục đích cuối cùng của quá trình khai phá Những tri thức này được sử đụng để phân tích, dự đoán sự phân bố xác suất dữ liệu trước đó hay phục vụ cho một công đoạn khai phá ra tri thức mới hoặc hỗ trợ cho người sử dụng ra quyết định ngay trong lĩnh vực đó Hoặc chúng có thể được tổng hợp lại dưới dạng các báo cáo để hỗ trợ cho các quyết định khác nhau
Trang 271.2.7 Các yêu cầu khi khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực liên quan đến nhiều ngành khoa học khác [5] , đây có thể coi là nơi hội tụ của nhiều ngành khoa học khác nhau, bao gồm công nghệ cơ sở dữ liệu, thống kê, học máy, khoa học thông tin, trí tuệ nhân tạo và các ngành khác Hơn thế nữa, sự phụ thuộc vào phương pháp khai phá dữ liệu được sự đụng, các kỹ thuật từ các ngành khác có thể được áp dụng,
như các mạng nơron, lý thuyết tập mờ (fuzzy oi rough set theory), sự biểu diễn tri thức (knowledge representation), chương trình lôgic qui nạp (inductive logic-
programming), Tuỳ theo dạng dữ liệu được khai phá hoặc ứng dụng khai phá
dữ liệu đã cho, hệ thống khai phá dữ liệu cũng có thể tích hợp các kỹ thuật từ việc rút trích thông tin, nhận dạng mẫu, xử lý tín hiệu, xử lý ảnh, công nghệ
web, sinh tin học (bioinformatics), kinh tế
Do có nhiều dạng khác nhau của nhiều ngành tham gia vào việc khai phá
dữ liệu cho nên việc nghiên cứu về khai phá dữ liệu được mong đợi là làm sao tạo ra được một sự khác nhau lớn về các hệ thống khai phá dữ liệu
Vì thế việc phân lớp các hệ thống khai phá dữ liệu là cần thiết Sự phân lớp như thế có thể giúp những người đùng có khả năng phân biệt được các hệ thống khai phá dữ liệu và nhận ra được cái nào là quan trọng đối với các nhu cầu của họ Hệ thống khai phá dữ liệu có thể được phân lớp dựa theo nhiều tiêu chí
và yêu cầu khác nhau [5], như sau:
- Một hệ thống khai phá dữ liệu có thể được phân lớp dựa theo các dạng cơ
sở dữ liệu được khai phá Bản thân của các hệ thống khai phá dữ liệu này cũng có thể được phân lớp tiếp, dựa theo các tiêu chí khác nhau, như: các
mô hình hay dạng dữ liệu, hoặc các ứng dụng có liên quan Mỗi lớp như thế sẽ yêu cầu một kỹ thuật khai phá dữ liệu riêng cho chúng Ví dụ, phân lớp dựa theo các mô hình dữ liệu thì chúng ta có thể có hệ thống khai phá
dữ liệu quan hệ, giao dịch, hướng đối tượng, quan hệ đối tượng, hoặc kho
dữ liệu Còn nếu phân lớp dựa theo các dạng không gian của dữ liệu được vận dụng thì chúng ta có thể có hệ thống khai phá dữ liệu không gian, dữ
Trang 28liệu chuỗi thời gian, dữ liệu văn bản, hoặc hệ thống khai phá dữ liệu đa phương tiện hoặc một hệ thống khai phá world wide web
- Các hệ thống khai phá dữ liệu có thể được phân lớp dựa theo các dạng tri thức mà chúng khai phá Nghĩa là dựa trên các chức năng khai phá dữ liệu, như: sự mô tả, phân biệt, kết hợp, phân lớp, phân nhóm, phân tích dư thừa và phân tích tiến hóa Một hệ thống khai phá dữ liệu toàn diện thường cung cấp nhiều chức năng khai phá dữ liệu Ngoài ra, các hệ thống khai phá dữ liệu có thể được phân biệt dựa trên mức độ t rìu tượng của tri thức được khai phá, bao gồm tri thức tổng quát (có độ trừu tượng cao), tri thức cơ bản mức độ dữ liệu thô), hoặc tri thức ở đa mức độ (quan tâm đến nhiều mức độ trừu tượng) Một hệ thống khai phá dữ liệu nâng cao sẽ cho phép khai phá tri thức Ở đa mức độ trừu tượng
- Các hệ thống khai phá dữ liệu cũng có thể được phân lớp dựa theo các kỹ thuật khai phá dữ liệu cơ bản được sử dụng Các kỹ thuật này có thể được
mô tả dựa theo mức độ tương tác của người dùng được liên quan (ví dụ như: các hệ thống hoạt động độc lập, các hệ thống khảo sát tương tác, các
hệ thống điều khiển truy vấn) hoặc dựa vào các phương pháp phân tích dữ liệu được sử dụng ví dụ như: học máy, nhận biết mẫu, thống kê, mạng neural, ) Thường thì một hệ thống khai phá dữ liệu tinh vi sẽ chấp nhận
đa kỹ thuật khai phá dữ liệu hoặc một kỹ thuật tích hợp bằng cách kết nối
từ nhiều ưu điểm, thành quả của một vài phương pháp riêng lẻ khác
- Các hệ thống khai phá dữ liệu còn có thể được phân lớp dựa theo các ứng dụng được đưa vào
1.2.8 Đánh giá, kết luận
Khai phá dữ liệu là khâu cơ bản trong quá trình phát hiện tri thức từ dữ liệu Để thực hiện nhiệm vụ này người ta thường sử dụng nhiều phương pháp khác nhau từ các phương pháp hồi quy, tương quan, kiểm định giả thuyết,… là các phương pháp quen thuộc của phân tích thống kê đến các phương pháp mới
Trang 29mô phỏng quá trình học đối với các bài toán phân loại và xếp nhóm trên các mạng nơ ron nhân tạo, mô phỏng quá trình tiến hóa sinh học để xây dựng các giải thuật “di truyền” giải bài toán bằng các phép lai ghép, chọn lọc, trao đổi chéo, đột biến “bắt chước” các phép biến đổi gen trong sinh học, xây dựng cây quyết định để rút ra các luật quyết định chính xác hoặc các tri thức chính xác về một lĩnh vực nào đó Quá trình khai phá tri thức trên dữ liệu là một quá trình lâu dài và phức tạp nhằm nhận biết các mẫu hoặc mô hình ẩn chứa trong dữ liệu dựa trên các kỹ thuật thiết kế, tổng hợp, thăm dò, phân tích để phát hiện ra các mẫu
dữ liệu thích hợp từ đó hợp thức hóa các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện cho tập con mới của dữ liệu Có thể thấy rằng tại hầu hết các lĩnh vực từ đời sống, kinh tế, xã hội đến khoa học kỹ thuật,… đều cần các công nghệ khai phá dữ liệu hiện đại, hiệu quả nhằm tìm ra các tri thức từ một khối lượng lớn thông tin, dữ liệu Quá trình khai phá dữ liệu xuyên suốt qua nhiều giai đoạn từ xác định vấn đề, tiền xử lý (làm trong sáng dữ liệu, tổng hợp
dữ liệu, chuyển đổi dữ liệu,…), khai phá dữ liệu, đánh giá mẫu được khai phá đến trình bày tri thức được khai phá Trong các giai đoạn này thì giai đoạn tiền
xử lý dữ liệu là giai đoạn tốn thời gian nhất và giai đoạn khai phá dữ liệu là giai đoạn quan trọng nhất
Nhiệm vụ của khai phá dữ liệu là tìm ra các mẫu cần được quan tâm phù hợp với yêu cầu của đối tượng cần khai phá từ một khối lượng khổng lồ dữ liệu Các mẫu sau khi khai phá là tri thức nằm tiềm ẩn trong dữ liệu và có thể được khai phá từ nhiều mô hình cơ sở dữ liệu khác nhau như: cơ sở dữ liệu quan hệ,
cơ sở dữ liệu hướng đối tượng, cơ sở dữ liệu không gian,… hoặc từ các dạng lưu trữ thông tin khác như cơ sở dữ liệu đa phương tiện, cơ sở dữ liệu thời gian thực,…
Việc khai phá dữ liệu phù hợp và hiệu quả đối với các cơ sở dữ liệu lớn vẫn đang là nhu cầu và thách thức đối với các nhà khoa học
Trang 30CHƯƠNG 2 CÁC KHÁI NIỆM CƠ BẢN
Sự phân lớp và sự dự báo là hai dạng phân tích dữ liệu, chúng có thể được
sử dụng để rút trích ra các mô hình mô tả các lớp dữ liệu quan trọng hoặc là để
dự đoán các xu hướng dữ liệu tương lai
Trong khi sự phân lớp (classifcation) được dừng để dự đoán các nhãn rõ ràng, còn sự dự báo (prediction) được sử dụng để cho ra mô hình từ các hàm giá
trị liên tục [5] Sự dự báo có thể được xem như sự xây dựng và sử dụng một mô hình để truy cập tới lớp mẫu không có nhãn, hoặc để truy cập các giá trị hoặc vùng giá trị của một thuộc tính, đây là các giá trị được mong đợi có mặt trong mẫu đã cho
Với cách nói này, thì sự phân lớp và sự hồi qui (classifcation and
regression) là hai dạng cơ bản của các vấn đề dự đoán, trong khi sự phân lớp
được sử dụng để dự đoán các giá trị được định danh hoặc các giá trị rời rạc, còn
sự hồi qui thì được sử dụng để dự đoán các giá tri liên tục hoặc có thứ tự Tuy nhiên, trong khai phá dữ liệu người ta thường chấp nhận: sự phân lớp dùng để
dự đoán các nhãn lớp, còn sự dự đoán dùng để tiên đoán các giá trị liên tục (như việc sử dụng kỹ thuật hồi qui) [5]
Trong chương này và chương 3 sau đây, chúng ta sẽ nghiên cứu kỹ thuật phân lớp dữ liệu cơ bản đó là cơ sở dữ liệu quan hệ, các tính chất của cơ sở dữ
Trang 31liệu quan hệ, phụ thuộc hàm xấp xỉ và phân lớp bằng cây quyết định, một số phương pháp xây dựng cây quyết định và đây cũng chính là trọng tâm của luận văn
2.1.1.2 Cây quyết định
Cây quyết định là một kiểu mô hình dự báo (predictive model), nghĩa là
một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng
Cây quyết định có cấu trúc hình cây và là một sự tượng trưng của một phương thức quyết định cho việc xác định lớp các sự kiện đã cho Mỗi nút của cây chỉ ra một tên lớp hoặc một phép thử cụ thể, phép thử này chia không gian các dữ liệu tại nút đó thành các kết quả có thể đạt được của phép thử Mỗi tập con được chia ra là không gian con của các dữ liệu được tương ứng với vấn đề con của sự phân lớp Sự phân chia này thông qua một cây con tương ứng Quá trình xây dựng cây quyết định có thể xem như là một chiến thuật chia để trị cho
sự phân lớp đối tượng [10][11] Một cây quyết định có thể mô tả bằng các khái niệm nút và đường nối các nút trong cây
Mỗi nút của cây quyết định có thể là:
- Nút lá (leaft node) hay còn gọi là nút trả lời (answer node), nó biểu thị
cho một lớp các trường hợp, nhãn của nó là tên của lớp
- Nút không phải là lá (non-leaf node) hay còn gọi là nút trong (inner
node), nút này xác định một phép thử thuộc tính (attribute test), nhãn của
nút này có tên của thuộc tính và sẽ có một nhánh (hay đường đi) nối nút
này đến cây con (sub-tree) ứng với mỗi kết quả có thể có của phép thử
Nhãn của nhánh này chính là giá trị của thuộc tính đó Nút không phải lá
nằm trên cùng là nút gốc (root node)
Một cây quyết định sử dụng để phân lớp dữ liệu bằng cách bắt đầu đi từ nút gốc của cây và đi xuyên qua cây theo các nhánh cho tới khi gặp nút lá, khi
đó ta sẽ được lớp của dữ kiện đang xét
Trang 32Ví dụ: Giả sử ta có tập huấn luyện như sau:
Bảng 2.1.1.1 Tập mẫu dữ liệu huấn luyện về cán bộ, công chức
Cây quyết định được xây dựng từ tập dữ liệu chuẩn đã cho ở bảng 2.1.1.1, bảng dữ liệu này được thu thập ở Viện Khoa học và Công nghệ Việt Nam về các cán bộ, công chức, viên chức đang làm việc tại Viện Tập dữ liệu này gồm các
Trang 33thuộc tính tuổi, bảo vệ luận án ở nước ngoài, ngạch công chức, học vị Các thuộc tính này được gọi là các thuộc tính ứng viên hay còn gọi là các thuộc tính kiểm tra và thuộc tính chức danh là thuộc tính lớp hay thuộc tính quyết định Cây quyết định cho trường hợp này như sau:
Học vị Tuổi
Tiến sĩ
Không
Thạc sĩ Trung bình
<30 30 - 40 >40
Bảng 2.1.1.1 Cây quyết định về việc có chức danh của cán bộ, viên chức Tóm lại, cây quyết định thường được dùng để mô tả tri thức dưới dạng đơn giản, dễ hiểu và gần gũi với con người từ tập dữ liệu lớn, phức tạp Nó phân chia các đối tượng dữ liệu thành các lớp, tên của các lớp là các nhãn của các nút
lá, nhãn của các nút trong là tên của các thuộc tính còn nhãn của các nhãnh chính là giá trị của các thuộc tính Việc xây dựng cây quyết định thông thường thông qua các bước xây dựng, cắt tỉa và đánh giá
2.1.2 Xây dựng cây quyết định
Quá trình xây dựng cây quyết định được thực hiện bằng cách chia đệ quy tập dữ liệu mẫu cho tới khi mọi nút lá đều thuất nhất Thuần nhất có nghĩa là sao cho tất cả các mẫu dữ liệu ở cùng một lớp
Nếu các nút là là không thuần nhất, cần thiết phải được kiểm tra để tìm ra phép tách tốt nhất Thuộc tính được lựa chọn sau kiểm tra sẽ được gán nhãn cho nút tách đó và tập dữ liệu sẽ được chia ra thêm nữa theo các giá trị của thuộc tính
Trang 342.1.3 Cắt tỉa cây quyết định
Bước cắt tỉa cây quyết định được sử dụng để tối ưu hóa cây thu được sau khi xây dựng bao gồm: tối ưu về độ lớn của cây và tối ưu về độ chính xác của sự phân lớp bằng cách cắt tỉa các nhánh không phù hợp Thông thường cây được sinh ra sẽ hoạt động tốt trên tập huấn luyện nhưng có thể hoạt động không chính xác đối với tập dữ liệu ẩn hoặc không nhìn thấy được Các dữ liệu này là các dữ liệu bị nhiễu hoặc thiếu trong tập huấn luyện Bước cắt tỉa nhằm mục tiêu cố gắng loại bỏ các nhánh bị lỗi khỏi cây và giữ lại độ chính xác của phân lớp
2.1.4 Đánh giá cây quyết định
Tại bước này, độ chính xác của cây kết quả được xác định thông qua sử dụng một tập dữ liệu không nhìn thấy độc lập Cây được áp dụng cho từng dữ liệu vào và nhãn của lớp đã được dự đoán trước so sánh với nhãn lớp thực tế Vì thế, tiêu chuẩn để đánh giá là số các mẫu được phân lớp chính xác
Có rất nhiều phương pháp xây dựng cây quyết định, để có cái nhìn tổng quan nhất chúng ta có thể xem xét các thuật toán này một cách kỹ càng hơn ở chương sau
2.2 CƠ SỞ DỮ LIỆU QUAN HỆ
2.2.1 Quan hệ
Định nghĩa 1.1 (Tệp dữ liệu)
Một tệp dữ liệu là một tệp bao gồm nhiều bản ghi (record) có cùng một cấu trúc xác định loại bản ghi, đồng thời các bản ghi lại được phân chia thành các trường dữ liệu (field)
Trong thực tế, một tệp dữ liệu có thể được coi như là các bảng được lưu trữ ở các phương tiện lưu trữ khác nhau như trên ổ cứng, đĩa từ, bằng từ hoặc trên các cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu,…
Trang 35Định nghĩa 1.2 (Khái niệm quan hệ)
Cho R = {a1, ,an}là một tập hữu hạn và không rỗng các thuộc tính Mỗi thuộc tính ai có một miền giá trị là Dai Khi đó r là một tập các bộ {hi, ,hm} được gọi là quan hệ trên R với hj (j=1, ,m) là một hàm:
Trong đó, hj(ai) là các giá trị của từng thuộc tính (i=1 n; j=1 m)
2.2.2 Cơ sở dữ liệu quan hệ
Một cơ sở dữ liệu thông thường bao gồm một tập các quan hệ được gọi là
cơ sở dữ liệu quan hệ Đối với người sử dụng, một cơ sở dữ liệu quan hệ là một
cơ sở dữ liệu bao gồm các bảng thay đổi theo thời gian
Khi sử dụng một cơ sở dữ liệu quan hệ, các thao tác cơ bản và quan trọng nhất là: tạo quan hệ mới, cập nhật dữ liệu và cuối cùng là khai thác dữ liệu
Chức năng quan trọng nhất của cơ sở dữ liệu là khai thác dữ liệu từ dữ liệu được lưu trữ Các vấn đề liên quan đến khai thác dữ liệu luôn đi đôi với việc lưu trữ dữ liệu một cách hiệu quả
Trang 362.2.3 Đại số quan hệ
Khi nói đến cơ sở dữ liệu quan hệ thì đại số quan hệ đóng vai trò hết sức quan trọng Người đặt nền móng và đưa ra những đóng góp quan trọng trong việc phát triển đại số quan hệ có thể nói là E.F Codd [6] Đại số quan hệ cung cấp các phép toán tác động trên các quan hệ và cho kết quả cũng là các quan hệ Các phép toán đó là phép toán hợp, phép toán giao, phép hiệu, phép toán tích Descartes, phép chọn, phép chiếu, phép kết nối và phép chia
Ở đây, chúng ta giả sử các phép toán này đã quen thuộc
2.2.4 Phụ thuộc hàm
2.2.4.1 Định nghĩa
a Khái niệm phụ thuộc hàm
Cho R = {a1, ,an}là tập các thuộc tính, r = {h1, ,hm}là một quan hệ trên R, A,BR
Khi đó chúng ta nói A xác định hàm cho B hay B phụ thuộc hàm vào A trong r
Ký hiệu:
B r
f
nếu(hi,hjr)(((aA)(hi(a)=hj(a))(((bB)(hi(b)=hj(b)))
b Họ đầy đủ các phụ thuộc hàm của một quan hệ
Giả sử r là một quan hệ trên R Họ đầy đủ các phụ thuộc hàm của r được ký hiệu Fr sao cho: