Định nghĩa Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự độngkhai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tậphợp dữ liệu khổng lồ và phức tạp, đồn
Trang 1CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài: TÌM HIỂU VỀ KHAI PHÁ DỮ LIỆU
VÀ CÁC THUẬT TOÁN SỬ DỤNG TRONG KHAI PHÁ DỮ LIỆU
GVHD: GS TSKH Hoàng KiếmHVTH: Nguyễn Hồng TháiLỚP: CH-CNTTQM K6
Mã HV: CH1101040
11
Trang 2Nhận xét của giáo viên:
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
………….……
22
Trang 3Mục lục
Trang 4I Khai phá dữ liệu
1. Giới thiệu
Khoảng vài thập kỷ trở lại đây, từ lúc máy tính ra đời, và đặc biệt là
từ lúc internet được sử dụng rộng rãi trên toàn thế giới, thì khối lượng dữ liệu
số tạo ra đã trở nên cực kỳ lớn, và không ngừng được tăng lên với tốc độchóng mặt Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người taước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm
Rõ ràng với lượng dữ liệu lớn như vậy, sẽ là nguồn tri thức vô tận nếucon người biết khai thác và sử dụng nó một cách hợp lí Thế nhưng với nguồntài nguyên quá lớn như vậy, trong khi thời gian và sức lực của mỗi người thì
có giới hạn, và không phải dữ liệu nào cũng hữu ích cho người dùng, đặt conngười vào bài toàn tìm kiếm những nội dung phù hợp với mục đích của mình
Vì vậy việc trắc lọc dữ liệu thô để tìm ra nguồn tri thức hữu dụng thực sự làbài toán quan trọng và hữu ích trong giai đoạn hiện nay cũng như tương lai.Lĩnh vực khai phá dữ liệu (data mining) chuyên nghiên cứu về những vấn đềnày
2. Định nghĩa
Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự độngkhai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tậphợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩntrong tập dữ liệu đó
3. Các chức năng chính
Khai phá dữ liệu được chia nhỏ thành một số hướng chính như sau:
Trang 51) Tìm luật kết hợp (association rules)
Là dạng luật biểu diễn tri thức ở dạng khá đơn giản Ví dụ: “60 % namgiới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bòkhô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, v.v
2) Phân lớp và dự đoán (classification & prediction)
Xếp một đối tượng vào một trong những lớp đã biết trước Ví dụ: phânlớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một
số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơron nhân tạo (neural network), v.v Người ta còn gọi phân lớp là học có giámsát (học có thầy)
3) Phân cụm (clustering)
Xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưađược biết trước Người ta còn gọi phân cụm là học không giám sát (học khôngthầy)
Khai phá chuỗi (sequential/temporal patterns): tương tự như khai phá luậtkết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này đượcứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính
dự báo cao
4. Ứng dụng của khai phá dữ liệu
- Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision
support)
- Điều trị y học
- Text mining & Web mining
- Tài chính, bảo hiểm và thị trường chứng khoán
- Nhận dạng (pattern recognition)
Trang 65. Các phương pháp khai phá dữ liệu (data mining):
Quá trình khai phá dữ liệu là quá trình phát hiện mẫu trong đó giải thuật khaiphá dữ liệu tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, câyphân lớp, hồi quy, phân nhóm,…
1) Qui nạp
Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin quan trọnghơn cũng có thể được suy diễn từ kho thông tin đó Có hai việc chính để thựchiện việc này là suy diễn và quy nạp
- Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông tin
trong cơ sở dữ liệu Phương pháp suy diễn dựa trên các sự kiện chính xác để suy
ra các tri thức mới từ các thông tin cũ Mẫu chiết xuất được bằng cách sử dụngphương pháp này thường là các luật suy diễn
- Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra
từ cơ sở dữ liệu Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứkhông phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương phápnày đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượngtrong cơ sở dữ liệu Phương pháp này liên quan đến việc tìm kiếm các mẫutrong cơ sở dữ liệu
2) Cây quyết định và luật:
- Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân
các đối tượng dữ liệu thành một số lớp nhất định Các nút của cây được gánnhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộctính, các lá miêu 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 đốitượng tới lá
Trang 7Figure 1: Mẫu kết với phương pháp cây quyết định
- Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý
nghĩa về mặt thống kê Các luật có dạng Nếu P thì Q với P là mệnh đề đúng với phần
dữ liệu trong cơ sở dữ liệu, Q là mệnh đề dự đoán
- Cây quyết định và luật có ưu điểm là hình thức miêu tả đơn giản, môhình suy diễn khá dễ hiểu đối với người sử dụng Tuy nhiên, giới hạn của nó là miêu tảcây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn cả về
độ chính xác của mô hình
3) Phân lớp và hồi quy phi tuyến:
Các phương pháp này bao gồm một họ các kỹ thuật dự đoán để làm chocác kết hợp tuyến tính và phi tuyến của các hàm cơ bản (hàm sygmoid, hàmspine, hàm đa thức) phù hợp với các kết hợp của các giá trị biến vào
4) Phân nhóm và phân đoạn:
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu saocho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó Mối quan
hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thànhviên và từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm
Có tham gia thi Không tham
Trang 8Một kỹ thuật phân nhóm khác là xây dựng nên các hàm đánh giá thuộc tính củacác thành phần như là hàm của các tham số của các thành phần Phương phápnày được gọi là phương pháp phân hoạch tối ưu (optimal partitioning)
Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tậpmẫu chứa các dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở
dữ liệu Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo cáctập dữ liệu ở dạng dễ hiểu hơn, đồng thời cũng cung cấp các nhóm dữ liệu chocác hoạt động cũng như công việc phân tích Đối với cơ sở dữ liệu lớn, việc lấy
ra các nhóm này là rất quan trọng
5) Các phương pháp dựa trên mẫu:
Sử dụng các mẫu miêu tả từ cơ sở dữ liệu để tạo nên một mô hình dựđoán các mẫu mới bằng cách rút ra từ các thuộc tính tương tự như các mẫu đãbiết trong mô hình Các kỹ thuật bao gồm phân lớp theo láng giềng gần nhất,các giải thuật hồi quy (Dasarathy 1991) và các hệ thống suy diễn dựa trên tìnhhuống (case-base reasoning) (Kolodner 1993)
Khuyết điểm của các kỹ thuật này là cần phải xác định được khoảngcách, độ đo giống nhau giữa các mẫu
6) Khai phá dữ liệu văn bản (Text Mining):
Kỹ thuật này được ứng dụng trong một loạt các công cụ phần mềmthương mại Công cụ khai phá dữ liệu rất phù hợp với việc tìm kiếm, phân tích
và phân lớp các dữ liệu văn bản không định dạng Các lĩnh vực ứng dụng nhưnghiên cứu thị trường, thu thập tình báo,… Khai phá dữ liệu dạng văn bản đãđược sử dụng để phân tích câu trả lời cho các câu hỏi mở trong khảo sát thịtrường, tìm kiếm các tài liệu phức tạp
7) Mạng neuron:
Mạng neuron là một tiếp cận tính toán mới liên quan đến việc phát triểncác cấu trúc toán học với khả năng lọc Các phương pháp là kết quả của việc
Trang 9nghiên cứu mô hình học của hệ thống thần kinh con người Mạng neuron có thểđưa ra ý nghĩa từ 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 xuất các mẫu và phát hiện ra các xu hướng quá phức tạp mà conngười cũng như các kỹ thuật máy tính khác không thể phát hiện được.
Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến mạngneuron Tuy mạng neuron có một số hạn chế gây khó khăn trong việc áp dụng
và triển khai nhưng nó cũng có những ưu điểm đáng kể Một trong số những ưuđiểm phải kể đến của mạng neuron là khả năng tạo ra các mô hình dự đoán có
độ chính xác cao, có thể áp dụng được cho rất nhiều loại 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 các sự kiện phụ thuộc vào thời gian,…
Đặc điểm của mạng neuron là không cần gia công dữ liệu nhiều trước khibắt đầu quá trình học như các phương pháp khác Tuy nhiên, để có thể sử dụngmạng neuron có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
Mạng neuron được đóng gói với những thông tin trợ giúp của các chuyêngia đáng tin cậy và được các chuyên gia đảm bảo các mô hình này làm việc 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
8) Thuật giải di truyền:
Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống tiếnhoá 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
Trang 10hình thành, được ước lượng và biến đổi như thế nào Ví dụ như xác định xemlàm thế nào để lựa chọn các cá thể tạo giống vào lựa chọn cá thể nào bị loại bỏ.Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể sinh học trên máytính để có thể giải quyết nhiều bài toán thực tế khác nhau.
Giải thuật di truyền là một giải thuật tối ưu hoá Nó được sử dụng rấtrộng rãi trong việc tối ưu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuậtmạng neuron Sự liên hệ của nó đối với các giải thuật khai phá dữ liệu là ở chỗviệc tối ưu hoá cần thiết cho các quá trình khai phá dữ liệu Ví dụ như trong các
kỹ thuật cây quyết định, tạo luật Như đã đề cập ở phần trước, các luật mô hìnhhoá dữ liệu chứa các tham số được xác định bở các giải thuật phát hiện tri thức.Giai đoạn tối ưu hoá là cần thiết để xác định các giá trị tham số nào tạo ra cácluật tốt nhất Và vì vậy mà giải thuật di truyền đã được sử dụng trong các công
cụ khai phá dữ liệu
Kết luận:
Như vậy, nhìn vào các phương pháp giới thiệu ở trên, chúng ta thấy córất nhiều các phương pháp khai phá dữ liệu Mỗi phương pháp có những đặcđiểm riêng phù hợp với một lớp các bài toán với các dạng dữ liệu và miền dữliệu nhất định Mặc dù nhìn bề ngoài ta thấy có rất nhiều các phương pháp vàứng dụng khai phá dữ liệu nhưng cũng không có gì là lạ khi nhận thấy chúng cómột số thành phần chung Hiểu quá trình khai phá dữ liệu và suy diễn được môhình dựa trên những thành phần này là ta đã thực hiện được nhiệm vụ của khaiphá dữ liệu
II Các thuật toán sử dụng trong khai phá dữ liệu:
Nhằm xác định một số thuật toán có ảnh hưởng lớn được sử dụng nhiềutrong cộng đồng Data Mining, IEEE International Conference on Data Mining
đã nổ lực xác định 10 thuật toán Data Mining để trình bày tại ICDM’06 - HongKong
Trang 11Các thuật toán được đề cử bao gồm:
Giống như những thuật toán khác trong khai phá dữ liệu, C45 sử dụng cây quyếtđịnh để mô tả kết của mình
Trang 12− Ngược lại, chọn một thuộc tính nhận 2 hay nhiều giá trị trong tập S Tạo cây vớimỗi nhánh là mỗi giá trị đó Tiếp tục làm một cách đệ qui với các thuộc tính còn lại.Câu hỏi đặt ra là làm thế nào để chọn thuộc tính ở mỗi mức của cây cho tối ưu C4.5 sử
dụng 2 hueristic là information gain và gain ratio.
Information gain: thuộc tính được chọn là thuộc tính có entropy nhỏ nhất trong số các
thuộc tính của các phần tử tập S
Với : - Value(A) tập các gía trị của thuộc tính A
− : tập con của S mà A nhận giá trị V
Xét ví dụ sau: Giả sử ta có tập trường hợp qui định việc đi chơi Tennis, bị ảnh hưởngbởi các yếu tố Outlook, Temp, Humidity và Wind, cho ở bảng sau Sử dụng thuật toánC4.5 để tạo cây quyết định
Trang 13(9 Yes, 5 No)Tính InfoGain của các thuôc tính (theo công thức tính InfoGain ở trên):
(trong tập S, Outlook nhận 5 giá trị là Sunny, trong đó có 2 kết
quả PlayTesnis là Yes, 3 là No, nhận 4 giá trị là Overcast đều cho kết quả là Yes, nhận
5 giá trị Rain, cho 3 kết quả Yes và 2 kết quản No)
Tương tự như trên, ta tính được giá trị InfoGain của các thuộc tính còn lại là:
Trang 14(Dễ dàng nhận thấy thuộc tính Humidity có thể dùng phân lớp cho Sunny) Ở đây tatiếp tục sử dụng công thức tính InfoGain như sau:
Với:
Tương tự ta tính được f(Wind) > 0 và f(Temp) > 0
Nên InfoGain(Sunny, Humidity) là lớn nhất Ta dùng Humidity để phân lớp choSunny
Một cách tương tự, ta tính được Wind là thuộc tính để phân lớp cho Rain (Figure 1)Vậy, ta được cây quyết định như sau:
Figure 3
Trang 15GainRatio cung cấp một công thức khác để xác định thuộc tính được dùng trong câyquyết định Công thức như sau:
2. Thuật toán K-means:
- Tư tưởng của thuật toán là chia CSDL thành k nhóm (k do người dùng quyết định)
- Thuật toán thao tác trên một tập vector d-chiều D = { | i = 1, N}, với là điểm dữliệu thứ i Thuật toán bắt đầu bằng việc chọn k điểm ngẫu nhiên làm trọng tâm, sau đógọi 2 bước sau cho đến khi hội tụ:
B1 Gán dữ liệu: Mỗi điểm được gán vào một nhóm nào đó gần nhất Giai đoạnnày được gọi là phân chia dữ liệu
B2 Tính lại trọng tâm: lấy trung bình các điểm trong nhóm để làm trọng tâm
- Công thức tính khoảng cách giữa 2 đối tượng:
- Khoảng cách Minkowski:
d(i,j) = trong đó () và () là 2 đối tượng dữ liệu trong không gian p chiều và q là
số nguyên dương
Nếu q =1 là khoảng cách Manhattan
d(i,j) = Nếu q=2 là khoảng cách Euclidean
d(i,j) =
- Ví dụ cho thuật toán K-means:
Xét không gian tọa độ gồm 5 điểm như sau:
Trang 16{A(1,2), B)(0,3), C(3,1), D(4,3),E(4,0)}
Figure 4
Giả sử người dùng muốn chia 5 điểm trên thành 2 nhóm
Bước 1: Xác định ngẫu nhiên 2 trọng tâm của 2 nhóm, đặt là M1 và M2 Giả
d(D,M2) =
D thuộc nhóm 1Xét E: d(E,M1) =
d(E,M2) =
E thuộc nhóm 1Kết quả phân nhóm được cho như bên dưới:
Trang 17Figure 5 Bước 3: Tính lại trọng tâm:
Bước 2: Tính toán lại nhóm cho các điểm:
Xét A: d(A,M1) =
d(A,M2) =
A thuộc nhóm 2Xét B: B trùng M2
B thuộc nhóm 2Xét C: d(C,M1) =
d(C,M2) =
C thuộc nhóm 1Xét D: d(D,M1) =
d(D,M2) =
D thuộc nhóm 1Xét E: d(E,M1) =
d(E,M2) =
Trang 18 E thuộc nhóm 1
Figure 6
Bước 3: Tính lại trọng tâm:
Bước 2: Tính toán lại nhóm cho các điểm:
Xét A: d(A,M1) =
d(A,M2) =
A thuộc nhóm 2Xét B: d(B,M1) =
d(B,M2) =
B thuộc nhóm 2Xét C: d(C,M1) =
d(C,M2) =
C thuộc nhóm 1Xét D: d(D,M1) =
d(D,M2) =
Trang 19 D thuộc nhóm 1Xét E: d(E,M1) =
d(E,M2) =
E thuộc nhóm 1Kết quả không thay đổi so với bước trước đó, (kết quả đã hội tụ), vậy ta
có kết quả phân nhóm như Figure 6
3 Thuật toán Apiori:
Một trong những bài toán quan trọng trong khai phá dữ liệu là tìm các tập phổ biến vàkhai phá luật kết hợp của các trường Việc này hoàn toàn không đơn giản vì có thể gây
ra bùng nổ tổ hợp, khi phải xét từng tổ hợp các trường với số lượng các trường trongcác tổ hợp khác nhau Khi tìm các tập phổ biến và luật kết hợp, thông thường phải sửdụng 2 giá trị là độ hổ trợ và độ tin tưởng Các tổ hợp được xem là hợp lệ khi nó có độ
hổ trợ và độ tin tưởng lớn hơn ngưỡng cho phép của phép khai phá luật kết hợp, gọi làminSup và minConf
Apiori là thuật toán nền tảng sinh ra các tập kết hợp bằng cách sinh ra các ứng viên.Thuật toán này sử dụng một heuristic là “khi một tập kết hợp là không phổ biến, thì khithêm các trường mới vào tập này thì tập mới cũng không phải tập phổ biến”
Tóm tắt thuật toán:
- Sinh ra tập ứng viên : Tập ứng viên có size k+1 từ tập ứng viên size k
- Quét qua database để tính độ hỗ trợ của từng ứng viên
- Dựa vào độ support cho phép (minSup), thêm những ứng viên có độ hỗ trợ thõamãn vào tập
Ví dụ của thuật toán:
Giả sử ta có tập đầu vào như sau: