I. Bài toán Tìm các luật kết hợp trong cơ sở dữ liệu Weather.nominal II. Mô tả dữ liệu bài toán Dữ liệu mô tả về thời tiết gồm năm trường: - Outlook - Temperature - Play : thuộc tính phân loại - Humidity - Windy Và có 14 bản ghi dữ liệu. Dữ liệu : Đây là dữ liệu mô tả về khả năng có đến sân để chơi thể thao (tennis chẳn hạn) hay không của những người chơi thể thao phụ thuộc vào thời tiết và rút ra được các quy luật thay đổi của thời tiết. III. Giải thuật Apriori Được Agrawal đưa ra vào năm 1993, khai phá dữ liệu bằng phương pháp phát hiện các luật kết hợp là một trong các phương pháp khai thác đặc trưng đối với khai phá dữ liệu với nhiệm vụ phân tích dữ liệu trong CSDL nhằm phát hiện và đưa ra những mối liên hệ giữa các giá trị dữ liệu. Cụ thể là tìm tần số mẫu, mối kết hợp, sự tương quan hay các cấu trúc nhân quả giữa các tập đối tượng trong các CSDL giao dịch, CSDL quan hệ và những kho thông tin khác, kết quả thu được đó chính là các tập luật kết hợp. Một số khái niệm liên quan. Hạng mục (Item) : mặt hàng trong giỏ (CSDL giỏ hàng) hay một thuộc tính. Gọi I= {i1, i2,…,im} là tập hợp các hạng mục. Transaction (Giao dịch) T: T là tập các hạng mục và T I Transaction Database (cơ sở dữ liệu giao dịch) D: tập hợp các giao dịch D = {T1, T2,…, Tn}. Ví dụ: các giao dịch giỏ hàng siêu thị: T1: {bread, cheese, milk} T2: {apple, eggs, salt, yogurt} … Tn: {biscuit, eggs, milk} Một giao dịch T gọi là hỗ
Trang 1I Bài toán
Tìm các luật kết hợp trong cơ sở dữ liệu Weather.nominal
II Mô tả dữ liệu bài toán
Dữ liệu mô tả về thời tiết gồm năm trường:
- Outlook
- Temperature
- Play : thuộc tính phân loại
- Humidity
- Windy
Và có 14 bản ghi dữ liệu
Dữ liệu :
Đây là dữ liệu mô tả về khả năng có đến sân để chơi thể thao (tennis chẳn hạn) hay không của những người chơi thể thao phụ thuộc vào thời tiết và rút ra được các quy luật thay đổi của thời tiết
Trang 2III Giải thuật Apriori
Đươ ̣c Agrawal đưa ra vào năm 1993, khai phá dữ liệu bằng phương pháp phát hiện các luật kết hợp là một trong các phương pháp khai thác đặc trưng đối với khai phá dữ liệu với nhiệm vụ phân tích dữ liệu trong CSDL nhằm phát hiện và đưa ra những mối liên hệ giữa các giá trị dữ liệu Cu ̣ thể là tìm tần số mẫu, mối kết
hơ ̣p, sự tương quan hay các cấu trúc nhân quả giữa các tâ ̣p đối tượng trong các CSDL giao di ̣ch, CSDL quan hê ̣ và những kho thông tin khác, kết quả thu được đó chính là các tập luật kết hợp
Một số khái niê ̣m liên quan.
Hạng mục (Item) : mặt hàng trong giỏ (CSDL giỏ hàng) hay một thuộc tính
Gọi I= {i1, i2,…,im} là tập hợp các ha ̣ng mu ̣c
Transaction (Giao dịch) T: T là tập các ha ̣ng mu ̣c và T ⊆ I
Transaction Database (cơ sở dữ liệu giao dịch) D: tập hợp các giao dịch D = {T1, T2,…, Tn}
Ví dụ: các giao dịch giỏ hàng siêu thị:
T1: {bread, cheese, milk}
T2: {apple, eggs, salt, yogurt}
…
Tn: {biscuit, eggs, milk}
Mô ̣t giao di ̣ch T go ̣i là hỗ trợ tâ ̣p X nếu nó chứa tất cả các ha ̣ng mu ̣c trong X, nghĩa là X ⊆ T Ký hiệu support(X) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng số các giao dịch trong D, nghĩa là:
Trang 3Support(X)= { }
D
T X D
T∈ | ⊆
Hỗ trợ tối thiểu (minsup: minimum support) là một giá trị cho trước bởi người sử dụng Nếu tập ha ̣ng mục X có support(X) ≥ minsup thì ta nói X là một tập các khoản mục thường xuyên
Một luật kết hợp là một quan hệ có dạng X ⇒ Y, trong đó X, Y ⊆ I là các tập ha ̣ng mu ̣c (itemset) và X ∩ Y = ∅ Ở đây X (vế trái luâ ̣t) được gọi là tiền đề, Y (vế phải luâ ̣t) là mệnh đề kết quả (hê ̣ quả)
Hai thông số quan trọng của luật kết hợp là độ hỗ trợ (s) và độ tin cậy (c)
Độ hỗ trợ (support) của luật kết hợp X ⇒ Y là tỷ lệ % số giao dịch có chứa cả X, Y so với tổng số giao dịch có trong cơ sở dữ liệu Đô ̣ hỗ trợ còn được coi là
đô ̣ phổ biến
Sup(X⇒Y)= support(X∪ Y)
Đô ̣ hỗ trơ ̣ tối thiểu (minsup):
- Cao: ít tâ ̣p phần tử phổ biến
ít luâ ̣t hợp lê ̣ thường xuất hiê ̣n
- Thấp: nhiều luâ ̣t hơ ̣p lê ̣ hiếm xuất hiê ̣n
Độ tin cậy (confidence) của luật X ⇒ Y là tỷ lệ % của số giao dịch có chứa
Y trong số giao dịch có chứa X (khả năng giao di ̣ch T hỗ trợ X thì cũng hỗ trợ Y) Conf(X ⇒ Y) = sup(sup(X X∪)Y)
Đô ̣ tin câ ̣y (đô ̣ ma ̣nh) thể hiê ̣n nếu vế trái xảy ra thì có bao nhiêu khả năng vế phải xảy ra
Trang 4Đô ̣ tin câ ̣y thối thiểu (minconf):
- Cao: ít luâ ̣t nhưng tất cả “gần như đúng”
- Thấp: nhiều luâ ̣t, phần lớn rất “không chắc chắn”.
Giá tri ̣ tiêu biểu: minsup = 2% – 10%, minconf = 70% – 90%
Đi ̣nh nghĩa bài toán: Bài toán khai thác luâ ̣t kết hợp là bài toán tìm tất cả các luật dạng X ⇒ Y (X, Y ⊆ I và X ∩Y =φ) thỏa mãn độ hỗ trơ ̣ và độ tin cậy tối thiểu.
sup(X ⇒ Y ) ≥ minsup conf (X ⇒ Y ) ≥ minconf
Một itemset là một tập hợp các item
Ví dụ: X = {milk, bread, cereal} là một itemset
Một k-itemset là tập có k items
Tập item phổ biến (hay tập item lớn) là tập hợp các item có độ hỗ trợ lớn hơn hay bằng minsup
Tập item dự kiến (hay tập ứng cử viên) là tập hợp các item cần được xem xét
có phải là tập item phổ biến không
1.2.2 Giải thuật Apriori khai phá tập hạng mục phổ biến
Apriori là thuâ ̣t toán khai phá luâ ̣t kết hợp phổ biến nhất và là cơ sở để phát triển các giải thuâ ̣t khác
a Bản chất
- Dựa trên tính chất Apriori của tập phổ biến: mọi tập item phổ biến thì tất cả các tập item con của nó đều là phổ biến
Trang 5- Tìm tất cả các tập phổ biến 1-hạng mục Sau đó là tất cả các tập phổ biến 2- hạng mục, …
+ Trong mỗi vòng lặp k, chỉ quan tâm đến những tập có chứa một số các tập phổ biến (k-1)- hạng mục
+ Tạo các tập ứng viên kích thước k-hạng mục (k - candidate itemset) từ các tập phổ biến có kích thước (k-1)-hạng mục
+ Kiểm tra độ phổ biến của các ứng viên trên CSDL và loại các ứng viên không phổ biến
b Ví du ̣:
Nhận xét thuật toán Apriori:
- Ta ̣o các tâ ̣p phổ biến thì châ ̣m (đă ̣c biê ̣t là các tâ ̣p có kích thước 2)
Trang 6- Ta ̣o các luâ ̣t kết hợp từ các tâ ̣p phổ biến thì nhanh
- Khi ta ̣o các tâ ̣p phổ biến, ngưỡng đô ̣ hỗ trợ được sử du ̣ng
- Khi ta ̣o luâ ̣t kết hơ ̣p, ngưỡng đô ̣ tin câ ̣y được sử du ̣ng
- Tìm kiếm mức kinh nghiệm
- k = kích thước của tập item lớn nhất
- Nó phải duyệt k lần trên dữ liệu
- Không gian của tất cả các luật là hàm mũ O(2m), m:số các item trong I
Ưu điểm:
Thuật toán chạy nhanh, dưới một số điều kiện, tất cả các luật được tìm thấy theo thời gian tuyến tính
Co dãn trên một tập hợp lớn dữ liệu
Việc khai phá đã khai thác được tính thưa thớt của dữ liệu và các giá trị độ
hỗ trợ nhỏ nhất cao hơn, độ tin cậy nhỏ nhất cao hơn
Hạn chế:
Quét nhiều lần CSDL
Số lượng các tập ứng cử viên lớn
Tốn nhiều công sức khi tính toán độ hỗ trợ cho các tập ứng cử viên
IV Tiền xử lý dữ liệu bằng Weka
Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trước khi đưa vào các mô hình là rất cần thiết, bước này làm cho dữ liệu có được ban đầu qua thu thập dữ liệu (gọi là dữ liệu gốc ordinal data) có thể áp dụng
Trang 7được (thích hợp) với các mô hình khai phá dữ liệu (data mining model)
cụ thể Các công việc cụ thể của tiền xử lý dữ liệu bao gồm những công việc như:
• Filtering Attributes: Chọn các thuộc tính phù hợp với mô hình
• Filtering samples: Lọc các mẫu (instances, patterns) dữ liệu cho
mô hình
• Clean data: Làm sạch dữ liệu như xóa bỏ các dữ liệu bất thường
(Outlier)
• Transformation: Chuyển đổi dữ liệu cho phù hợp với các mô hình
như chuyển đổi dữ liệu từ numeric qua nomial hay ordinal
• Discretization (rời rạc hóa dữ liệu): Nếu bạn có dữ liệu liên tục
nhưng một vài mô hình chỉ áp dụng cho các dữ liệu rời rạc (như luật kết hợp chẳn hạn) thì bạn phải thực hiện việc rời rạc hóa dữ liệu
Trong cơ sở dữ liệu weather.nominal để tìm được các luật kết hợp bằng Weka ta phải thực hiển rời rạc hóa dữ liệu Tức là chuyển các kiểu dữ liệu trong weather.nominal về dạng kiểu dữ liệu nominal
Đầu tiên mở file: file đầu vào weather.nominal.csv
Trang 8Khi chọn open ta được như sau:
- Xét cho thuộc tính outlook
Trang 9Quan sát trên hình ta thấy thuộc tính outlook có kiểu dữ liệu là Nominal.
Số mẫu thiếu giá trị trên thuộc tính đang xét là 0 Số mẫu không có giá trị trùng với mẫu khác là 0 Một bảng thống kê Dạng phi số của thuôc tính outlook
Vậy thuộc tính outlook đã rời rạc hóa
- Xét cho thuộc tính temperature
Trang 10Quan sát hình trên ta thấy thuộc tính temperature có kiểu dữ liệu nominal.
Số mẫu thiếu giá trị trên thuộc tính đang xét là 0 Số mẫu không có giá trị trùng với mẫu khác là 0 Một bảng thống kê Dạng phi số của thuôc tính
Vậy thuộc tính temperature đã rời rạc hóa
- Xét cho thuộc tính humidity
Trang 11Quan sát hình trên ta thấy thuộc tính humidity có kiểu dữ liệu nominal Số mẫu thiếu giá trị trên thuộc tính đang xét là 0 Số mẫu không có giá trị trùng với mẫu khác là 0 Một bảng thống kê Dạng phi số của thuôc tính
Vậy thuộc tính humidity đã rời rạc hóa
Trang 12- Xét cho thuộc tính windy
Quan sát hình trên ta thấy thuộc tính windy có kiểu dữ liệu nominal Số mẫu thiếu giá trị trên thuộc tính đang xét là 0 Số mẫu không có giá trị trùng với mẫu khác là 0 Một bảng thống kê Dạng phi số của thuôc tính
Vậy thuộc tính windy đã rời rạc hóa
Trang 13- Xét cho thuộc tính play
Quan sát hình trên ta thấy thuộc tính play có kiểu dữ liệu nominal Số mẫu thiếu giá trị trên thuộc tính đang xét là 0 Số mẫu không có giá trị trùng với mẫu khác là 0 Một bảng thống kê Dạng phi số của thuôc tính
Vậy thuộc tính play đã rời rạc hóa
Sau đó ta lưu dữ liệu trên dưới dạng weather.nominal.arff
Trang 14V Tìm luật bằng Weka
Mở lại file weather.nominal.arff trên và chon associate để tìm các luật kết hợp Để tìm các luật ta sử dụng thuật toán apriori đã được giới thiệu ở trên
Trong đó :
- Associator: phương pháp khai thác luật kết hợp
• Choose: lựa chọn một phương pháp
• Textbox: thay đổi tham số cho phương pháp đã lựa chọn
Trang 15Sử dụng giải thuật apriori để phân tích dữ liệu trong weather.nominal để phát hiện và đưa ra những mối liên hệ giữa các thuộc tính: outlook, temperature, humidyti, windy, play Mặt khác Apriori là thuâ ̣t toán khai phá luâ ̣t kết hợp phổ biến nhất và là cơ sở để phát triển các giải thuâ ̣t khác
Khi chọn thuật toán apiori xong -> kích vào Textbox để thay đổi các tham số
Trang 16Thống tin các tham số:
- [lowerBoundMinSupport, upperBoundMinSupport] : độ phổ
biến của các tập hạng mục khai thác được sẽ nằm trong khoảng này
- MetricType: Độ đo tính lý thú của luật kết hợp, gồm có
Confidence, Lift, Leverage, Conviction
- minMetric: Các luật khai thác được sẽ có độ đo thỏa giá trị này
Trang 17- numRule và delta: Thuật toán luôn khởi động với mức độ lý thú
mục tiêu cao nhất khi số luật đạt con số numRule, thuật toán sẽ dừng, ngược lại giá trị của minMetric sẽ giảm một lượng delta để tìm các luật có độ đo lý thú thấp hơn
- outputItemsets: kết xuất tập phổ biến trong kết quả
Vì vậy ta thiết đặt các thống số cho bài toán như sau:
Sau đó chon Start ta có được kết quả các luật được khai phá như sau:
Trang 1810 luật được sinh ra từ dữ liệu weather.nominal được sắp xếp giảm dần theo
confidence
Luât kết hợp số 1 cho ta biết nếu quang cảnh ngoài trời u ám thì vẫn có thể chơi thể thao
Luật kết hợp số 2 cho ta biết nêu nhiệt độ lành thì độ ẩm là bình thường
Luật kết hợp số 3 cho ta biết quy luật nêu đô ẩm bình thường và không có gió thì sẽ chơi thể thao được
Luật kết hợp số 4 cho ta biết luật nếu quang cảnh ngoài trời là mưa, có người chơi thể thào thì hôm đó không có gió
Luật kết hợp thứ 5 cho ta biết quy luật nêu quang cảnh ngoài trời mưa, không
có gió vẫn có thể chơi thể thao
Luật kết hợp thứ 6 cho ta biết quy luật nếu quang cảnh ngoài trời là nắng mà không có người chơi thì hôm đó độ ẩm cao
Trang 19Luật kết hợp thứ 7 cho ta biết quy luật nêu quảng cảnh ngoài trời là nắng, độ
ẩm cao thì sẽ không có người chơi thể thao
Luật kết hợp thứ 8 cho ta biết quy luật nếu nhiệt độ lạnh vẫn có người chơi thể thao thì hôm đó độ ẩm bình thường
Luật kết hợp thứ 9 cho ta biết quy luật nếu quang cảnh ngoài trời u ám không
có người chơi thì hôm đó có nhiệt độ cao
Luật kết hợp thứ 10 cho ta biết quy luật nếu quang cảnh ngoài trời u ám nhiệt
độ cao thì hôm đó không có gió