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

Ứng dụng thuật toán EFIM để khai phá tập mục hữu ích cao từ cơ sở dữ liệu bán hàng tại siêu thị Co.opMart Quảng Ngãi

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 (860.96 KB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM

PHẠM THỊ KIM PHƯỢNG

ỨNG DỤNG THUẬT TOÁN EFIM
ĐỂ KHAI PHÁ TẬP MỤC HỮU ÍCH CAO TỪ
CƠ SỞ DỮ LIỆU BÁN HÀNG TẠI SIÊU THỊ
CO.OPMART QUẢNG NGÃI

Chuyên ngành: Hệ thống thông tin
Mã số: 61.49.01.04

TÓM TẮT
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN

Đà Nẵng – Năm 2017


Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC SƯ PHẠM - ĐHĐN

Người hướng dẫn khoa học: PGS.TSKH. Trần Quốc Chiến

Phản biện 1: TS. Vũ Thị Thanh Trà
Phản biện 2: TS. Nguyễn Quang Thanh

Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ Hệ thống thông tin họp tại Đại học sư phạm – Đại học
Đà Nẵng vào ngày 30 tháng 07 năm 2017


Có thể tìm hiểu luận văn tại:
Thư viện Trường Đại học Sư phạm Đà Nẵng, Đại học Đà Nẵng.


1
MỞ ĐẦU
1. Lý do chọn đề tài
Trong những năm gần đây, khai phá dữ liệu (Data mining) đã
trở thành một trong những hướng nghiên cứu lớn nhất của lĩnh vực
khoa học máy tính và công nghệ thông tin. Khai phá dữ liệu là quá
trình khai phá, trích xuất, khai thác và sử dụng những dữ liệu có giá
trị tiềm ẩn từ bên trong lượng lớn dữ liệu được lưu trữ trong các Cơ
Sở Dữ Liệu (CSDL), kho dữ liệu, trung tâm dữ liệu… dựa trên kĩ
thuật như mạng nơ ron, lý thuyết tập thô, tập mờ, biểu diễn tri thức…
Khai phá dữ liệu đang được áp dụng một cách rộng rãi trong nhiều
lĩnh vực kinh doanh và đời sống khác nhau: Marketing, tài chính,
ngân hàng, bảo hiểm, khoa học, y tế, giáo dục, an ninh...
Khai phá tập mục phổ biến thông thường tập trung chủ yếu vào
việc tìm kiếm và phát hiện các tập mục thường xuyên trong CSDL
giao tác. Mô hình khai phá tập mục phổ biến cơ bản có nhiều ứng
dụng trong thực tế nhưng có những hạn chế, không đáp ứng đầy đủ
yêu cầu của người sử. Chính vì vậy mà một khái niệm mới ra đời, đó
là khai phá tập mục hữu ích cao (High Utility Itemsets Mining) tức là
mỗi một mục có xét đến yếu tố hữu ích của nó (ví dụ: Nhà kinh
doanh họ chỉ quan tâm đến số lượng, lợi nhuận, doanh thu của mỗi
mặt hàng là bao nhiêu trong mỗi lần giao dịch). Như vậy, khai phá
tập mục hữu ích cao là tìm kiếm trong CSDL giao tác các tập mục có
giá trị lớn hơn một ngưỡng hữu ích tối thiểu cho trước.
Khai phá tập mục hữu ích cao là một mở rộng của bài toán
khai phá tập mục phổ biến, đã được nhiều tác giả quan tâm với mục



2
đích đánh giá ý nghĩa của các tập mục trong khai phá luật kết hợp.
Thuật toán EFIM là một trong các thuật toán khai phá tập mục hữu
ích cao, đây là thuật toán mới có khả năng khắc phục các hạn chế của
các thuật toán được đề xuất trước đó.
Siêu thị Co.opMart Quảng Ngãi là một hệ thống siêu thị bán lẻ
của Việt Nam trực thuộc Liên hiệp các Hợp tác xã Thương mại thành
phố Hồ Chí Minh. Co.opMart trở thành nơi mua sắm đáng tin cậy
của người tiêu dùng Quảng Ngãi. Siêu thị cung cấp nhiều mặt hàng
đảm bảo chất lượng và số lượng. Tuy nhiên trong siêu thị có những
mặt hàng tuy số lượng bán nhiều nhưng lợi nhuận mang lại khá thấp
và ngược lại có những mặt hàng tuy số lượng bán ít nhưng mang lại
lợi nhuận cao mà siêu thị chưa xác định được nên chưa có chiến lược
kinh doanh dẫn đến doanh thu bán hàng thấp. Ví dụ: Một ngày siêu
thị bán được 100 bịch khăn giấy nhưng lợi nhuận không cao bằng
bán 1 cái tivi.
Từ đó ta có thể áp dụng kỹ thuật khai phá tập mục hữu ích cao
để rút ra thông tin các mặt hàng bán kèm với nhau mang lại giá trị lợi
nhuận cao cho siêu thị. Coi mỗi mặt hàng là một mục, mỗi hóa đơn
bán hàng là một giao tác. Ứng với mỗi giao tác, mỗi mục có một giá
trị hữu ích nội, chính là số lượng bán ra của mỗi mặt hàng trong từng
hóa đơn, mỗi mặt hàng có giá trị lợi nhuận và được coi là giá trị hữu
ích ngoại của mục.
Từ những lý do trên, với sự hướng dẫn của thầy PGS.TSKH.
Trần Quốc Chiến. Tôi chọn hướng nghiên cứu và thực hiện đề tài:
“Ứng dụng thuật toán EFIM để khai phá tập mục hữu ích cao từ



3
cơ sở dữ liệu bán hàng tại siêu thị Co.opMart Quảng Ngãi”.
2. Mục tiêu và nhiệm vụ
2.1. Mục tiêu
- Thu thập dữ liệu bán hàng tại siêu thị Co.opMart Quảng Ngãi.
- Tìm hiểu thuật toán EFIM để khai phá tập mục hữu ích cao từ
CSDL giao tác.
- Ứng dụng thuật toán EFIM để tìm các tập mục hữu ích cao từ
CSDL bán hàng tại siêu thị Co.opMart Quảng Ngãi.
2.2. Nhiệm vụ
- Tìm hiểu các khái niệm cơ bản về khai phá dữ liệu và khai
phá luật kết hợp.
- Tìm hiểu các thuật toán khai phá tập mục hữu ích cao trước đây.
- Tìm hiểu thuật toán EFIM.
- Thu nhập dữ liệu từ thực tế, tổng hợp phân tích dữ liệu.
- Cài đặt thuật toán EFIM trên CSDL giao tác và rút ra những tập
mục hữu ích cao của mặt hàng thường bán kèm với nhau mang lại lợi
nhuận cao cho siêu thị.
- So sánh thuật toán EFIM so với thuật toán khác.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng
- Thuật toán EFIM để khai phá tập mục hữu ích cao.
- Thông tin dữ liệu bán hàng tại siêu thị.
3.2. Phạm vi nghiên cứu
- Nghiên cứu thuật toán EFIM để khai phá tập mục hữu ích cao
từ CSDL giao tác.


4
- Số liệu kinh doanh của siêu thị Co.opMart tại Quảng Ngãi

trong thời gian năm 2016.
4. Phương pháp nghiên cứu
4.1. Phương pháp nghiên cứu tài liệu
- Tiến hành thu thập và nghiên cứu các tài liệu có liên quan
đến đề tài.
- Nghiên cứu giải pháp xây dựng và cài đặt thuật toán EFIM.
4.2. Phương pháp thực nghiệm
- Xây dựng cơ sở dữ liệu.
- Cài đặt thuật toán và chạy thử nghiệm trên bộ dữ liệu giao tác.
- Nhận xét và đánh giá kết quả thuật toán EFIM với thuật toán khác.
5. Ý nghĩa của đề tài
5.1. Ý nghĩa khoa học
- Cài đặt thuật toán EFIM để rút ra các mặt hàng bán kèm có
giá trị lợi nhuận cao làm cơ sở để áp dụng thuật toán khai phá luật kết
hợp từ tập mục hữu ích cao.
- Rút ra các ưu điểm so với các thuật toán khác.
5.2. Ý nghĩa thực tiễn
Từ CSDL bán hàng rút ra các mặt hàng bán kèm mang lại lợi
nhuận cao, từ đó định hướng kinh doanh cho siêu thị.
6. Kết quả dự kiến
6.1. Kết quả của đề tài
- Nắm được lý thuyết khai phá tập mục hữu ích cao bằng thuật
toán EFIM.
- Ứng dụng trên CSDL giao tác bán hàng tại siêu thị


5
Co.opMart Quảng Ngãi.
6.2. Hướng phát triển của đề tài.
- Nghiên cứu các thuật toán khai phá tập mục hữu ích cao khác.

- Nghiên cứu thuật toán khai phá luật kết hợp từ tập mục hữu
ích cao.
7. Bố cục luận văn
Chương 1: Cơ sở lý thuyết về khai phá dữ liệu
Chương này trình bày các cơ sở lý thuyết bao gồm: Tổng quan
về khai phá dữ liệu, kỹ thuật khai phá tập mục phổ biến và luật kết
hợp trong CSDL giao tác.
Chương 2: Khai phá tập mục hữu ích cao từ cơ sở dữ liệu
giao tác
Trong chương 2 trình bày các khái niệm liên quan đến khai
phá tập mục hữu ích cao và thuật toán EFIM trong CSDL giao tác.
Chương 3: Cài đặt thuật toán EFIM và ứng dụng khai phá
dữ liệu bán hàng
Chương này tập trung vào thuật toán EFIM, thu thập và xử lý
dữ liệu bán hàng tại siêu thị Co.opMart Quảng Ngãi, cài đặt và thực
nghiệm chương trình. So sánh thuật toán EFIM với thuật toán khác.
Cuối cùng, những đánh giá, kết luận và hướng phát triển của
đề tài trong tương lai.


6
CHƯƠNG 1
CƠ SỞ LÝ THUYẾT VỀ KHAI PHÁ DỮ LIỆU
1.1. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1.1. Sơ lượt về khai phá dữ liệu
Khai phá dữ liệu đã thu hút rất nhiều sự chú ý trong ngành
công nghiệp thông tin và toàn xã hội trong những năm gần đây, do sự
sẵn có một lượng lớn dữ liệu và cần phải sắp xếp chuyển dữ liệu đó
thành thông tin và kiến thức bổ ích. Các thông tin và kiến thức thu
được có thể được sử dụng cho các ứng dụng khác nhau, từ phân tích

thị trường, phát hiện gian lận, và duy trì khách hàng, để kiểm soát sản
xuất, v.v. Khai Phá Dữ Liệu (KPDL) là một khái niệm xuất hiện vào
những năm cuối của thập niên 80. Nó bao hàm các kỹ thuật nhằm
phát hiện ra các thông tin có giá trị tiềm ẩn trong các CSDL. KPDL
có một tiềm năng to lớn trong việc tạo ra những lợi nhuận đáng kể
trong nền kinh tế.
Nói cách khác KPDL là quá trình khai phá, trích xuất và sử
dụng những dữ liệu có giá trị tiềm ẩn từ bên trong một lượng lớn dữ
liệu được lưu trữ trong các CSDL, kho dữ liệu…
1.1.2. Quá trình khám phá tri thức từ cơ sở dữ liệu
1.1.3. Các dạng dữ liệu có thể khai phá
- Cơ sở dữ liệu quan hệ (Relational Database): Một hệ thống
cơ sở dữ liệu, cũng được gọi là một hệ thống quản lý CSDL, bao gồm
một bộ sưu tập các dữ liệu liên quan với nhau, được biết đến như là
một CSDL và một tập hợp các chương trình phần mềm để quản lý và


7
truy cập dữ liệu. Các chương trình phần mềm cung cấp cơ chế để xác
định cấu trúc CSDL và lưu trữ dữ liệu, để xác định và quản lý đồng
thời, chia sẻ, hoặc truy cập dữ liệu phân tán, đảm bảo tính thống nhất
và an ninh thông tin lưu trữ bất chấp sự cố hệ thống hoặc các nỗ lực
truy cập trái phép.
- Cơ sở dữ liệu giao tác (Transaction Database): Là tập hợp
những bản ghi giao dịch. Khai phá dữ liệu trên CSDL giao tác tập
trung vào khai phá luật kết hợp, tìm mối tương quan giữa những mục
dữ liệu trong các bản ghi giao dịch. Dạng dữ liệu này thường phổ
biến trong lĩnh vực thương mại, ngân hàng, bán hàng,…
- Cơ sở dữ liệu đa chiều (Multidimention Structures, Data
Warehouses, Data Mart): Các kho dữ liệu được tập hợp và chọn lọc

từ nhiều nguồn dữ liệu khác nhau. Dạng dữ liệu này chủ yếu phục vụ
cho quá trình phân tích cũng như khai phá tri thức và hỗ trợ quá trình
ra quyết định.
- Cơ sở dữ liệu quan hệ - hướng đối tượng (Object Relational
Databases): Dạng dữ liệu kết hợp giữa hai mô hình quan hệ và hướng
đối tượng. Dữ liệu này được ứng dụng trong viễn thông,…
- Dữ liệu không gian và thời gian (Spatial, Temporal, and
Time-series data): Dạng dữ liệu có tích hợp thuộc tính về không gian
như dữ liệu bản đồ, mạng cáp điện thoại hoặc thời gian như dữ liệu
cước điện thoại, phát hành báo chí.
- Cơ sở dữ ĐỀ
Mục tiêu của bài toán khai phá luật kết hợp là phát hiện các tập
mục phổ biến từ đó sinh ra các luật kết hợp. Trong lĩnh vực kinh
doanh, khai phá tập mục phổ biến từ CSDL giao tác chính là tìm ra
những tập mục, thường xuất hiện trong các giao tác. Tuy nhiên, lợi
nhuận theo đơn vị sản phẩm và số lượng mua của các mục chưa đề
cập trong khai phá tập mục phổ biến nên áp dụng vào trong thực tế
chưa cao. Ví dụ: Bán một viên kim cương thì lợi nhuận cao hơn
nhiều so với bán một chai nước. Vì vậy, để đáp ứng yêu cầu của thực
tiễn, nhiều nhà nghiên cứu đã đưa ra hướng mở rộng cho bài toán đó
là khai phá tập mục hữu ích cao, nhằm khám phá ra những tập mục
có giá trị hữu ích hay lợi nhuận cao. Khai phá tập mục hữu ích cao là
hướng nghiên cứu quan trọng của KPDL trong những năm gần đây
và được ứng dụng rộng rãi như phân tích giỏ hàng, thương mại di
động, tiếp thị chéo….
2.2. TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU KHAI PHÁ
TẬP MỤC HỮU ÍCH CAO
Khai phá tập mục hữu ích cao là phần mở rộng của bài toán
khai phá tập mục phổ biến. Khai phá tập mục hữu ích cao là tìm tất
các tập mục có giá trị hữu ích lớn hơn ngưỡng hữu ích tối thiểu cho

trước (do người dùng qui định). Mục đích của khai phá tập mục hữu


12
ích cao là làm giảm thiểu kích thước của tập ứng viên và đơn giản
hóa quá trình tính toán độ hữu ích các tập mục, từ đó giảm số lượng
ứng viên cho tập mục hữu ích cao, giảm thời gian khai phá.
2.3. MỘT SỐ ĐỊNH NGHĨA CỦA BÀI TOÁN
Định nghĩa 1: Giá trị hữu ích của mục (item) ij trong giao tác Td , ký
hiệu u(ij, Td) được xác định như sau:
u(ij, Td) = q(ij, Td) * p(ij)
Trong đó: + q(ij, Td) là giá trị hữu ích nội
+ p(ij) là giá trị hữu ích ngoại
Định nghĩa 2: Giá trị hữu ích của tập mục (itemset) X trong giao tác
Td, ký hiệu u(X, Td) bằng tổng giá trị hữu ích của tất cả các mục chứa
X trong giao tác Td.

Định nghĩa 3: Giá trị hữu ích của tập mục X trong CSDL giao tác D,
ký hiệu u(X) được xác định bằng tổng các giá trị hữu ích của X trong
tất cả các giao tác chứa X trong D.

u( X ) 



Td  D  X Td

u ( X , Td )

Định nghĩa 4: Một tập mục X được gọi là tập mục hữu ích cao nếu

giá trị hữu ích của X lớn hơn hoặc bằng ngưỡng hữu ích tối thiểu
minutil do người dùng quy định u(X) ≥ minutil. Ngược lại, X được
gọi là tập mục hữu ích thấp.
Định nghĩa 5: Bài toán khai phá tập mục hữu ích cao – High Utility
Itemset Mining (HUIM) là bài toán tìm tất cả các tập mục có giá trị


13
hữu ích cao lớn hơn hoặc bằng ngưỡng hữu ích tối thiểu.

H = {X | X  I , u(X) ≥ minutil}
Trong đó: + I là tập mục trong CSDL giao tác.
+ H tập hợp các tập mục hữu ích cao.
2.4. MỘT SỐ THUẬT TOÁN KHAI PHÁ TẬP MỤC HỮU ÍCH
CAO
2.4.1. Thuật toán Two-Phase
Thuật toán hai pha (Two-Phase) là một trong các thuật toán
khai phá tập mục hữu ích cao. Thuật toán này tỉa các tập ứng viên
hiệu quả và đơn giản hóa việc tính toán giá trị hữu ích nhằm giảm
không gian tìm kiếm và giảm chi phí bộ nhớ.
2.4.2. Thuật toán FHM
Để tránh phát sinh các tập ứng viên trong thuật toán TwoPhase, nhiều thuật toán mới được đề xuất để khai phá các tập mục
hữu ích cao trong giai đoạn 1, thời gian thực hiện nhanh hơn 10 và
100 lần so với thuật toán hai pha như thuật toán HUI-Miner, thuật
toán FHM nhanh gấp 6 lần so với HUI-Miner.
Tác giả đưa ý tưởng thuật toán:
- Giá trị đầu vào là CSDL giao tác D và ngưỡng hữu ích tối
thiểu do người dùng quy định.
- Đầu ra: Các tập mục có giá trị hữu ích cao
- Thuật toán sẽ tính giá trị TWU cho các mục thông qua việc

quét CSDL D, sau đó tập hợp các mục có TWU lớn hơn ngưỡng hữu
ích tối thiểu minutil, ký hiệu I’ và sắp xếp giá trị TWU của mỗi mục
theo thứ tự tăng dần. Quét CSDL D để xây dựng giá trị hữu ích của


14
các mục trong I’ và cấu trúc EUCS (Estimated Utility Co-Occurrence
Structure).
2.5. THUẬT TOÁN EFIM
2.5.1. Một số khái niệm
- Độ hữu ích giao tác (Transaction Utility)
Độ hữu ích của giao tác Td, ký hiệu tu(Td) là tổng giá trị hữu
ích của tất cả các mục chứa trong giao tác đó.

tu (Td ) 



i j Td

u (i j , Td )

- Độ hữu ích trọng số giao tác (Transaction Weighted
Utilization - TWU)
Độ hữu ích trọng số giao tác của một tập mục X trong CSDL
giao tác D, ký hiệu TWU(X) là tổng giá trị hữu ích của tất cả các giao
tác chứa X trong D.

- Các mục mở rộng từ tập mục:
Gọi α là tập mục, E(α) là tập hợp tất cả các mục có thể mở

rộng từ tập mục α để tìm kiếm theo chiều sâu, tức là:
E(α) = {z | (zI)  (z ≻ x), x  α}
- Giao tác tham chiếu – Projected transaction
Tham chiếu của giao tác T lên tập mục α ký hiệu là α – T và
được định nghĩa như sau:
α – T = {i | i ∈ T ∧ i ∈ E(α)}
- Cơ sở dữ liệu tham chiếu – Projected database


15
Tham chiếu của một CSDL D lên tập mục α, ký hiệu α – D và
được định như sau:
α – D = {α – T | (T D)  α – T   }
- Hợp nhất giao tác – Transaction merging
Hợp nhất giao tác là thay thế một tập các giao tác giống nhau
T1, T2, … Tm trong CSDL D bằng một giao tác mới TM = T1 = T2 =
… = Tm.
Việc hợp nhất các giao tác giống nhau nhằm giảm kích thước
CSDL nhưng đạt hiệu quả không cao. Vì vậy cần phải hợp nhất các
giao tác trong cơ sở dữ liệu tham chiếu.
- Hợp nhất giao tác tham chiếu - Projected transaction
merging
Hợp nhất giao tác tham chiếu là thay thế một tập các giao tác
giống nhau T1, T2, … Tm trong CSDL tham chiếu α – D bằng một
giao tác mới TM = T1 = T2 = … = Tm, với số lượng của mỗi mục
(iTM) bằng tổng giá trị hữu ích nội trong các giao tác, tức là:
q (i, TM ) 

m


 q(i, T
k 1

k

)

- Thứ tự các giao tác - Total order on transactions
Gọi ≻T là tập các giao tác sắp xếp theo thứ tự từ trước ra sau.
Xét 2 giao tác: Ta = {i1, i2, ..., im} và Tb = {j1, j2, ..., jk}. Thứ tự sắp
xếp các giao tác ≻T được xác định bằng 4 trường hợp:
+ Trường hợp 1: Tb ≻Ta nếu cả hai giao tác Tb, Ta là như nhau
và TID của Tb lớn hơn TID của Ta
+ Trường hợp 2: Tb ≻T Ta nếu k > m và im − x = jk − x với 0 ≤ x < m


16
+ Trường hợp 3: Tb ≻T Ta nếu 0 ≤ x < min(m, k) làm cho j k − x

≻ im − x và im –y = jk – y với x + Trường hợp 4: Ta ≻T Tb
2.5.2. Thuật toán EFIM
Thuật toán EFIM - Thuật toán 1
Input: D: Một cơ sở dữ liệu giao tác, minutil: ngưỡng hữu ích tối
thiểu do người dùng cho trước
Output: Tập mục hữu ích cao
Các bước:
1. Xét tập mục α = 
2. Duyệt CSDL D để tính giá trị hữu ích cục bộ cho tất cả các mục
lu(α, i) trong α, sử dụng mảng utility-bin

3. So sánh giá trị hữu ích cục bộ với minutil.
Secondary(α) = {i|iI  lu(α, i) ≥ minutil}
4. Gọi ≻ là thứ tự sắp xếp TWU tăng dần trong Secondary(α).
5. Loại bỏ tất cả các mục không phải là tập hữu ích cao trong
Secondary(α), sắp xếp thứ tự các giao tác theo ≻ và xóa các giao tác
rỗng.
6. Sắp xếp thứ tự các giao tác trong D theo ≻ T
7. Duyệt D để tính giá trị hữu ích su(α, i) của mỗi mục theo
Secondary(α).
8. Primary(α)={i|i  Secondary(α) ∧ su(α, i) ≥ minutil}.
9. Search(α, D, Primary(α), Secondary(α), minutil).


17

Hàm đệ quy tìm kiếm – Thuật toán 2
Input: - α: tập mục
- α – D: CSDL tham chiếu của tập mục α
- Primary(α): các mục chính của α
- Secondary(α): các mục phụ của α
- minutil: ngưỡng hữu ích tối thiểu do người dùng quy định
Output: tập hợp các tập mục hữu ích cao được mở rộng từ α
Các bước:
1. Nếu item i Primary(α) thực hiện
2.

β=α ∪{i}

3.


Quét α – D để tính giá trị hữu ích của u(β) và tạo β − D

4. Nếu u(β) ≥ minutil thì xuất β; tính su(β, z) và lu(β, z) tất cả các
mục của z ∈ Secondary(α) bằng cách quét β − D, dùng 2 mảng
utility-bin
5.

Primary(β) = {z ∈ Secondary(α) | su(β, z) ≥ minutil}

6.

Secondary(β) = {z ∈ Secondary(α) | lu(β,z) ≥ minutil}

7.

Search(β, β − D, Primary(β), Secondary(β), minutil)

8. Kết thúc
2.7. TỔNG KẾT CHƯƠNG 2
Hiện nay có nhiều kỹ thuật và thuật toán ứng dụng trong khai
phá tập mục hữu ích cao. Tuy nhiên, tốn kém về mặt chi phí kể cả
tiêu thụ bộ nhớ và thời gian thực hiện nên có nhiều thuật toán cải tiến
hiệu quả trong khai phá tập mục hữu ích cao về bộ nhớ và thời gian


18
thực hiện. Nội dung trong chương 2 trình bày thuật toán EFIM và các
định nghĩa liên quan như: Giá trị hữu ích cây con và giá trị hữu ích
cục bộ để tỉa không gian tìm kiếm. Thuật toán còn dựa vào cách tiếp
cận mảng utility-bin để tính toán nhanh các ràng buộc. Hơn nữa, để

giảm chi phí quét CSDL, EFIM giới thiệu hai kỹ thuật CSDL dự kiến
và hợp nhất giao tác để thực hiện theo thời gian và không gian.


19
CHƯƠNG 3
CÀI ĐẶT THUẬT TOÁN EFIM VÀ ỨNG DỤNG
KHAI PHÁ DỮ LIỆU BÁN HÀNG
3.1. GIỚI THIỆU HỆ THỐNG SIÊU THỊ
3.2. GIẢI PHÁP KHAI PHÁ TẬP MỤC HỮU ÍCH CAO TỪ CƠ
SỞ DỮ LIỆU BÁN HÀNG TẠI SIÊU THỊ
3.3. THU THẬP VÀ XỬ LÝ DỮ LIỆU
3.3.1. Một số vấn đề liên quan đến lợi nhuận cao
3.3.2. Thu thập và xử lý dữ liệu
3.4. CÀI ĐẶT THUẬT TOÁN
3.5. THỬ NGHIỆM CHƯƠNG TRÌNH
Chương trình thử nghiệm được thực hiện trên máy tính Dell
core i7, 64 bit, Ram 8GB.
➢ Giao diện đăng nhập hệ thống: Người dùng đăng nhập với
tên đăng nhập và mật khẩu riêng để đăng nhập vào hệ thống.


20
Hình 3.3. Màn hình đăng nhập hệ thống
➢ Giao diện chính: Có 2 chức năng đó là Dữ liệu đầu vào
và Kết quả

Hình 3.4. Giao diện chính
➢ Xuất file kết quả: Nhấn nút “Lưu kết quả” để lưu các mặt
hàng bán kèm với nhau đem lại lợi nhuận cao, dữ liệu được lưu dưới

dạng file CSV như hình 3.4.


21

Hình 3.5. Kết quả các mặt hàng có giá trị lợi nhuận cao
3.6. ĐÁNH GIÁ THUẬT TOÁN
3.6.1. Kết quả đầu ra
Sau khi thực hiện 2 thuật toán trên cùng bộ dữ liệu với giá trị
min_util như nhau, kết quả đầu ra cho thấy số lượng tập mục hữu ích
cao và các mặt hàng bán kèm với nhau của 2 thuật toán là giống nhau.


22
3.6.2. Thời gian thực hiện
Sau khi chạy 2 thuật toán trên cùng bộ dữ liệu, cùng một giá trị
min_util, kết quả cho thấy thời gian thực hiện của thuật toán EFIM
nhanh hơn nhiều so với EHM cụ thể như: FHM sử dụng gấp 15, 9.1,
7.6, 15.8 lần so với EFIM. Kết quả so sánh thời gian của 2 thuật toán
được thể hiện trong hình 3.5.

Hình 3.5. Thời gian thực hiện của hai thuật toán
3.6.3. Sử dụng bộ nhớ
Thuật toán EFIM sử dụng bộ nhớ tốt hơn, ít tốn dung lượng hơn
so với thuật toán FHM tương ứng với min_util cụ thể như sau: FHM
sử dụng gấp 1.6, 2,4, 6.3, 3.6 lần so với EFIM. Kết quả so sánh bộ nhớ
của 2 thuật toán thể hiện trong hình 3.6.


23


Hình 3.6. Số nút tìm kiếm của 2 thuật toán
3.6.4. Tìm kiếm nút
Ngoài việc so sánh về kết quả, thời gian và bộ nhớ thì EFIM
còn vượt trội về khả năng cắt tỉa. Khi chạy trên 4 giá trị min_util
khác nhau cho thấy số nút tìm kiếm trên cây của thuật toán EFIM ít
hơn FHM, điều này có nghĩa việc cắt tỉa trong không gian tìm kiếm
của EFIM có hiệu quả hơn so với thuật toán FHM. Kết quả so sánh
số nút tìm kiếm của 2 thuật toán trong hình 3.7.

Hình 3.7. Số nút tìm kiếm của 2 thuật toán


24
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết quả đạt được
Về lý thuyết, luận văn đã trình bày được cơ sở lý thuyết liên
quan đến khai phá dữ liệu, kỹ thuật khai phá tập mục phổ biến và luật
kết hợp, thuật toán khai phá tập mục hữu ích cao EFIM.
Ứng dụng thuật toán EFIM để xây dựng hệ thống rút ra các
mặt hàng bán kèm mang lại lợi nhuận cao cho siêu thị Co.opMart
Quảng Ngãi. Nó giúp cho người quản lý đưa ra những chiến lược
kinh doanh nhằm đem lại doanh thu cao.
2. Hạn chế
- Chương trình chỉ xử lý và lưu trữ dữ liệu trên file excel và
chưa so sánh với nhiều thuật toán khác.
- Chưa kết nối đến hệ quản trị cơ sở dữ liệu của siêu thị.
- Dữ liệu thực hiện trên giao tác còn ít chỉ 1000 bản ghi.
- Hiện tại chỉ thực nghiệm trên một số mặt hàng, chưa áp dụng
hết các mặt hàng trong siêu thị.

3. Hướng phát triển
Trong thời gian tới sẽ hoàn thiện những chức năng còn hạn chế
và tiếp tục nghiên cứu thuật toán khai phá tập mục hữu ích cao khác
từ đó có thể nghiên cứu mở rộng thuật toán khai phá luật kết hợp từ
tập mục hữu ích cao.
Cần thử nghiệm ứng dụng với khối lượng lớn dữ liệu để đánh
giá hiệu xuất của thuật toán.



×