Tải bản đầy đủ (.doc) (26 trang)

KHAI PHÁ LUẬT KẾT HỢP VỚI VỚI PHẦN MỀM WEKA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (761.48 KB, 26 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

BÁO CÁO
KHAI PHÁ LUẬT KẾT HỢP VỚI VỚI
PHẦN MỀM WEKA
Giảng viên hướng dẫn: GS. TSKH. Hoàng Kiếm
Học viên thực hiện: Mạc Thị Biên
Thành phố HCM, ngày 3 tháng 6 năm 2012
Khóa luận môn Công Nghệ Tri Thức
MỤC LỤC
MỤC LỤC 2
LỜI NÓI ĐẦU 3
I.QÚA TRÌNH KHAI PHÁ DỮ LIỆU 4
1. Quá trình KTDL: 4
2. Nhiệm vụ của khai phá dữ liệu: 5
2.1. Mô tả: xác định các mẫu mô tả DL mà con người có thể hiểu được 5
2.2. Dự đoán (Predictive): Sử dụng một vài biến để dự báo giá trị chưa biết hoặc giá trị
tương lai của các biến khác 6
3. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu: 8
4. Các phương pháp chính trong khai phá dữ liệu: 8
4.1. Phân lớp và dự đoán: 8
4.2. Phân cụm và phân đoạn 9
4.3. Luật kết hợp (Association rules) 9
5. Các ứng dụng của khai phá dữ liệu: 9
6. Những khó khăn trong quá trình khai phá dữ liệu 9
II.LUẬT KẾT HỢP 10
1. Giới thiệu 10
2. Luật kết hợp trong khai phá dữ liệu (Association Rule in Data Mining) 10
3. Thuật toán sinh các luật kết hợp Apriori 12
3.1. Apriori Algorithm 12


III.TRIỂN KHAI LUẬT KẾT HỢP VỚI PHẦN MỀM WEKA 15
1. Giới thiệu Weka 15
2. Tạo luật kết hợp với cơ sở dữ liệu BAN-DATA.CSV 16
2.1. Cơ sở dữ liệu 16
2.2. Preprocess (Tiền xử lý ) 17
3. Classifier (Phân lớp) 20
4. Associate (Tạo luật kết hợp) 22
KẾT LUẬN 25
TÀI LIỆU THAM KHẢO 26
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 2
Khóa luận môn Công Nghệ Tri Thức
LỜI NÓI ĐẦU
Ngày nay các lĩnh vực khoa học kỹ thuật đang ngày một phát triển mạnh mẽ. Đặc
biệt là nghành khoa học máy tính rất phát triển, nó được ứng dụng rất nhiều trong các
lĩnh vực khác nhau của cuộc sống như: Giáo dục, Y tế, Kinh tế, Khoa học, Xây dưng, Nó
đã trở thành một phần không thể thiếu được trong cuộc sống hàng ngày của con
người.Việc dùng các phương tiện tin học để tổ chức và khai thác các cơ sở dữ liệu đã
được phát triển từ những năm 60. Đặc biệt trong những năm gần đây vai trò của máy tính
trong việc lưu trữ và xử lý thông tin ngày càng trở lên quan trọng. Bên cạnh đó các thiết
bị thu thập dữ liệu tự động tương đối phát triển đã tạo ra những kho dữ liệu khổng lồ. Với
sự phát triển mạnh mẽ của công nghệ điện tử tạo ra các bộ nhớ có dung lượng lớn, bộ xử
lý tốc độ cao cùng với các hệ thống mạng viễn thông, người ta đã xây dựng các hệ thống
thông tin nhằm tự động hoá mọi hoạt động kinh doanh của mình. Điều này đã tạo ra một
dòng dữ liệu tăng lên không ngừng ví ngay từ các các giao dịch đơn gian nhất như một
cuộc điện thoại, kiểm tra sức khỏe, sử dụng thẻ tín dụng, v.v.đều được ghi vào trong máy
tính. Cho tới nay con số này đã trở lên khổng lồ, bao gồm các cơ sở dữ liệu, thông tin
khách hàng, dữ liệu lịch sử các giao dịch, dữ liệu bán hàng, dữ liệu các tài khoản vay, sử
dụng vốn, Vấn đề đặt ra là làm thế nào để sử lý khối lượng thông tin cực lớn như vậy để
phát hiện ra các tri thưc tiềm ẩn trong nó.

Để làm được điều đó người ta đã sử dụng quá trính Phát hiện tri thức trong cơ sở dữ
liệu( Knowledge Discovery in Database-KDD). Nhiệm vụ của KDD là từ dữ liệu sẵn có
phải tìm ra những thông tin tiềm ẩn có giá trị mà trước đó chưa được phát hiện cũng như
tìm ra những xu hướng phát triển và các xu hướng tác động lên chúng .Các kỹ thuật cho
phép ta lấy được các tri thức từ cơ sở dữ liệu sẵn có đó được gọi là kỹ thuật Khai phá dữ
liệu( Data Mining). Đây cũng là một vấn đề hết sức mới mẻ, quan trọng nên nó rất được
quan tâm thể hiện một số các hạng phần mềm đã tạo ra các sản phẩm mục đích phục vụ
cho Data Minning và phần mềm Weka cũng không nằm ngoại lệ. Nó là bộ công cụ hoàn
hảo để quá trình khám phá dữ liệu được thực hiện một cách đơn giản, nhanh chóng . Và
Trong đề tài này em đã tìm hiểu Khai phá dữ liệu bằng luật kết hợp bằng phần mềm
Weka. Em sử dụng công cụ này để phân tích các dữ liệu và sử dụng các kỹ thuật để tìm
những mẩu tin, hoạt động có tính chính quy trong tập dữ liệu mà người sử dụng mong
muốn, đồng thời để áp dụng vào bài toán quyết định cho một khách hàng được vay vốn
hay không (ngân hàng)
Em xin chân thành cảm ơn GS. TSKH. Hoàng Kiếm đã hướng dẫn để em thực
hiện đề tài này. Do thời gian có hạn nên không thể tránh khỏi những thiếu sót mong thầy
và các bạn cho ý kiến đóng góp để em hoàn thiện hơn.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 3
Khóa luận môn Công Nghệ Tri Thức
I. QÚA TRÌNH KHAI PHÁ DỮ LIỆU
1. Quá trình KTDL:
Quá trình khai phá dữ liệu được tiến hàng qua 6 giai đoạn: bắt đầu của quá trình là
kho dữ liệu thô và kết thúc với tri thức được chiết xuất ra.
Hình 1( Quá trình KTDL)
- Gom dữ liệu (Gathering): tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá
dữ liệu. Đây là bước được khai phá trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí
các dữ liệu từ các nguồn ứng dụng Web.
- Trích lọc dữ liệu (Selection): ở giai đoạn này dữ liệu được lựa chọn hoặc phân
chia theo một số tiêu chuẩn nào đó.

- Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu (Cleansing, Pre-processing and
Preparation): giai đoan 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à tính không đủ chặt chẻ, logíc. 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.
- Chuyển đổi dữ liệu (Transformation): tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ
liệu đưa ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó. Dữ liệu đã được
chuyển đổi phù hợp với mục đích khai phá.
- Phát hiện và trích mẫu dữ liệu (Pattern Extraction and Discovery): đây là bước
mang tính tư duy trong khai phá dữ liệu. Ở 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 là nguyên tắc phân
loại, nguyên tắc kết hợp hoặc các mô hình dữ liệu tuần tự,. v.v.
- Đánh giá kết quả mẫu (Evaluation of Result): đây là giai đoạn cuối 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
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 4
Khóa luận môn Công Nghệ Tri Thức
phá dữ liệu. Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai
lệch. Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức
(Knowlege) cần chiết xuất ra.
Trên đây là 6 giai đoạn trong quá trình khai phá dữ liệu, trong đó giai đoạn 5 là giai
đoạn được quan tâm nhiều nhất hay còn gọi đó là Data Mining.
2. Nhiệm vụ của khai phá dữ liệu:
Khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh doanh hay cho nghiên
cứu khoa học. Do đó, ta có thể xem mục đích của khai phá dữ liệu sẽ là mô tả các sự kiện
và dự đoán.
2.1. Mô tả: xác định các mẫu mô tả DL mà con người có thể hiểu được.
- Gom nhóm: tìm ra một tập xác định Các nhóm hay các cụm để mô tả dữ liệu.
 Là kỹ thuật khai phá dữ liệu tương tự như phân lớp dữ liệu.Tuy
nhiên, trong phân lớp dữ liệu, một bản ghi thuộc về lớp nào là phải xác

định trước, trong khi gom nhóm không xác định trước.
 Đa số các ứng dụng phân nhóm được sử dụng trong sự phân chia thị
trường. Với sự phân nhóm khách hàng vào trong từng nhóm, những
doanh nghiệp có thể cung cấp những dịch vụ khác nhau tới nhóm khách
hàng một cách thuận lợi.
 Ví dụ, dựa vào chi tiêu, số tiền trong tài khoản và việc rút tiền của
khách hàng, một ngân hàng có thể xếp những khách hàng vào những
nhóm khác nhau.
Hình 2. Minh họa gom nhóm dữ liệu
Với mỗi nhóm, ngân hàng có thể cho vay những khoản tiền tương ứng cho
việc mua nhà, mua xe, … Trong trường hợp này ngân hàng có thể cung
cấpnhững dịch vụ tốt hơn, và cũng chắc chắn rằng tất cả các khoản tiền cho
vay đều có thể thu hồi được.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 5
Khóa luận môn Công Nghệ Tri Thức
- Tổng hợp(summarization): là công việc liên quan đến các phương pháp tìm kiếm
một mô tả cô đọng cho tập con dữ liệu . Các kỹ thuật tổng hợp thường được áp dụng
trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động.
- Mô hình hóa phụ thuộc(dependency modeling): Là việc tìm kiếm mô hình mô tả
các phụ thuộc quan trọng giữa các biến. Mô hình phụ thuộc tồn tại ở hai mức:
 Mức cấu trúc của mô hình (thường dưới dạng đồ thị) xác định các
biến phụ thuộc cục bộ vào các biến khác.
 Mức định lượng của mô hình xác định mức độ phụ thuộc của các
biến. Những phụ thuộc này thường được biểu thị dưới dạng luật. Quan
hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy . Đó là đồ
thị có hướng không có dạng chu trình, các nút biểu diễn thuộc tính và
trọng số chỉ liên kết phụ thuộc giữa các nút đó .
2.2. Dự đoán (Predictive): Sử dụng một vài biến để dự báo giá trị chưa biết hoặc giá
trị tương lai của các biến khác.

- Phân lớp: phát hiện ra mô tả của một vài lớp đã được xác định và phân loại dữ liệu
vào một trong các lớp đó. Quá trình phân lớp dữ liệu được thực hiện qua hai bước.
 Bước thứ nhất: Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một
mô hình mô tả những đặc trưng của những lớp dữ liệu hoặc những khái
niệm, đây là quá trình học có giám sát, học theo mẫu được cung cấp
trước.
 Bước thứ hai: Từ những lớp dữ liệu hoặc những khái niệm đã được
xác định trước, dự đoán giá trị của những đối tượng quan tâm.
 Một kỹ thuật phân lớp dữ liệu được Han và Kamber đưa ra là cây
quyết định.
Ví dụ: cây quyết định cho lớp mua laptop.
Hình 3. Minh họa cây quyết định cho lớp mua laptop.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 6
Khóa luận môn Công Nghệ Tri Thức
Trong hình 2 là một cây quyết định cho lớp mua laptop, chỉ ra một khách hàng sẽ
mua hay không mua một laptop. Mỗi nút lá đại diện một lớp mà đánh giá mua laptop là
Yes hay No. Sau khi mô hình này được xây dựng, chúng ta có thể dự đoán việc có thể
mua một laptop hay không dựa vào những thuộc tính khách hàng mới là tuổi và nghề
nghiệp. Cây quyết định có thể ứng dụng rộng rãi trong nhiều hoạt động của đời sống
thực.
- Hồi qui: Ánh xạ từ một mẫu dữ liệu thành một biến dự đoán trước có giá trị thực.
 Nhiệm vụ hồi qui tương tự như phân lớp, điểm khác nhau chính là ở
chỗ thuộc tính để dự báo là liên tục chứ không rời. Việc dự báo các giá
trị số thường được làm bởi các phương pháp thống kê cổ điểm chẳng
hạn như hồi qui tuyến tính
Hình 4.Minh họa hồi qui
 Ứng dụng của hồi quy: dự đoán số lượng sinh vật phát quang hiện
thời trong khi rừng bằng cách dò tìm vi sóng bằng thiết bị cảm biến từ
xa,dự báo khối lượng bán hàng của sản phẩm mới dựa trên chi phí

quảng cáoDự đoán tốc độ gió như một hàm của nhiệt độ,độ ẩm,áp suất
không khí.
- Phát hiện sự thay đổi và độ lệch (change and deviation dectection): Nhiệm vụ này
tập trung vào khám phá những thay đổi có ý nghĩa trong dữ liệu dựa vào các giá trị chuẩn
hay độ đo đã biết trước, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu và
nội dung mong đợi. Hai mô hình độ lệch thường dùng là lệch theo thời gian và lệch theo
nhóm.
 Độ lệch theo thời gian là sự thay đổi có nghĩa của dữ liệu theo thời
gian.
 Độ lệch theo nhóm là sự khác nhau giữa dữ liệu trong hai tập con dữ
liệu, tính cả trường hợp tập con của đối tượng này thuộc tập con kia,
nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác
nhau đáng kể so với toàn bộ đối tượng.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 7
Khóa luận môn Công Nghệ Tri Thức
3. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu:
- Cơ sở dữ liệu quan hệ: có cấu trúc cao, dữ liệu được mô tả bởi một tập những
thuộc tính và lưu trong những bảng. Khai phá dữ liệu trên cơ sở dữ liệu quan hệ chủ yếu
tập trung khai phá mẫu.
- Cơ sở dữ liệu giao tác: là tập hợp những bản ghi giao dịch, trong đa số các trường
hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ chức.
- Cơ sở dữ liệu không gian: bao gồm hai phần.
 Phần thứ nhất là dữ liệu quan hệ hay giao tác.
 Phần thứ hai là thông tin định vị hoặc thông tin địa lý.
- Cơ sở dữ liệu có yếu tố thời gian: Giống như cơ sở dữ liệu không gian, cơ sở dữ
liệu có yếu tố thời gian bao gồm hai phần.
 Phần thứ nhất là dữ liệu quan hệ hay giao tác.
 Phần thứ hai là thông tin về thời gian xuất hiện dữ liệu ở phần thứ
nhất.

- Cơ sở dữ liệu đa phương tiện: hình ảnh, âm thanh, phim, dữ liệu web.
4. Các phương pháp chính trong khai phá dữ liệu:
4.1. Phân lớp và dự đoán:
- Phân lớp dữ liệu là tiến trình có 2 bước:
 Huấn luyện: dữ liệu huấn luyện được phân tích bởi thuật toán phân
lớp ( có thuộc tính nhãn lớp) để tạo ra bộ phân lớp.
 Phân lớp: Dữ liệu kiểm tra được dùng để ước lượng độ chính xác
của phân lớp. Nếu chính xác là chấp nhận được thì có thể dùng bộ phân
lớp để phân lớp các mẫu dữ liệu mới.
- Chuẩn bị dữ liệu:
 Làm sạch dữ liệu: nhiễu, thiếu giá trị.
 Phân tích liên quan (chọn đặc trưng): các thuộc tính không liên
quan, các thuộc tính dư thừa.
 Biến đổi dữ liệu.
- Các kỹ thuật phân lớp:
 Cây quyết định: là cấu trúc cây sao cho.
 Mỗi nút trong ứng với một phép kiểm tra trên một thuộc tính.
 Mỗi nhánh biểu diễn kết quả phép kiểm tra.
 Các nút lá biểu diễn các lớp hay các phân bố lớp.
 Nút cao nhất trong cây là nút gốc.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 8
Khúa lun mụn Cụng Ngh Tri Thc
Cỏc phõn lp trong cõy quyt nh:
Phõn lp Bayes: cú th d bỏo cỏc xỏc sut l thnh viờn ca lp,
chng hn xỏc sut mu cho trc thuc v mt lp xỏc nh.
Phõn lp Naùve Bayes: cú th so sỏnh uc v cụng nng vi b
phõn lp cõy quyt nh v mng nron. Chỳng gi nh cỏc
thuc tớnh l c lp nhau nron. (c lp iu kin lp)
Phõn lp NAẽVE BAYESIAN

Cỏc thut toỏn sinh lut trc tip(khụng to cõy):
Thut toỏn ILA.
Thut toỏn CBA
4.2. Phõn cm v phõn on
Xp mt i tng vo mt trong nhng lp ó bit trc. Vớ d: phõn lp cỏc d liu
bnh nhõn trong h s bnh ỏn. Hng tip cn ny thng s dng mt s k thut ca
hc mỏy nh cõy quyt nh (decision tree), mng n ron nhõn to (neural network), .v.v.
Phõn lp v d oỏn cũn c gi l hc cú giỏm sỏt.
4.3. Lut kt hp (Association rules)
L dng lut biu din tri thc dng khỏ n gin. Vớ d: 80% mua bỏnh mỡ thỡ
cú 60% trong s ú mua sa. Lut kt hp c ng dng nhiu trong lnh vc kinh
doanh, y hc, tin-sinh, ti chớnh v th trng chng khoỏn, .v.v.
5. Cỏc ng dng ca khai phỏ d liu:
Khai phỏ d liu tuy l mt lnh vc mi nhng ó thu hỳt c s quan tõm ca rt
nhiu nh nghiờn cu, nh cú nhiu nhng ng dng trong thc tin, cỏc ng dng in
hỡnh nh sau:
- Phõn tớch d liu v h tr ra quyt nh (Analysis & decition support).
- iu tr trong y hc (Medical): mi liờn h gia triu chng, chun oỏn v
phng phỏp iu tr (ch dinh dng, thuc men, phu thut).
- Phõn lp vn bn, túm tt vn bn v phõn lp cỏc trang Web (Text mining &
Web mining).
- Tin sinh hc (Bio-informatics): Tỡm kim, i sỏnh cỏc h gen v thụng tin di
truyn, mi liờn h gia mt s h gen v mt s bnh di truyn.
- Nhn dng.
- Ti chớnh v th trng chng khoỏn (Finance & stock market): Phõn tớch tỡnh
hỡnh ti chớnh v d oỏn giỏ c phiu.
- Bo him (Insurance).
- Giỏo dc (Education).
6. Nhng khú khn trong quỏ trỡnh khai phỏ d liu
- C s d liu ln.

GVHD: GS. TSKH Hong Kim
HVTH: Mc Th Biờn Page 9
Khóa luận môn Công Nghệ Tri Thức
- Số chiều các thuộc tính lớp.
- Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không còn phù
hợp.
- Dữ liệu bị thiếu hoặc bị nhiễu.
- Quan hệ giữa các trường phức tạp.
- Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
- Tích hợp với các hệ thống khác.
II. LUẬT KẾT HỢP
1. Giới thiệu.
Mục đích chính của khai phá dữ liệu là các tri thức được kiết xuất ra sẽ được sử
dụng trong dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa
học.Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các
nhà quản lý rất thích có được các thông tin mang tính thống kê như: “90% phụ nữ có xe
máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách
hàng là công nhân khi mua TV thường mua loại TV 21 inches”. Những thông tin như vậy
rất hữu ích trong việc định hướng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm được các
luật như vậy bằng các công cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có
thể. Đó chính là nhiệm vụ khai phá luật kết hợp.
Giả sử chúng ta có một CSDL D. Luật kết hợp cho biết phạm vi mà trong đó sự
xuất hiện của tập các mục X nào đó trong các bản ghi của D sẽ kéo theo sự xuất hiện của
một tập những mục T cũng trong những bản ghi đó. Mỗi luật kết hợp được đặc trưng bởi
một cặp tỉ lệ. Mỗi tỉ lệ hỗ trợ được biểu diễn bằng tỉ lệ % những bản ghi trong D chứa cả
X và T.
Vấn đề khám phá luật kết hợp được phát biểu như sau: Cho trước tỉ lệ hỗ trợ θ và
độ tin cậy β. Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ và tin cậy lớn hơn θ
và β tương ứng. Giả thiết D là CSDL giao dịch và với θ = 40%, β = 90%. Vấn đề phát
hiện luật kết hợp được thực hiện như sau: liệt kê, đếm tất cả những qui luật chỉ ra sự xuất

hiện một số các mục sẽ kéo theo một số mục khác.Chỉ xét những qui luật mà tỉ lệ hỗ trợ
lớn hơn 40% và độ tin cậy lớn hơn 90%.
Hãy tưởng tượng, một công ty bán hàng qua mạng Internet. Các khách hàng được
yêu cầu điền vào các mẫu bán hàng để công ty có được một CSDL về các yêu cầu của
khách hàng. Giả sử công ty quan tâm đến mối quan hệ "tuổi, giới tính, nghề nghiệp và
sản phẩm". Khi đó có thể có rất nhiều câu hỏi tương ứng với luật trên. Ví dụ trong lứa
tuổi nào thì những khách hàng nữ là công nhân đặt mua mặt hàng gì đó, ví dụ áo dài
chẳng hạn là nhiều nhất, thoả mãn một ngưỡng nào đó ?
2. Luật kết hợp trong khai phá dữ liệu (Association Rule in Data Mining)
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 10
Khóa luận môn Công Nghệ Tri Thức
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là
tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu. Nội dung cơ bản
của luật kết hợp được tóm tắt như dưới đây.
Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn.
T = {t1, t2, …, tn}. T gọi là cơ sở dữ liệu giao dịch (Transaction Database)
Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im}. Một itemset gồm k items gọi là k-itemset
Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan
(correlation) giữa các items. Những luật kết hợp này có dạng X =>Y
Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các
mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. (X và Y gọi là
itemset).
Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X
=>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường
mua Cherry và Durian.
Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y
được xem là biến phụ thuộc (Dependent variable). Độ hỗ trợ (Support) và độ tin cây
(Confidence) là 2 tham số dùng để đo lường luật kết hợp.

Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các
items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa là 5% các
giao dịch X và Y được mua cùng nhau.
Công thức để tính support của luật X =>Y như sau:
Trong đó: N là tổng số giao dịch.
Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X.
Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% khách
hàng mua Apple cũng mua Banana.
Công thức để tính độ tin cậy của luật kết hợp X =>là xác suất có điều kiện Y khi đã
biết X như sau :
Trong đó: n(X) là số giao dịch chứa X
Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support
(min_sup) và minimum confidence (min_conf)
Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng) cả
Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rle)
Minimum support và Minimum confidence gọi là các giá trị ngưỡng (threshold) và
phải xác định trước khi sinh các luật kết hợp.
Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent itemsets
Một số loại luật kết hợp:
 Binary association rules (luật kết hợp nhị phân): Apple => Banana
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 11
Khóa luận môn Công Nghệ Tri Thức
 Quantitative association rules (luật kết hợp định lượng):
 weight in [70kg – 90kg] => height in [170cm – 190cm]
 Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY =>
height in TALL
 Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng
Binary association rules.
3. Thuật toán sinh các luật kết hợp Apriori

Tư tưởng chính của thuật toán Apriori là:
- Tìm tất cả frequent itemsets: k-itemset (itemsets gồm k items) được dùng để tìm
(k+1)- itemset. Đầu tiên tìm 1-itemset (ký hiệu L
1
). L
1
được dùng để tìm L
2
(2-itemsets).
L
2
được dùng để tìm L
3
(3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm
thấy.
- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2
tham số min_sup và min_conf)
3.1. Apriori Algorithm
1. Duyệt (Scan) toàn bộ transaction database để có được support S của 1-itemset, so
sánh S với min_sup, để có được 1-itemset (L
1
)
2. Sử dụng L
k-1
nối (join) L
k-1
để sinh ra candidate k-itemset. Loại bỏ các itemsets
không phải là frequent itemsets thu được k-itemset
3. Scan transaction database để có được support của mỗi candidate k-itemset, so
sánh S với min_sup để thu được frequent k –itemset (L

k
)
4. Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent
itemsets)
5. Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
6. Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin cậy
(Confidence) của nó > =min_conf
Chẳn hạn với I= {A1,A2,A5},các tập con của I:
{A1}, {A2}, {A5}, {A1,A2},{A1,A5},{A2,A5}
sẽ có các luật sau
{A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}
{A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}

Ví dụ: Giả sử ta có có sở dữ liệu giao dịch (Transaction Database -TDB) như sau :
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 12
Khóa luận môn Công Nghệ Tri Thức
Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau
Ta có frequent itemsets I ={B,C,E}, với min_conf =80% ta có 2 luật kết hợp là
{B,C} => {E} và {C,E} => {B}

Giả sử có cơ sở dữ liệu giao dịch bán hàng gồm 5 giao dịch như sau:
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 13
Khóa luận môn Công Nghệ Tri Thức
Thuật toán Apriori tìm các luật kết hợp trong giao dịch bán hàng trên như sau:

GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 14
Khóa luận môn Công Nghệ Tri Thức

Kết quả ta có các luật kết hợp sau (với min_sup= 40%, min_conf=70%)
R1: Beer => Diaper (support =60%, confidence = 75%)
R2: Diaper =>Beer (support =60%,confidence = 75%)
R3: Milk =>Beer (support =40%, confidence = 100%)
R4: Baby Powder => Diaper (support =40%,confidence = 100%)
Từ kết quả các luật được sinh ra bởi giao dịch bán hàng trên, ta thấy rằng có luật
có thể tin được (hợp lý) như Baby Powder => Diaper, có luật cần phải phân tích thêm
như Milk =>Beer và có luật có vẻ khó tin như Diaper =>Beer.Ví dụ này sinh ra các luật
có thể không thực tế vì dữ liệu dùng để phân tích (transaction database) hay còn gọi là
tranining data rất nhỏ.
III. TRIỂN KHAI LUẬT KẾT HỢP VỚI PHẦN MỀM WEKA
1. Giới thiệu Weka
- Weka là môi trường thử nghiệm KPDL do các nhà khoa học thuộc trường Đại học
Waitako, NZ, khởi xướng và được sự đóng góp của rất nhiều nhà nghiên cứu trên thế
giới. Weka là phần mềm mã nguồn mở, cung cấp công cụ trực quan và sinh động cho
mọi người tìm hiểu về KPDL. Weka còn cho phép các giải thuật học mới phát triển có
thể tích hợp vào môi trường của nó. Hệ thống được viết bằng java. Nó chạy được hầu hết
trên tất cả hệ điều hành.
- Weka cung cấp nhiều giải thuật khác nhau với nhiều phương thức cho quá trình xử
lý để ước lượng kết quả bằng sơ đồ cho bất kì một dữ liệu nào.
- Weka cung cấp những tính năng chính sau:
 Bao gồm nhiều công cụ đa dạng để thay đổi tập dữ liệu, xử lý dữ
liệu, giải thuật học và phương pháp đánh giá.
 Giao diện đồ họa người dùng (trực quan hóa dữ liệu).
 Môi trường để so sánh các giải thuật học.
- Bạn có thể xử lý trước tập dữ liệu, cho vào trong một sơ đồ, và phân chia các lớp
kết quả và thực hiện nó mà không cần viết bất cứ một chương trình nào.
- Weka lấy dữ liệu từ các file có định dạng .arff, nó được phát sinh từ một file hoặc
một bảng cơ sở dữ liệu.
- Cách sử dụng Weka là thông qua giao diện đồ họa của nó

GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 15
Khóa luận môn Công Nghệ Tri Thức
Hình 5: Giao diện đồ họa của Weka
- Các phiên bản của Weka
 WEKA 3.0: “book version”: Chỉ cho phép viết các câu lệnh.
 WEKA 3.2: “GUI version”- Graphical User interfaces (Phiên bản
giao diện đồ họa) : Ngoài việc viết các câu lệch có thể sử dụng giao diện
đồ họa.
 WEKA 3.3: “Development version” (Phiên bản phát triển) :Với
nhiều cải tiến.
- Trong phần Applications có 4 phần:
 Explorer: Sử dụng menu lựa chọn. Explorer chỉ sử dụng cho những
bộ dữ liệu vừa và nhỏ.
 Experimeter: Cho phép người dùng thực hiện những bài tập cơ bản
khi ứng dụng phân lớp và kĩ thuật hồi quy, với những công việc có giá
trị, phương pháp và tham số tốt nhất cho vấn đề đã cho.
 Cho phép bạn tự động hóa xử lý, làm cho nó phân lớp và lọc dễ dàng
với những cách thiết lập tham số khác nhau trên toàn thể bảng dữ liệu
 KnowledgeFlow: cho phép người dùng kéo thả những chiếc hộp
tượng trưng cho các giải thuật và dữ liệu để kết nối chúng lại với nhau
và đưa ra cấu trúc.
 Simple CLI: Sử dụng câu lệnh.
2. Tạo luật kết hợp với cơ sở dữ liệu BAN-DATA.CSV
2.1. Cơ sở dữ liệu
Cơ sơ dữ liệu sử dụng để tạo luật kết hợp là “bank- data.cvs”. CSDL này gồm
100 bản ghi, với 12 thuộc tính: ID (mã số), TUOI (tuổi), GIOI TINH (giới tính),
KHU VUC (khu vực), THU NHAP (thu nhập), KET HON (kết hôn), CON (số
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 16

Khóa luận môn Công Nghệ Tri Thức
con), XE (xe), TKTK (tài khoản tiết kiệm), TK_HIEN TAI (Tài khoản hiện tại),
THE CHAP (thế chấp).
Sử dụng phần mềm Weka để tạo ra luật kết hợp quyết định cho một khách hàng
được vay vốn hay không.
2.2. Preprocess (Tiền xử lý )
1. Mở bảng dữ liệu bank- data.csv: sau khi khởi động Weka, chọn Exploer
Preproces open, sau đó chọn đường dẫn đến file bank-data.csv.
2. Loại bỏ thuộc tính ID khỏi CSDL: Click chuột vào checkbox ở thuộc tính ID,
sau đó click vào
3. Chuyển đổi kiểu dữ liệu của thuộc tính TUOI thành kiểu Nominal với 3 giá trị
Thanh nien (Thanh niên), Trung nien (Trung niên), Gia(Già)
• Bước 1: Chọn mục MathExpression trong cây thư mục rồi thiết lập các thông số
trong hộp thoại của nó như sau:
Click vào để hoàn thành. Tiếp đó click vào để thực hiện.
• Bước 2: Chuyển đổi kiểu dữ liệu của trường TUOI sang kiểu Nominal
Sử dụng mục NumericToNominal
• Bước 3: Thêm các giá trị Thanh nien, Trung nien, Gia vào thuộc tính TUOI
Chọn mục AddValues ở cây thư mục và thiết lập các thông số trong hộp thoại của nó
như sau:
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 17
Khóa luận môn Công Nghệ Tri Thức
• Bước 4: Click vào button ở phía trên vùng Filter, sẽ xuất hiện một bảng
dữ liệu như sau:
Click chuột phải vào thuộc tính TUOI rồi chọn Replace Value Width… Xuất hiện
hộp thoại, gõ 1 vào rồi Click OK, xuất hiện hộp thoại thứ 2, gõ Thanh nien vào rồi click
OK:

Thực hiện tương tự với hai trường hợp còn lại.

2.2.1. Chuyển đổi kiểu dữ liệu của thuộc tính THU NHAP thành kiểu Nominal với 3 giá
trị Thap (Thấp), TB (Trung bình), Cao (Cao).
• Bước 1: Chọn mục MathExpression trong cây thư mục rồi thiết lập các thông số
trong hộp thoại của nó như sau:
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 18
Khóa luận môn Công Nghệ Tri Thức
Click vào để hoàn thành. Tiếp đó click vào để thực hiện.
• Bước 2: Chuyển đổi kiểu dữ liệu của trường THU NHAP sang kiểu Nominal
Sử dụng mục NumericToNominal.
• Bước 3: Thêm các giá trị Thap, TB, Cao vào thuộc tính THU NHAP
Chọn mục AddValues ở cây thư mục và thiết lập các thông số trong hộp thoại của nó
như sau:
• Bước 4: Click vào button ở phía trên vùng Filter, sẽ xuất hiện một bảng
dữ liệu như sau:
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 19
Khóa luận môn Công Nghệ Tri Thức
Click chuột phải vào thuộc tính THU NHAP rồi thực hiện tương tự Bước 4 của phần
3
2.2.2. Chuyển đổi kiểu dữ liệu của thuộc tính CON thanh kiểu Nominal với 3 giá trị
0_con, 1_con, 2_con, 3_con
Bước 1:Chuyển kiểu dữ liệu của thuộc tính con thành kiểu Nominal
Sử dụng mục NumericToNominal
Bước 2: Dùng mục Addvalues để thêm giá trị con vào thuộc tính CON
Bước 3: Dùng mục mergeTwoValues để gộp 2 giá trị 0 và giá trị con thành một giá
trị có tên là 0_con
Quay lại bước 2 và thực hiện tương tự đối với các giá trị còn lại. Sau khi thực hiện
xong trong thuộc tính CON sẽ có 4 giá trị là 0_con, 1_con, 2_con, 3_con.
Lưu ý: Sau khi đã xử lý xong dữ liệu click vào button để lưu lại bảng dữ

liệu. Ta nhận thấy rằng ở các thuộc tính TUOI và THU NHAP sau khi xử lý xong có một
số giá trị sẽ không được sử dụng đến là 1, 2, 3, để loại bỏ những giá trị này ta luu bảng
dữ liệu lại với định dạng CSV rồi mở lại một lần nữa, lúc này các giá trị 1,2,3 đã bị loại
bỏ.
3. Classifier (Phân lớp)
Trong vùng Classifier click button

sau đó chọn mục tree/j48 rồi click vào
button

để bắt đầu việc phân lớp. Sau khi phân lớp xong kết quả sẽ được hiện thì ở
vùng Classifier như sau:
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 20
Khóa luận môn Công Nghệ Tri Thức
Relation: BANK-DATA-SUA
Instances: 101
Attributes: 11
TUOI
GIOI TINH
KHU VUC
THU NHAP
KET HON
CON
XE
TKTK
TK_HIEN TAI
THE CHAP

CHO VAY
Test mode: 10-fold cross-validation
=== Classifier model (full training set) ===
J48 pruned tree

CON = 1_con: C (19.0/2.0)
CON = 0_con
| THE CHAP = K
| | KET HON = K: C (7.0/1.0)
| | KET HON = C
| | | GIOI TINH = nam: C (12.0/5.0)
| | | GIOI TINH = nu: K (12.0/3.0)
| THE CHAP = C
| | TKTK = K: C (3.0/1.0)
| | TKTK = C: K (12.0/1.0)
CON = 3_con
| TKTK = K: K (3.0)
| TKTK = C: C (6.0/1.0)
CON = 2_con
| TUOI = Trung nien
| | TKTK = K: C (5.0/1.0)
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 21
Khóa luận môn Công Nghệ Tri Thức
| | TKTK = C
| | | KET HON = K: K (2.0)
| | | KET HON = C
| | | | TK_HIEN TAI = K: K (4.0/1.0)
| | | | TK_HIEN TAI = C: C (2.0)
| TUOI = Thanh nien: K (8.0/1.0)

| TUOI = Gia: C (6.0/1.0)
Number of Leaves : 14
Size of the tree : 24
Time taken to build model: 0.09 seconds
=== Stratified cross-validation ===
=== Summary ===
Correctly Classified Instances 55 54.4554 %
Incorrectly Classified Instances 46 45.5446 %
Kappa statistic 0.0897
Mean absolute error 0.4312
Root mean squared error 0.5574
Relative absolute error 86.5751 %
Root relative squared error 111.6459 %
Total Number of Instances 101
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0.537 0.447 0.58 0.537 0.558 0.618 C
0.553 0.463 0.51 0.553 0.531 0.618 K
Weighted Avg. 0.545 0.454 0.547 0.545 0.545 0.618
=== Confusion Matrix ===
a b < classified as
29 25 | a = C
21 26 | b = K
Trong vùng result list, click chuột phải vào dòng chữ tree.j48 chọn mục Visualize
tree để mở cây quyết định
4. Associate (Tạo luật kết hợp)
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 22
Khóa luận môn Công Nghệ Tri Thức
Trong vùng Associator, bên phải button


xuất

hiện dòng chữ Apriori -N 10
-T 0 -C 0.9 -D 0.05 -U 1.0 -M 0.1 -S -1.0 -A -c -1, click chuột trái (hoặc chuột phải chọn
Show properties…) vào dòng chữ này để thiết lập các tham số như hình sau:
Click Ok sau đó click vào button để tạo luật kết hợp, kết quả sẽ hiện thị ở
vùng Associator output như sau:
=== Run information ===
Scheme: weka.associations.Apriori -N 10 -T 0 -C 0.9 -D 0.05 -U 1.0 -M 0.1 -S
-1.0 -A -c -1
Relation: BANK-DATA-SUA
Instances: 101
Attributes: 11
TUOI
GIOI TINH
KHU VUC
THU NHAP
KET HON
CON
XE
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 23
Khóa luận môn Công Nghệ Tri Thức
TKTK
TK_HIEN TAI
THE CHAP
CHO VAY
=== Associator model (full training set) ===
Apriori

=======
Minimum support: 0.1 (10 instances)
Minimum metric <confidence>: 0.9
Number of cycles performed: 18
Generated sets of large itemsets:
Size of set of large itemsets L(1): 42
Size of set of large itemsets L(2): 172
Size of set of large itemsets L(3): 131
Size of set of large itemsets L(4): 19
Size of set of large itemsets L(5): 1
Best rules found:
1. CON=1_con TK_HIEN TAI=C 16 ==> CHO VAY=C 15 conf:(0.94)
2. CON=1_con TKTK=C 13 ==> CHO VAY=C 12 conf:(0.92)
3. CON=1_con THE CHAP=K 13 ==> CHO VAY=C 12 conf:(0.92)
4. CON=1_con XE=K 12 ==> CHO VAY=C 11 conf:(0.92)
5. CON=1_con TKTK=C TK_HIEN TAI=C 12 ==> CHO VAY=C 11 conf:(0.92)
6. CON=1_con TK_HIEN TAI=C THE CHAP=K 12 ==> CHO VAY=C 11 conf:
(0.92)
7. CON=0_con TKTK=C THE CHAP=C 12 ==> CHO VAY=K 11 conf:(0.92)
Kết quả: Tạo được 7 luật kết hợp:
1. CON=1_con TK_HIEN TAI=C 16 ==> CHO VAY=C 15 conf:(0.94)
2. CON=1_con TKTK=C 13 ==> CHO VAY=C 12 conf:(0.92)
3. CON=1_con THE CHAP=K 13 ==> CHO VAY=C 12 conf:(0.92)
4. CON=1_con XE=K 12 ==> CHO VAY=C 11 conf:(0.92)
5. CON=1_con TKTK=C TK_HIEN TAI=C 12 ==> CHO VAY=C 11 conf:(0.92)
6. CON=1_con TK_HIEN TAI=C THE CHAP=K 12 ==> CHO VAY=C 11 conf:
(0.92)
7. CON=0_con TKTK=C THE CHAP=C 12 ==> CHO VAY=K 11 conf:(0.92).
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 24

Khóa luận môn Công Nghệ Tri Thức
KẾT LUẬN
Ngày nay, việc xây dựng ra một sản phẩm (đặc biệt là sản phẩm internet) ngày càng
trở nên đơn giản hóa, tuy vậy để tồn tại, phát triển và mở rộng cần có những tính năng
thông minh hỗ trợ cho người dùng đơn giản hóa việc truy xuất, đúng thông tin họ cần…
Tất cả điều này đều cần đến nền tảng data mining bên dưới.
Các công nghệ data mining thực ra không mới, nó đã hình thành cách đây hơn 20
năm, từ khi các công nghệ điện toán xử lý song song phát triển. Tuy nhiên việc ứng dụng
nó và các hệ thống web là điều còn khá mới mẻ, đặc biệt là các sản phẩm trực tuyến ở
Việt nam chúng ta, hầu như chưa trang web nào ứng dụng thực sự các công nghệ data
mining, lý do là quy mô chưa đủ lớn, lượng dữ liệu cần phân tích còn nhỏ và hẹp
Tôi xin chân thành cám ơn GS. TSKH Hoàng Kiếm và các Thầy phụ trách môn học
đã tận tình hướng dẫn chúng tôi tiếp cận môn “Công nghệ tri thức và ứng dụng” làm nền
tảng lý thuyết cho việc nghiên cứu và ứng dụng vào thực tiễn. Hi vọng, những học viên
hiện nay của chương trình đào tạo thạc sĩ CNTT qua mạng sau này sẽ góp phần tạo ra
được những sản phẩm cụ thể, có thể áp dụng vào thực tiễn cuộc sống.
GVHD: GS. TSKH Hoàng Kiếm
HVTH: Mạc Thị Biên Page 25

×