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
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
Lớp: Khoa học máy tính 3 Khóa: 4
Hà Nội, Tháng 3 năm 2013
Trang 2LỜI MỞ ĐẦU
Trong thời đại ngày nay, yếu tố quyết định thành công trong mọi lĩnh vực luôn gắn liền với việc nắm bắt, thống kê và khai thác thông tin hiệu quả Dữ liệu ngày càng lớn nên việc tìm ra những thông tin tiềm ẩn trong chúng càng khó khăn hơn
Khai phá tri thức là một lĩnh vực nghiên cứu mới, mở ra một thời kỳ trong việc tìm ra thông tin hữu ích Nhiệm vụ cơ bản của lĩnh vực này là khai phá tri thức trong
cơ sở dữ liệu, khai phá dữ liệu trong cơ sở dữ liệu không phải là một hệ thống phân tích tự động mà là một quá trình tương tác thường xuyên giữa con người với cơ sở dữ liệu được sự trợ giúp của nhiều phương pháp và công cụ tin học
Em xin bày tỏ sự biết ơn sâu sắc của mình tới Ths Trần Hùng Cường người đã trực tiếp hướng dẫn, chỉ bảo tận tình, cung cấp tài liệu và phương pháp nghiên cứu khoa học để em hoàn thành bản luận văn này Em xin gửi lời cảm ơn tới các thầy cô giáo đã dạy dỗ trong quá trình em theo học tại Trường
Trong suốt quá trình nghiên cứu, mặc dù đã hết sức cố gắng nhưng chắc chắn bài luận không tránh khỏi những thiếu sót, rất mong quý thầy cô góp ý để luận văn được hoàn chỉnh hơn
Em xin chân thành cảm ơn!
Ký tên Nguyện
Nguyễn Bá Nguyện
Trang 3TÓM TẮT NỘI DUNG
Nội dung luận văn em xin trình bày bao gồm ba chương:
Chương một: giới thiệu chung về công nghệ khai phá trí thức, các khái niệm cơ bản, ý nghĩa và tầm quan trọng của việc khai phá tri thức
Chương hai: trình bày các phương pháp khai phá dữ liệu bằng cây quyết định, khái niệm cơ bản về cây quyết định, các thuật toán xây dựng cây quyết định: CLS, ID3, C4.5, rút gọn các luật quyết định và đánh giá các thuật toán xây dựng cây quyết định Chương ba: cài đặt chương trình hỗ trợ ra quyết đinh bằng cây quyết đinh dựa trên
thuật toán C4.5
Trang 4MỤC LỤC
LỜI MỞ ĐẦU 2
TÓM TẮT NỘI DUNG 3
MỤC LỤC 4
DANH SÁCH HÌNH VẼ 6
PHẦN MỞ ĐẦU 7
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ TRI THỨC 8
1.1 Phát hiện tri thức và khai phá dữ liệu 8
1.2 Quá trình phát hiện tri thức từ cơ sở dữ liệu 8
1.2.1 Hình thành và định nghĩa bài toán 9
1.2.2 Thu thập và xử lý dữ liệu 9
1.2.3 Khai thác dữ liệu và rút ra tri thức 10
1.2.4 Phân tích và đánh giá tri thức 10
1.2.5 Sử dụng tri thức phát hiện được 10
1.3 Khai phá dữ liệu 11
1.3.1 Các quan niệm về khai phá dữ liệu 11
1.3.2 Quá trình khái phá dữ liệu 12
1.3.3 Kiến trúc của hệ thống khai phá dữ liệu 14
1.4 Các kỹ thuật khai phá dữ liệu 15
1.4.1 Phân lớp dữ liệu 15
1.4.2 Phân cụm dữ liệu 16
1.4.3 Cây quyết định 16
1.4.4 Luật kết hợp 16
1.4.5 Hồi quy 16
1.4.6 Mạng Nơron 16
1.4.7 Giải thuật di truyền 17
Trang 5CHƯƠNG 2: CÁC PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU BẰNG CÂY
QUYẾT ĐỊNH 18
2.1 Cây quyết định 18
2.1.1 Giới thiệu 18
2.1.2 Các kiểu cây quyết định 18
2.1.3 Ưu điểm của cây quyết định 19
2.1.4 Phân lớp dữ liệu bằng cây quyết định 19
2.1.5 Xây dựng cây quyết định 21
2.1.6 Rút ra luật từ cây quyết định 22
2.2 Các thuật toán xây dựng cây quyết định 22
2.2.1 Thuật toán CLS 22
2.2.2 Thuật toán ID3 23
2.2.3 Thuật toán C4.5 25
2.2.4 Cắt tỉa cây quyết định 31
2.2.5 Đánh giá và kết luận về các thuật toán xây dựng cây quyết định 33
CHƯƠNG 3: CẶT ĐẶT CHƯƠNG TRÌNH KHAI PHÁ DỮ LIỆU SỬ DỤNG CÂY QUYẾT ĐỊNH 36
3.1 Bài toán thực tế 36
3.2 Cài đặt thuật toán 36
3.3 Hình ảnh demo 40
KẾT LUẬN 44
TÀI LIỆU THAM KHẢO 45
Trang 6DANH SÁCH HÌNH VẼ
Hình 1 1 Quá trình khai phá dữ liệu từ cơ sở dữ liệu 9
Hình 1 2 Quá trình khai phá dữ liệu 12
Hình 1 3 Kiến trúc của một hệ thống khai phá dữ liệu 14
Hình 2 1: Cây quyết định phân lớp mức lương 18
Hình 2 2 Xây dựng mô hình 20
Hình 2 3 Sử dụng mô hình 21
Hình 3 1 Giao diện khi mở chương trình 40
Hình 3 2 Load dữ liệu và tạo cây quyết định 41
Hình 3 3 Tiến hành cắt tỉa cây 42
Hình 3 4 Hình ảnh của cây quyết định 42
Hình 3 5 Rút ra luật từ cây quyết định 43
Hình 3 6 Phân tích dữ liệu mới 43
Trang 7PHẦN MỞ ĐẦU
Trong 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: Giới thiệ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
Trang 8CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ KHAI PHÁ TRI THỨC
1.1 Phát hiện tri thức và khai phá dữ liệu
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
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
1.2 Quá trình phát hiện tri thức từ cơ sở dữ liệu
Quá trình phát hiện tri thức có thể chia thành các bước như sau:
Trang 91.2.1 Hình thành và định nghĩa bài toán
Đây là bước tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này sẽ quyết định cho việc rút ra những tri thức hữu ích, đồng thời lựa chọn các phương pháp khai phá dữ liệu thích hợp với mục đích của ứng dụng và bản chất của dữ liệu
1.2.2 Thu thập và xử lý dữ liệu
Trong bước này dữ liệu được thu thập ở dạng thô (nguồn dữ liệu thu thập có thể
là từ các kho dữ liệu hay nguồn thông tin internet) Trong giai đoạn này dữ liệu cũng được tiền xử lý để biến đổi và cải thiện chất lượng dữ liệu cho phù hợp với phương pháp khai phá dữ liệu được chọn lựa trong bước trên
Bước này thường chiếm nhiều thời gian nhất trong quá trình khám phá tri thức Các giải thuật tiền xử lý dữ liệu bao gồm :
1 Xử lý dữ liệu bị mất/ thiếu: Các dạng dữ liệu bị thiếu sẽ được thay thế bởi các giá trị thích hợp
2 Khử sự trùng lắp: các đối tượng dữ liệu trùng lắp sẽ bị loại bỏ đi Kỹ thuật này không được sử dụng cho các tác vụ có quan tâm đến phân bố dữ liệu
Sử dụng tri thức phát hiện được
Hình 1 1 Quá trình khai phá dữ liệu từ cơ sở dữ liệu
Trang 103 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
1.2.3 Khai thác dữ liệu và rút ra 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
1.2.4 Phân tích và đánh giá tri thức
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
1.2.5 Sử dụng 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á trithức có thể được lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện
Trang 111.3 Khai phá dữ liệu
1.3.1 Các quan niệm về khai phá dữ liệu
Khai phá dữ liệu là tập hợp các thuật toán nhằm chiết xuất những thông tin có ích từ kho dữ liệu khổng lồ
Khai phá dữ liệu được định nghĩa như một quá trình phát hiện mẫu trong dữ liệu, quá trình này có thể là tự động hay bán tự động, song phần nhiều là bán tự động Các mẫu được phát hiện thường hữu ích theo định nghĩa:các mẫu mang lại cho người sử dụng một lợi thế nào đó, thường là lợi ích về kinh tế
Khai phá dữ liệu giống như quá trình tìm ra và mô tả mẫu dữ liệu Dữ liệu như
là một tập hợp các vật hay sự kiện, còn đầu ra của quá trình khai phá dữ liệu thường như là những dự báo của các vật hay các sự kiện mới
Khai phá dữ liệu được áp dụng trong các cơ sở dữ liệu quan hệ, giao dịch, cơ sở
dữ liệu không gian, cũng như các kho dữ liệu phi cấu trúc, mà điển hình là World Wide Web
Khám phá tri thức là quá 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 chất: Đúng đắn, mới, khả ích và có thể hiểu được Khai phá dữ liệu
là một bước trong quá trình khám phá tri thức bao gồm các thuật toán khai phá dữ liệu chuyên dùng dưới một số quy định về hiệu quả tính toán chấp nhận được để tìm
ra các mẫu và các mô hình trong dữ liệu
Như vậy, mục đích của khám phá tri thức và khai phá dữ liệu là tìm ra các mẫu hoặc mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị khuất bởi số lượng dữ liệu khổng lồ Nhiệm vụ của khai phá dữ liệu
Trang 121.3.2 Quá trình khái phá dữ liệu
Hình 1 2 Quá trình khai phá dữ liệu
1.3.2.1 Gom dữ liệu (gatherin)
Tập hợp dữ liệu là bước đầu tiên trong khai phá dữ liệu Bước này lấy dữ liệu
từ trong một cơ sở dữ liệu, một kho dữ liệu, thậm chí dữ liệu từ những nguồn cung ứng web
1.3.2.2 Trích lọc dữ liệu (selection)
Ở giai đoạn này dữ liệu được lựa chọn và phân chia theo một số tiêu chuẩn nào đó
1.3.2.3 Làm sạch và tiền xử lý dữ liệu (cleansing prepocessing)
Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình khai phá dữ liệu Một số lỗi thường mắc phải 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à
Trang 13mộ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
1.3.2.4 Chuyển đổi dữ liệu (tranformation)
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
1.3.2.5 Phát hiện và trích mẫu dữ liệu (pattern extraction and discovery)
Đây là bước tư duy trong khai phá dữ liệu Ở trong giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật toán thường dùng để trích mẫu dữ liệu là thuật toán phân loại dữ liệu, kết hợp dữ liệu, thuật toán mô hình hoá dữ liệu tuần tự
1.3.2.6 Đánh giá kết quả mẫu (evaluation of result)
Đây là giai đoạn cuối cùng trong quá trình khai phá dữ liệu, ở giai đoạn này các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu Không phải mẫu dữ liệu nào cũng hữu ích, đôi khi nó còn bị sai lệch Vì vậy cần phải đưa ra nhữ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
Trang 141.3.3 Kiến trúc của hệ thống khai phá dữ liệu.
Database, data warehouse, World Wide Web, và information repositories
- Thành phần này là các nguồn dữ liệu/thông tin sẽ đƣợc khai phá
- Trong những tình huống cụ thể, thành phần này là nguồn nhập (input) của các kỹ thuật tích hợp và làm sạch dữ liệu
Database hay data warehouse server
- Thành phần chịu trách nhiệm chuẩn bị dữ liệu thích hợp cho các yêu cầu khai phá dữ liệu
Knowledge Base
Database Data
Warehouse
Other Infor Repositories
World Wide Web
Data cleaning, integration and selection
Hình 1 3 Kiến trúc của một hệ thống khai phá dữ liệu
Trang 15- Thành phần chứa các khối chức năng thực hiện các tác vụ khai phá dữ liệu
Người sử dụng cũng có thể xem các lược đồ cơ sở dữ liệu/kho dữ liệu, các cấu trúc dữ liệu; đánh giá các mẫu khai phá được; trực quan hóa các mẫu này ở các dạng khác nhau
1.4 Các kỹ thuật khai phá dữ liệu
Trong thực tế có nhiều kỹ thuật khai phá dữ liệu khác nhau nhằm thực hiện hai chức năng mô tả và dự đoán
- Kỹ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Một số kỹ thuật khai phá trong nhóm này là: phân cụm dữ liệu (Clustering), tổng hợp (Summarisation), trực quan hoá (Visualization), phân tích sự phát triển và độ lệch (Evolution and deviation analyst),…
- Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn trên cơ sở dữ liệu hiện thời Một số kỹ thuật khai phá trong nhóm này là: phân lớp (Classification), hồi quy (Regression), cây quyết định (Decision tree), thống kê (statictics), mạng nơron (neural network), luật kết hợp,…
Một số kỹ thuật phổ biến thường được sử dụng để khai phá dữ liệu hiện nay là :
1.4.1 Phân lớp dữ liệu
Mục tiêu của phân lớp dữ liệu đó là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ
Trang 16liệu( mỗi mẫu 1 lớp) Mô hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình chấp nhận được
1.4.2 Phân cụm dữ liệu
Mục tiêu của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong
tập dữ liệu vào các cum, sao cho các đối tượng thuộc cùng một lớp là tương đồng
1.4.3 Cây quyết định
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp và dự báo Các đối tượng dữ liệu được phân thành các lớp Các giá trị của đối tượng dữ liệu chưa biết sẽ được dự đoán, dự báo Tri thức được rút ra trong kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng
1.4.4 Luật kết hợp
Chẳng hạn như có luật: âm nhac, thể thao => thiếu nhi, nghĩa là những người mua sách âm nhạc và thể thao thì cũng mua sách thiếu nhi Lúc đó ta sẽ quan tâm đến số lượng trường hợp khách hàng thỏa mãn luật này trong cơ sở dữ liệu hay độ
hỗ trợ (Support) cho luật này Độ hỗ trợ cho luật chính là phần trăm số bản ghi có
cả sách âm nhạc, thể thao và thiếu nhi hay tất cả những người thích cả ba loại sách nói trên Tuy nhiên, giá trị độ hỗ trợ là không đủ, có thể có trường hợp ta có một nhóm tương đối những người đọc cả ba loại trên nhưng lại có một nhóm với lực lượng lớn hơn những người thích sách thể thao, âm nhạc mà không thích sách thiếu nhi Trong trường hợp này tính kết hợp rất yếu mặc dù độ hỗ trợ tương đối cao, như vậy chúng ta cần thêm một độ đo thứ hai đó là độ tin cậy (confidence)
Độ tin cậy chính là phần trăm các bản ghi có sách thiếu nhi trong số các bản ghi
Trang 17Đây là một trong những kỹ thuật khai phá dữ liệu được ứng dụng phổ biến hiện nay Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương của con người
Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo,
dự đoán với độ chính xác và độ tin cậy cao Nó có khả năng phát hiện ra được các xu hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra được Tuy nhiên phương pháp mạng nơ ron rất phức tạp và quá trình tiến hành nó gặp rất nhiều khó khăn: đòi hỏi mất nhiều thời gian, nhiều dữ liệu, nhiều lần kiểm
tra thử nghiệm
1.4.7 Giải thuật di truyền
Là quá trình mô phỏng theo tiến hoá của tự nhiên Ý tưởng chính của giải thuật là dựa vào quy luật di truyền trong biến đổi, chọn lọc tự nhiên và tiến hoá trong sinh học
Việc xây dựng các thuật toán di truyền mô phỏng sinh học nhằm tìm ra các giải pháp tốt nhất bao gồm các bước sau:
1 Tạo ra cơ chế mã di truyền dưới dạng các xâu của một bảng mã ký tự hạn chế
2 Thiết lập môi trường nhân tạo trên máy tính có các giải pháp có thể tham gia “đấu tranh sinh tồn” với nhau để xác định độ đo thành công hay thất bại, hay còn gọi là “hàm thích nghi”
3 Phát triển các “phép lai ghép” để các giải pháp kết hợp với nhau Khi
đó các xâu mã di truyền của giải pháp cha và mẹ bị cắt đi và xếp lại, trong quá trình sinh sản như vậy các kiểu đột biến có thể được áp dụng
4 Cung cấp một quần thể các giải pháp ban đầu tương đối đa dạng và để máy tính thực hiện “cuộc chơi tiến hóa” bằng cách loại bỏ các giải pháp
từ mỗi cá thể và thay thế chúng bằng các con cháu hoặc các đột biến của các giải pháp tốt Thuật toán sẽ kết thúc khi một họ các giải pháp thành công được sinh ra
Trang 18CHƯƠNG 2: CÁC PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU BẰNG CÂY
QUYẾT ĐỊNH 2.1 Cây quyết định
Ví dụ: Cây quyết định phân lớp mức lương
2.1.2 Các kiểu cây quyết định
Cây quyết định còn có hai loại:
- Câ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.)
Trang 19- 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 là phương pháp có một số ưu điểm:
- Cây quyết định dễ hiểu Người ta có thể hiểu mô hình cây quyết định sau khi được giải thích ngắn
- Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết Các kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ (dummy variable) và loại bỏ các giá trị rỗng
- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị
là tên thể loại Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ gồm một loại biến Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng
số
- Cây quyết định là một mô hình hộp trắng Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho kết quả quá phức tạp để có thể hiểu được
Có thể thẩm định một mô hình bằng các kiểm tra thống kê Điều này làm cho
ta có thể tin tưởng vào mô hình
2.1.4 Phân lớp dữ liệu bằng cây quyết định
Phân lớp dựa trên cây quyết định rất thích hợp cho việc khai phá dữ liệu vì cây quyết định có cấu trúc đơn giản, dễ hiểu và có thể được xây dựng khá nhanh, từ cây quyết định có thể dễ dàng rút ra các luật
Quy nạp cây quyết định là một quá trình học tập của cây quyết định từ các nhãn lớp của bộ dữ liệu huấn luyện (training tuple) Một cây quyết định là một biểu
đồ dòng dữ liệu như cấu trúc cây, mỗi nút trong (không phải lá) tượng trưng cho một thuộc tính kiểm tra, mỗi nhánh đại diện cho kết quả của việc kiểm tra, và mỗi nút lá (hay nút giới hạn) giữ một lớp nhãn Nút đầu tiên trên cây là nút gốc
Trang 20Quá trình phân lớp dữ liệu thông qua 2 bước cơ bản như sau:
Bước 1: Xây dựng mô hình từ tập huấn luyện
Mỗi bộ/mẫu dữ liệu được phân vào một lớp được xác định trước
Trang 21Lớp biết trước của một mẫu/bộ dữ liệu đem kiểm tra được so sánh với
kết quả thu được từ mô hình
Tỉ lệ chính xác bằng phần trăm các mẫu/bộ dữ liệu được phân lớp
đúng bởi mô hình trong số các lần kiểm tra
Hình 2 3 Sử dụng mô hình
Việc tạo cây quyết định bao gồm 2 giai đoạn: Tạo cây và tỉa cây
Để tạo cây ở thời điểm bắt đầu tất cả những ví dụ huấn luyện là ở gốc sau đó phân chia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn
Việc tỉa cây là xác định và xóa những nhánh mà có phần tử hỗn tạp hoặc những phần tử không thể phân vào một lớp nào đó
2.1.5 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:
a 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
b 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á
Trang 22c Đánh giá cây: Dùng để đánh giá độ chính xác của cây kết quả Tiêu chí đánh
giá là tổng số mẫu được phân lớp chính xác trên tổng số mẫu đưa vào
2.1.6 Rút ra luật từ cây quyết định
Có thể chuyển đổi qua lại giữa mô hình cây quyết định và mô hình dạng
luật (IF …THEN…) Hai mô hình này là tương đương nhau
Ví dụ từ cây 2.1 ta có thể rút ra được các luật sau
IF (Age <= 35) AND (salary<=40) THEN class = bad
IF (Age<=35) AND (salary>40) THEN class = good
IF (Age>35) AND (salary <=50 ) THEN class = bad
IF (Age > 35) AND(salary>50) THEN class = good
2.2 Các thuật toán xây dự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 learning System (CLS) vào những năm 50 của thế kỷ 20 Sau đó gọi tắt là thuật toán CLS Thuật toán CLS được thiết kế theo chiến lược chia để trị từ trên xuống Nó gồm các bước sau:
1 Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện
2 Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị
"yes" (hay thuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại T lúc này là nút lá
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 lúc này là nút lá
4 Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp
"yes" và "no" thì: