Khai phá dữ liệu TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘIKHOA CÔNG NGHỆ THÔNG TINSINH VIÊN NGHIÊN CỨU KHOA HỌC ĐỀ TÀI:
KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNHGiảng viên hướng dẫn: T.S Hồ Cẩm HàSinh viên thực hiện : Nguyễn Thị HạnhLớp : K54C- CNTT
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học HÀ NỘI -2008LỜI CẢM ƠNTrước tiên em xin được gửi lời cảm ơn chân thành tới các thầy cô giáo trong khoa Công nghệ thông tin - Trường đại học sư phạm Hà Nội đã tần tình giúp đỡ và giảng dạy cho chúng em trong những năm học vừa qua. Đặc biệt, em xin gửi lời cảm ơn chân thành nhất tới cô giáo - T.S Hồ Cẩm Hà cùng các thầy cô giáo trong tổ bộ môn Hệ thống thông tin đã tận tình hướng dẫn, giúp đỡ em hoàn thành đề
tài nghiên cứu khoa học này.Trong thời gian vừa qua mặc
dù em đã cố gắng rất nhiều để hoàn thành tốt đề
tài nghiên cứu khoa học của mình. Song chắc chắn kết quả nghiên cứu sẽ không tránh khỏi những thiếu sót, vì vậy em kính mong nhận được sự chỉ bảo và góp ý của quý thầy cô và các bạn. Em xin chân thành cám ơn!Ký tênHạnh Nguyễn Thị HạnhSinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 2
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học MỤC LỤCLỜI MỞ ĐẦU . 5 Chương 1: Tổng quan về
khai phá dữ liệu 6 Khám
phá tri thức và
khai phá dữ liệu là gì? 6 Quá trình phát hiện tri thức 6 Hình thành và định nghĩa bài toán . 7 Thu thập và tiền xử lý
dữ liệu 7
Khai phá dữ liệu và rút ra các tri thức . 8 Phân tích và kiểm định kết quả 8 Sử dụng các tri thức phát hiện được . 8 Quá trình
khai phá dữ liệu . 9 Gom
dữ liệu (gatherin) . 9 Trích lọc
dữ liệu (selection) . 9 Làm sạch và tiền xử lý
dữ liệu (cleansing preprocessing). . 9 Chuyển đổi
dữ liệu (transformation) 10 Phát hiện và trích mẫu
dữ liệu ( pattern extraction and discovery) 10 Đánh giá kết quả mẫu (evaluation of result ) 10 Chức năng của
khai phá dữ liệu . 10 Các kỹ thuật
khai phá dữ liệu 11 Phân lớp
dữ liệu: 11 Phân cụm
dữ liệu: 11
Khai phá luật kết hợp: . 11 Hồi quy: 12 Giải thuật di truyền: 12 Mạng nơron: . 12 Cây quyết định. 12 Các dạng
dữ liệu có thể
khai phá được 13 Các lĩnh vực liên quan đến
title='ứng dụng của khai phá dữ liệu'>khai phá dữ liệu và ứng dụng của khai phá dữ liệu 13 Các lĩnh vực liên quan đến phát hiện tri thức và
khai phá dữ liệu 13 Ứng dụng của
khai phá dữ liệu . 13 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. . 14 Chương 2:
Khai phá dữ liệu bằng cây quyết định 15 Cây quyết định . 15 Định nghĩa cây quyết định . 15 Ưu điểm của cây quyết định 16 Vấn đề xây dựng cây quyết định . 16 Rút ra các luật từ cây quyết định. 16 Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 3
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học Các
title='thuật toán khai phá dữ liệu'>thuật toán khai phá dữ liệu bằng cây quyết định . 17 Thuật toán CLS 17 Thuật toán ID3 . 18 Thuật toán C4.5 . 20 Thuật toán SLIQ[5] 23 Cắt tỉa cây quyết định 26 Đá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: Xây dựng chương trình dêmo 30 Mô tả bài toán 30 Thu thập và tiền xử lý
dữ liệu 30 Chương trình . 31 Chương 4. KẾT LUẬN 32 4.1 Đánh Giá 32 4.1.1 Lý thuyết . 32 4.1.2 Ứng dụng 32 4.2 Hướng Phát Triển 32
TÀI LIỆU THAM KHẢO . 32
Tài liệu tiếng Việt . 32
Tài liệu tiếng Anh . 33 Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 4
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học LỜI MỞ ĐẦUTrong nhiều năm qua, cùng với sự phát triển của công nghệ thông tin và ứng dụng của công nghệ thông tin trong nhiều lĩnh vực của đời sống xã hội, thì lượng
dữ liệu được các cơ quan thu thập và lưu trữ ngày một nhiều lên. Người ta lưu trữ những
dữ liệu này vì cho rằng nó ẩn chứa những giá trị nhất định nào đó. Tuy nhiên theo thống kê thì chỉ có một lượng nhỏ của những
dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì và có thể làm gì với những
dữ liệu này, nhưng họ vẫn tiếp tục thu thập và lưu trữ vì hy vọng những
dữ liệu này sẽ cung cấp cho họ những thông tin quý giá một cách nhanh chóng để đưa ra những quyết định kịp thời vào một lúc nào đó. Chính vì vậy, các phương pháp quản trị và
khai thác cơ sở
dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là Kỹ thuật phát hiện tri thức và
khai phá dữ liệu (KDD - Knowledge Discovery and Data Mining). Kỹ thuật phát hiện tri thức và
khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau trên thế giới,
tại Việt Nam kỹ thuật này còn tương đối mới mẻ tuy nhiên cũng đang được nghiên cứu và bắt đầu đưa vào một số ứng dụng thực tế. Vì vậy, hiện nay ở nước ta vấn đề phát hiện tri thức và
khai phá dữ liệu đang thu hút được sự quan tâm của nhiều người và nhiều công ty phát triển ứng dụng công nghệ thông tin. Trong phạm vi đề
tài nghiên cứu khoa học này của em, em sẽ trình bày những nội dung sau:Chương 1: Tìm hiểu những kiến thức tổng quan về khám
phá tri thức và
khai phá dữ liệu.Chương 2: Nghiên cứu kỹ thuật
khai phá dữ liệu bằng cây quyết định.Chương 3: Xây dựng ứng dụng demo cho kỹ thuật
khai phá dữ liệu bằng cây quyết định Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 5
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học Chương 1: Tổng quan về
khai phá dữ liệuKhám
phá tri thức và
khai phá dữ liệu là gì?Phát hiện tri thức (Knowledge Discovery ) trong các cơ sở
dữ liệu là một qui 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: hợp thức, mới, khả ích, và có thể hiểu được [4]. Còn
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".Nói 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 thụât toán
khai thác
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 [4].Quá trình phát hiện tri thứcQuá trình khám
phá tri thức được tiến hành qua 5 bước sau [5]:Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 6
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học Hình 1.1. Quá trình khám
phá tri thứcHì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. Thu thập và tiền xử lý
dữ liệuTrong 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ợp2. 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.Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 7
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học 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.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. 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.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. Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 8
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học
title='quá trình khai phá dữ liệu'>Quá trình khai phá dữ liệuKhai 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 [1]: Hình 1.2. Quá trình
khai phá dữ liệuQuá 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: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. 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ộtsố tiêu chuẩn nào đó. 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 Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 9
Trường đại học sư phạm Hà Nội Sinh viên nghiên cứu khoa học mắc phải trong khi gom
dữ liệu là
dữ liệu không đầy
đủ hoặc không thống nhất, thiếu chặt chẽ. Vì vậy
dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối
dữ liệu. Ví
dụ Sinh viên có tuổi=200. Giai đoạn thứ ba này nhằm xử lý các
dữ liệu như trên(dữ
liệu vô nghĩa,
dữ liệu không có khả năng kết nối). Những
dữ liệu dạng này thường được xem là thông tin
dư thừa, không có giá trị. Bởi vậy đây là một quá trình rất quan trọng. Nếu
dữ liệu không được làm sạch- tiền xử lý - chuẩn bị trước thì sẽ gây nên những kết quả sai lệch nghiêm trọng về sau. 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.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ự.Đánh giá kết quả mẫu (evaluation of result )Đây là giai đoạn cuối cùng trong quá trình
khai phá dữ liệu, ở giai đoạn này các mẫu
dữ liệu được chiết xuất ra bởi phần mềm
khai phá dữ liệu. Không phải mẫu
dữ liệu nào cũng hữu ích, đôi khi nó còn bị sai lệch. Vì vậy cần phải đưa ra nhữ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.Chức năng của
title='khai phá dữ liệu'>khai phá dữ liệuKhai 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ả.Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT 10
[...]...
Các dạng
dữ liệu có thể
khai phá được 13
Các lĩnh vực liên quan đến
title='các ứng dụng của khai phá dữ liệu'>khai phá dữ liệu và ứng dụng của khai phá dữ liệu 13
Các lĩnh vực liên quan đến phát hiện tri thức và
khai phá dữ liệu 13
Ứng dụng của
khai phá dữ liệu 13
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.
14
Chương 2:
Khai phá dữ liệu bằng cây quyết định 15
Cây quyết định 15
Định nghĩa cây quyết...
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).
Q trình này gồm có 6 bước [1]:
Hình 1.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. .. đổi
dữ liệu (transformation) 10
Phát hiện và trích mẫu
dữ liệu ( pattern extraction and discovery) 10
Đánh giá kết quả mẫu (evaluation of result ) 10
Chức năng của
khai phá dữ liệu 10
Các kỹ thuật
khai phá dữ liệu 11
Phân lớp
dữ liệu: 11
Phân cụm
dữ liệu: 11
Khai
phá luật kết hợp: 11
Hồi quy: 12
Giải thuật di truyền: 12
Mạng nơron: 12
Cây quyết định. 12
Các dạng
dữ liệu có thể
khai phá. .. cách hiệu quả. Tạo ra
tương tác người sử dụng tốt, giúp người sử dụng tham gia điều khiển quá trình
khai
phá
dữ liệu, định hướng hệ thống
khai phá dữ liệu trong việc phát hiện các mẫu
đáng quan tâm. Tích hợp
khai phá dữ liệu vào trong các hệ cơ sở
dữ liệu. Ứng dụng
khai
phá dữ liệu để
khai phá dữ liệu web trực tuyến. Một vấn đề quan trọng trong
Sinh viên: Nguyễn Thị Hạnh – Lớp: C-K54-CNTT
14
...
Khám
phá tri thức và
khai phá dữ liệu là gì? 6
Quá trình phát hiện tri thức 6
Hình thành và định nghĩa bài toán 7
Thu thập và tiền xử lý
dữ liệu 7
Khai
phá dữ liệu và rút ra các tri thức 8
Phân tích và kiểm định kết quả 8
Sử dụng các tri thức phát hiện được 8
Quá trình
khai phá dữ liệu 9
Gom
dữ liệu (gatherin) 9
Trích lọc
dữ liệu (selection) 9
Làm sạch và tiền xử lý
dữ liệu (cleansing preprocessing).... Nội dung của quá trình như sau:
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.
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 đó.
Làm sạch và tiền xử lý
dữ liệu (cleansing preprocessing).
Giai... 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... 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 hố (Visualization), phân tích sự phát...
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.
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.
... 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 . đến khai phá dữ liệu và ứng dụng của khai phá dữ liệuCác lĩnh vực liên quan đến phát hiện tri thức và khai phá dữ liệuPhát hiện tri thức và khai phá dữ liệu. 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ữ