TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
···🙞🙜🕮🙞🙜···
ĐỒ ÁN CHUYÊN NGÀNH
NGÀNH: KHOA HỌC MÁY TÍNH
ĐỀ TÀI: PHÂN TÍCH XU HƯỚNG MUA HÀNG CỦA
KHÁCH HÀNG BẰNG LUẬT KẾT HỢP
GVHD: TS. Nguyễn Mạnh Cường
Lớp: ĐH KHMT02 – K15
Nhóm: 19
Thành viên: 1. Lưu Thị Thảo - 2020604469
2. Nguyễn Xuân Vũ - 2020604859
3. Nguyễn Thanh Tùng - 2020607194
Hà Nội – 2023
1
LỜI CẢM ƠN
Lời đầu tiên, nhóm xin gửi lời tri ân sâu sắc đến thầy Nguyễn Mạnh Cường.
Trong quá trình tìm hiểu đề tài, nhóm đã nhận được sự hướng dẫn và những chia sẻ
rất tận tình, tâm huyết của thầy. Từ những hướng dẫn tận tình của thầy cùng với kiến
thức mà nhóm đã học tập, tìm hiểu, chúng em đã hoàn thành báo cáo đồ án chuyên
ngành đề tài “Phân tích xu hướng mua hàng của khách hàng dựa trên luật kết hợp”.
Với tất cả sự cố gắng, nỗ lực của mình, nhóm em đã hồn thành tốt nhất bài báo
cáo này. Chúng em vẫn rất mong nhận được sự góp ý của thầy cơ để bài báo cáo của
chúng em được hồn thiện hơn.
Kính chúc thầy cơ thật nhiều sức khoẻ, hạnh phúc và thành công trong cuộc sống.
Nhóm xin chân thành cảm ơn!
Nhóm thực hiện
Lưu Thị Thảo
Nguyễn Xuân Vũ
Nguyễn Thanh Tùng
1
MỤC LỤC
LỜI CẢM ƠN ............................................................................................................ 1
DANH MỤC HÌNH ẢNH ......................................................................................... 4
LỜI NÓI ĐẦU ........................................................................................................... 5
CHƯƠNG 1. MỞ ĐẦU ............................................................................................. 7
1.1 Tổng quan về phân tích dữ liệu ....................................................................... 7
1.1.1 Phân tích dữ liệu là gì ................................................................................ 7
1.1.2 Quy trình phân tích dữ liệu ....................................................................... 7
1.2 Giới thiệu bài tốn phân tích xu hướng mua hàng......................................... 8
1.3 Ứng dụng của bài tốn ................................................................................... 10
1.4 Khó khăn và thách thức................................................................................. 11
CHƯƠNG 2. CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN................................. 13
2.1 Apriori Algorithm .......................................................................................... 13
2.1.1 Tổng quan ................................................................................................ 13
2.1.2 Ví dụ minh họa thuật toán Apriori ......................................................... 14
2.1.3 Ưu điểm và nhược điểm .......................................................................... 15
2.1.4 Ứng dụng .................................................................................................. 16
2.2 FB-Growth Algorithm ................................................................................... 17
2.2.1 Tổng quan ................................................................................................ 17
2.2.2 Ưu điểm và nhược điểm .......................................................................... 18
2.3 Eclat Algorithm .............................................................................................. 18
2.2.1 Tổng quan ................................................................................................ 18
2.3.2 Ưu điểm và nhược điểm .......................................................................... 19
2
2.4 Lựa chọn thuật tốn ....................................................................................... 20
2.5 Cơng cụ phục vụ thực hiện bài toán .............................................................. 20
2.5.1 Python....................................................................................................... 20
2.5.2 R................................................................................................................ 22
2.5.3 Lựa chọn công cụ ..................................................................................... 23
2.6 Kết luận chương 2 .......................................................................................... 23
CHƯƠNG 3. THỰC NGHIỆM .............................................................................. 24
3.1 Dữ liệu thực nghiệm ....................................................................................... 24
3.2. Cấu trúc project ............................................................................................ 25
3.3 Framework sử dụng ....................................................................................... 26
3.3.1 Tkinter ...................................................................................................... 26
3.3.2 Sử dụng Tkinter dựng giao diện ............................................................ 28
3.4 Kết quả thực nghiệm ...................................................................................... 35
KẾT LUẬN .............................................................................................................. 39
TÀI LIỆU THAM KHẢO....................................................................................... 40
3
DANH MỤC HÌNH ẢNH
Hình 1: Quy trình phân tích dữ liệu. ............................................................................ 7
Hình 2.1: Ngơn ngữ lập trình Python ......................................................................... 20
Hình 2.2: Ngơn ngữ lập trình R ................................................................................. 22
Hình 3.1: Dữ liệu 34 dòng đầu tiên trong tập dữ liệu ................................................. 24
Hình 3.2: Cấu trúc project ......................................................................................... 25
Hình 3.3: Giao diện chính của phần mềm .................................................................. 30
Hình 3.4: Giao diện mở file CSV .............................................................................. 31
Hình 3.5: Dữ liệu được hiển thị dạng bảng ................................................................ 32
Hình 3.6: Export các luật ra file................................................................................. 33
Hình 3.7: Giao diện hiển thị các luật ......................................................................... 36
Hình 3.8: Biểu đồ thể hiện các luật ............................................................................ 37
Hình 3.9: Biểu đồ 10 sản phẩm xuất hiện nhiều nhất trong giỏ hàng ......................... 38
4
LỜI NĨI ĐẦU
Trong thời đại số hóa ngày càng phát triển, việc phân tích dữ liệu đang trở nên
quan trọng hơn bao giờ hết, đặc biệt trong lĩnh vực thương mại điện tử. Xu hướng mua
sắm của người tiêu dùng thường biến đổi rất nhanh, và hiểu rõ những xu hướng này có
thể giúp các doanh nghiệp tối ưu hóa chiến lược kinh doanh, quảng cáo, và cung cấp
sản phẩm.
Trong đề tài nghiên cứu này, nhóm sẽ tập trung vào việc sử dụng luật kết hợp,
một phần của lĩnh vực học máy và khai thác dữ liệu, để phân tích và dự đoán xu hướng
mua sắm của người tiêu dùng. Luật kết hợp là một phương pháp mạnh mẽ để xác định
mối quan hệ giữa các sản phẩm hoặc dịch vụ mà người tiêu dùng thường mua cùng
nhau. Thông qua việc áp dụng luật kết hợp, chúng ta có thể tìm ra những mẫu chung
trong hành vi mua sắm của người tiêu dùng và dự đốn những sản phẩm có thể được
mua cùng nhau trong tương lai.
Mục tiêu của đề tài này là xây dựng một hệ thống phân tích xu hướng mua hàng
dựa trên luật kết hợp, sử dụng dữ liệu mua sắm thực tế, và áp dụng các kỹ thuật học
máy để dự đoán xu hướng mua sắm. Điều này sẽ giúp các doanh nghiệp hiểu rõ hơn về
nhu cầu của khách hàng và cải thiện quá trình quảng cáo, đề xuất sản phẩm, và quản lý
tồn kho.
Nội dung quyển báo cáo đồ án chuyên ngành sẽ bao gồm các chương như sau:
Chương 1: Phát biểu bài toán
Trong chương này chúng em sẽ giới thiệu tổng quan về phân tích dữ liệu, bài
tốn phân tích xu hướng mua hàng, xác định dữ liệu đầu vào và đầu ra của bài tốn,
ứng dụng và những khó khăn, thách thức của bài toán.
Chương 2: Các kỹ thuật giải quyết bài tốn
Trong chương này chúng em sẽ trình bày các phương pháp kỹ thuật có thể sử
dụng để giải quyết bài tốn và các cơng cụ thực hiện bài tốn. Đồng thời lựa chọn thuật
5
tốn và ngơn ngữ phù hợp với bài tốn phân tích xu hướng mua hàng của khách hàng
để thực hiện thực nghiệm.
Chương 3: Thực nghiệm
Trong chương 3 chúng em sẽ tiến hành xây dựng chương trình sử dụng kỹ thuật
đã chọn, từ đó đưa ra kết quả thực nghiệm.
Phần kết luận
Cuối cùng chúng em tổng hợp các kết quả đạt được, đưa ra hướng phát triển và
mở rộng đề tài nghiên cứu trong tương lai.
6
CHƯƠNG 1. MỞ ĐẦU
1.1 Tổng quan về phân tích dữ liệu
1.1.1 Phân tích dữ liệu là gì
Phân tích dữ liệu là quá tình kiểm tra, làm sạch, chuyển đổi và mơ hình hố dữ
liệu với mục tiêu khám phá thơng tin hữu ích đưa ra kết luận và hỗ trợ việc đưa ra quyết
định.
1.1.2 Quy trình phân tích dữ liệu
Hình 1: Quy trình phân tích dữ liệu.
Quy trình phân tích dữ liệu thường bao gồm các bước chính:
- Xác định mục tiêu và thu thập dữ liệu:
+ Xác định mục tiêu: là những kết quả cụ thể mà ta muốn đạt
được thơng qua việc xử lý và phân tích dữ liệu. Mục tiêu này xác
định hướng đi và phạm vi của q trình phân tích, giúp ta tập trung
vào việc thu thập thông tin quan trọng và thực hiện các phân để
đáp ứng các yêu cầu hoặc nhu cầu cụ thể.
+ Thu thập dữ liệu: là thu thập dữ liệu từ các nguồn khác nhau
như cơ sở dữ liệu, tệp tin, trang web, thiết bị cảm biến, và nhiều
nguồn khác. Dữ liệu có thể là số liệu, văn bản, hình ảnh, hoặc âm
thanh.
- Tiền xử lý dữ liệu: Dữ liệu thường khơng hồn hảo và có thể chứa
nhiễu, dữ liệu bị thiếu, hoặc khơng chính xác. Tiền xử lý dữ liệu bao gồm
7
việc tóm lược dữ liệu, làm sạch dữ liệu, tích hợp dữ liệu, chuyển đổi dữ
liệu, rút gọn dữ liệu và rời rạc hóa dữ liệu để chuẩn bị cho bước phân tích.
- Phân tích dữ liệu: Bước quan trọng này dựa vào kiến thức và kỹ thuật phân
tích để tìm ra mối liên hệ và thơng tin ẩn sau dữ liệu. Phân tích dữ liệu có
thể sử dụng các phương pháp phân tích mơ tả, phân tích hồi quy, phân tích
sự khác biệt, thống kê, machine learning, data mining, và nhiều kỹ thuật
khác.
- Kết luận và dự đoán: Dựa trên phân tích và thơng tin từ dữ liệu, chúng ta
có thể rút ra kết luận, hiểu rõ hơn về tình hình, và thậm chí đưa ra dự đốn
cho tương lai.
1.2 Giới thiệu bài tốn phân tích xu hướng mua hàng
Phân tích xu hướng mua hàng của khách hàng là quá trình nghiên cứu và đánh
giá các dấu hiệu, mẫu mực và thay đổi trong hành vi mua sắm của khách hàng để hiểu
rõ hơn về những yếu tố nào ảnh hưởng đến sự mua hàng của họ. Đây là một phần quan
trọng của chiến lược tiếp thị và kinh doanh, giúp doanh nghiệp tối ưu hóa việc tiếp cận
và phục vụ khách hàng. Dưới đây là một số bước để phân tích xu hướng mua hàng của
khách hàng:
1. Thu thập dữ liệu: Thu thập thông tin về khách hàng, bao gồm độ tuổi, giới tính,
vị trí địa lý, sở thích, lịch sử mua hàng và các dấu hiệu mà họ thể hiện trong việc
tương tác với doanh nghiệp của bạn.
2. Sử dụng cơng cụ phân tích dữ liệu: Sử dụng các cơng cụ phân tích dữ liệu để
xem xét các dấu hiệu và mẫu mực trong dữ liệu của bạn. Các công cụ như Google
Analytics, CRM (Quản lý quan hệ khách hàng), các ứng dụng phân tích dữ liệu
tùy chỉnh, và nhiều cơng cụ khác có thể hữu ích.
3. Phân loại thông tin: Sắp xếp và phân loại dữ liệu thành các nhóm nhỏ dựa trên
các tiêu chí như độ tuổi, vị trí địa lý, tần suất mua hàng, loại sản phẩm, v.v.
8
4. Xác định xu hướng: Tìm ra các xu hướng chung trong dữ liệu. Ví dụ: có thể có
một sự gia tăng mua hàng vào các dịp lễ, hoặc có một nhóm khách hàng ưa
chuộng một loại sản phẩm cụ thể.
5. Đánh giá ảnh hưởng: Xem xét các yếu tố nào có thể ảnh hưởng đến hành vi
mua sắm của khách hàng, bao gồm quảng cáo, giá cả, chất lượng sản phẩm, dịch
vụ khách hàng, v.v.
6. Tích hợp thơng tin: Kết hợp thơng tin từ nhiều nguồn để có cái nhìn tổng thể và
đa chiều về khách hàng. Chẳng hạn, kết hợp dữ liệu từ trang web, ứng dụng di
động, mạng xã hội, và các kênh tiếp thị khác.
7. Tạo các biểu đồ và báo cáo: Sử dụng biểu đồ và báo cáo để minh họa và trình
bày thơng tin một cách dễ hiểu.
8. Đưa ra các điều chỉnh và chiến lược: Dựa trên thông tin đã thu thập, đưa ra các
điều chỉnh cần thiết trong chiến lược kinh doanh và tiếp thị để tận dụng những
xu hướng mua hàng của khách hàng.
9. Theo dõi và đánh giá lại: Theo dõi việc triển khai các điều chỉnh và đánh giá
lại hiệu quả của chúng. Chỉnh sửa lại chiến lược nếu cần.
Đầu vào của bài toán là dữ liệu mua hàng. Đây là tập dữ liệu chứa thông tin về
các giao dịch mua hàng hoặc các sản phẩm được mua. Dữ liệu này bao gồm thông tin
về sản phẩm, khách hàng, thời gian giao dịch, vị trí mua sắm, số lượng, giá trị và các
thông tin liên quan khác.
Đầu ra của bài toán này là các luật kết hợp, tức là các quy tắc hoặc mơ hình mơ
tả mối quan hệ giữa các sản phẩm hoặc loại sản phẩm khác nhau trong q trình mua
hàng. Thơng qua việc phân tích luật kết hợp, bạn có thể suy ra các xu hướng mua hàng
hiện tại hoặc tiềm năng. Từ đó bạn có thể tạo ra các gợi ý mua hàng cho khách hàng
dựa trên lịch sử mua sắm hoặc hành vi mua hàng của họ.
9
1.3 Ứng dụng của bài tốn
Bài tốn phân tích xu hướng mua hàng bằng luật kết hợp có nhiều ứng dụng quan
trọng trong các lĩnh vực khác nhau, từ thương mại điện tử đến tiếp thị, dự đoán thị
trường và nghiên cứu người tiêu dùng. Dưới đây là một số ví dụ về ứng dụng của bài
tốn này:
Thương mại điện tử: Các trang web thương mại điện tử thường sử dụng phân
tích luật kết hợp để cung cấp các gợi ý mua hàng cá nhân cho khách hàng dựa
trên lịch sử mua sắm của họ. Ví dụ, khi bạn xem sản phẩm A, trang web có thể
gợi ý sản phẩm B và C dựa trên luật kết hợp "Người mua thường mua sản phẩm
A và B cùng một lúc".
Tiếp thị và quảng cáo: Các doanh nghiệp có thể sử dụng phân tích luật kết hợp
để tối ưu hóa chiến dịch quảng cáo và tiếp thị. Họ có thể xác định các mối quan
hệ giữa các sản phẩm hoặc dịch vụ và tạo quảng cáo dựa trên những quy tắc này.
Dự đốn xu hướng thị trường: Phân tích luật kết hợp có thể giúp dự đốn xu
hướng mua sắm trong tương lai. Ví dụ, nó có thể giúp các nhà sản xuất và nhà
cung cấp định hình chiến lược sản phẩm và dịch vụ của họ dựa trên những mối
quan hệ mua sắm hiện tại.
Quản lý hàng tồn kho: Các doanh nghiệp cửa hàng và siêu thị có thể sử dụng
phân tích luật kết hợp để quản lý hàng tồn kho hiệu quả. Bằng cách hiểu mối
quan hệ giữa các sản phẩm, họ có thể dự đốn cần phải cung cấp và tồn kho sản
phẩm nào vào thời gian cụ thể.
Dự đoán hành vi mua hàng của khách hàng: Phân tích luật kết hợp có thể giúp
doanh nghiệp hiểu rõ hơn về hành vi mua hàng của khách hàng và cung cấp các
dự đoán về sản phẩm họ có thể quan tâm trong tương lai.
Quản lý chuỗi cung ứng: Các doanh nghiệp có thể sử dụng luật kết hợp để tối
ưu hóa q trình chuỗi cung ứng và dự đoán nhu cầu sản phẩm trong chuỗi cung
ứng.
10
Nghiên cứu người tiêu dùng: Các tổ chức nghiên cứu thị trường có thể sử dụng
phân tích luật kết hợp để hiểu rõ hơn về thị trường và người tiêu dùng. Nó có thể
giúp họ tìm hiểu về thị hiếu và hành vi mua hàng của khách hàng.
Như vậy, bài tốn phân tích xu hướng mua hàng bằng luật kết hợp có nhiều ứng
dụng quan trọng trong thế giới thương mại và nghiên cứu thị trường, giúp doanh nghiệp
hiểu rõ hơn về hành vi mua hàng của khách hàng và tối ưu hóa các chiến dịch quảng
cáo và tiếp thị
1.4 Khó khăn và thách thức
Bài tốn phân tích xu hướng mua hàng bằng luật kết hợp có thể đối mặt với nhiều
khó khăn và thách thức, bao gồm:
Kích thước lớn của dữ liệu: Dữ liệu mua hàng thường rất lớn và phức tạp. Điều
này có thể làm cho việc xử lý và phân tích trở nên đáng kể, đặc biệt khi sử dụng
các thuật toán khám phá luật kết hợp. Cần sử dụng các phương pháp hiệu quả để
giảm kích thước dữ liệu và tối ưu hóa thuật tốn.
Xử lý dữ liệu khơng đồng nhất: Dữ liệu mua hàng thường đến từ nhiều nguồn
khác nhau và có định dạng không đồng nhất. Thách thức nằm ở việc tổng hợp và
làm sạch dữ liệu để chuyển đổi nó thành một định dạng thích hợp cho phân tích.
Kết hợp nhiễu dữ liệu: Dữ liệu mua hàng có thể chứa nhiễu, ví dụ: các giao
dịch mua hàng thử nghiệm, lỗi nhập liệu, hoặc các yếu tố ngoại lai. Điều này có
thể làm cho việc tìm ra các luật kết hợp chính xác trở nên khó khăn.
Hiệu suất và tài ngun tính tốn: Việc tính tốn các luật kết hợp trong dữ liệu
lớn có thể địi hỏi nhiều tài ngun tính tốn và thời gian. Cần xem xét cách tối
ưu hóa hiệu suất và sử dụng các cơng cụ và phương pháp phân tích dữ liệu hiệu
quả.
Thiếu thơng tin về ngữ cảnh: Dữ liệu mua hàng có thể khơng cung cấp đủ thơng
tin về ngữ cảnh, ví dụ: thông tin về khách hàng hoặc lý do mua sắm. Điều này có
11
thể làm cho việc hiểu rõ tại sao mối quan hệ giữa các sản phẩm tồn tại trở nên
khó khăn.
Thách thức về quyền riêng tư: Dữ liệu mua hàng thường chứa thông tin cá
nhân về khách hàng. Việc bảo vệ quyền riêng tư và tuân thủ các quy định bảo vệ
dữ liệu là một thách thức quan trọng.
Thiếu dữ liệu lịch sử: Nếu bạn khơng có đủ dữ liệu lịch sử về mua sắm của
khách hàng, việc tạo ra các luật kết hợp chính xác và dự đốn xu hướng mua
hàng có thể trở nên khó khăn.
Thay đổi nhanh chóng trong hành vi mua hàng: Hành vi mua hàng có thể thay
đổi nhanh chóng do sự thay đổi trong xu hướng, thị trường, và các yếu tố bên
ngồi khác. Điều này địi hỏi một khả năng linh hoạt trong việc cập nhật và điều
chỉnh các luật kết hợp.
Tổng hợp lại, bài tốn phân tích xu hướng mua hàng bằng luật kết hợp đòi hỏi
sự kết hợp giữa xử lý dữ liệu, phân tích dữ liệu và hiểu biết về thị trường. Để vượt qua
các thách thức này, cần sử dụng các công cụ và phương pháp hiệu quả, cùng với hiểu
biết sâu rộng về lĩnh vực cụ thể.
1.5. Kết luận chương 1
Chương 1 đã giới thiệu tổng quan về phân tích dữ liệu, bài tốn phân tích xu
hướng mua hàng, xác định dữ liệu đầu vào và đầu ra của bài tốn, ứng dụng và những
khó khăn, thách thức của bài toán.
12
CHƯƠNG 2. CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN
2.1 Apriori Algorithm
2.1.1 Tổng quan
Thuật toán Apriori là một trong những thuật toán quan trọng nhất trong lĩnh vực
khai thác luật kết hợp, một lĩnh vực quan trọng của khoa học dữ liệu. Nó được thiết kế
để phân tích dữ liệu và tìm ra các quy luật kết hợp giữa các mục dựa trên sự xuất hiện
đồng thời của chúng trong các giao dịch hoặc tập hợp dữ liệu.
Nguyên tắc cơ bản của thuật tốn Apriori, gọi là ngun tắc Apriori, đó là nếu
một tập hợp của các mục là phổ biến (frequent) trong dữ liệu, thì tất cả các tập hợp con
của nó cũng phải là phổ biến. Điều này có nghĩa là nếu một nhóm các mục thường
xuyên xuất hiện cùng nhau, thì tất cả các tổ hợp con của nhóm đó cũng sẽ thường xuyên
xuất hiện. Nguyên tắc này giúp giảm số lượng luật cần kiểm tra, tăng hiệu suất của thuật
toán.
Thuật toán Apriori hoạt động dựa trên quá trình tìm kiếm các tập hợp phổ biến
trong dữ liệu. Nó bắt đầu với việc xác định tất cả các mục cá nhân (được gọi là các mục
1-phổ biến) và sau đó mở rộng để tìm ra các tập hợp chứa nhiều mục hơn. Quá trình
này tiếp tục cho đến khi khơng cịn tập hợp con mới nào phổ biến. Một khi đã xác định
được các tập hợp phổ biến, thuật toán Apriori sử dụng chúng để tạo ra các quy luật kết
hợp.
Các bước cơ bản của Thuật Toán Apriori:
Tìm các mục phổ biến: Đầu tiên, quét dữ liệu để xác định tần suất xuất
hiện của từng mục đơn lẻ. Những mục nào xuất hiện đủ lớn (đạt đến
ngưỡng hỗ trợ) được xem là phổ biến.
Tạo các tập hợp 2 mục phổ biến: Kết hợp các mục phổ biến để tạo ra các
tập hợp chứa hai mục. Sau đó, tính tần suất xuất hiện của các tập hợp này.
13
Tạo các tập hợp kết hợp cao hơn: Lặp lại q trình bước 2 cho đến khi
khơng thể tạo thêm các tập hợp kết hợp có độ dài lớn hơn. Mỗi lần lặp lại
tạo ra các tập hợp có kích thước tăng dần.
Xác định quy luật kết hợp: Dựa trên các tập hợp phổ biến tìm được, xác
định các quy luật kết hợp và tính tốn độ tin cậy của chúng. Độ tin cậy của
một quy luật biểu thị xác suất một mục sẽ xuất hiện dựa trên sự xuất hiện
của mục khác trong quy luật.
2.1.2 Ví dụ minh họa thuật tốn Apriori
Cho mơ ̣t ví du ̣ tâ ̣p các giao dich
̣ từ các hóa đơn mua hàng như sau:
TID Các món hàng đươ ̣c mua (Item)
1
{ b,
m,
t,
2
{ b,
m}
3
{ p,
s,
t}
4
{ a,
b,
c,
5
{ a,
b}
6
{ e,
t,
y}
d}
y}
7
{ a,
b,
m}
Cho Min Support = 30%, Min Confidence = 60%
- Tính tâ ̣p Large 1-item, ta có F1:
Tâ ̣p
Số lầ n xuấ t hiê ̣n
Item
{a}
3
{b}
5
{m}
3
{t}
3
Ở bước kế t Từ F1 trên ta có tâ ̣p C2 gồ m các că ̣p 2-item:
{{a, b}, {a, m}, {a,t}, {b,m}, {b,t}, {m,t}}
14
- Tính tâ ̣p Large 2-item, ta có F2:
Tâ ̣p
Item
{a, b}
Số lầ n xuấ t hiê ̣n
{a, m}
1
{a, t}
0
{b, m}
3
{b, t}
1
3
{m, t} 1
Chỉ lấ y các că ̣p 2-items có Support > Min Support ( =30% ) gồ m: {a, b} và {b, m}
- Phát sinh luâ ̣t:
a b có đô ̣ Confidence 3/3 = 100%
b a có đô ̣ Confidence 3/5 = 60%
b m có đô ̣ Confidence 3/5 = 60%
m b có đô ̣ Confidence 3/3 = 100%
Ở bước lươ ̣c bỏ ta có F2 = {{a, b}, {b,m}}
Ở bước kế t Từ F2 ta có tâ ̣p C3 gồ m các că ̣p 3-item là {}
- Thuâ ̣t toán kế t thúc.
2.1.3 Ưu điểm và nhược điểm
- Ưu điểm:
Dễ triển khai và hiểu: Thuật toán Apriori dễ triển khai và hiểu, phù hợp
cho người mới bắt đầu trong lĩnh vực khai thác luật kết hợp.
Phát hiện mẫu tần suất cao: Hiệu quả trong việc phát hiện các mẫu tần
suất cao trong dữ liệu.
- Nhược điểm:
Chi phí tính tốn cao: u cầu nhiều lần quét lại cơ sở dữ liệu, làm tăng chi
phí tính tốn, đặc biệt là với dữ liệu lớn.
15
Số lượng luật lớn: Có thể tạo ra một số lượng lớn các luật kết hợp, đơi khi
khó quản lý và hiểu.
Không hiệu quả trên dữ liệu thưa thớt: Trong trường hợp dữ liệu thưa thớt,
chi phí tính tốn của Apriori có thể tăng cao.
2.1.4 Ứng dụng
- Bán lẻ và thương mại điện tử:
Phân loại sản phẩm: Apriori có thể giúp các doanh nghiệp xác định mối
quan hệ giữa các sản phẩm được mua cùng nhau, từ đó tạo ra các quy luật
về mối quan hệ sản phẩm và gợi ý cho khách hàng.
Quảng cáo và chăm sóc khách hàng: Sử dụng Apriori để phân tích dữ liệu
về hành vi mua hàng của khách hàng và tạo ra các chiến lược quảng cáo hay
chương trình khuyến mãi dựa trên những mối quan hệ phổ biến.
- Dịch vụ ngân hàng:
Phân loại giao dịch: Áp dụng Apriori để xác định mối quan hệ giữa các loại
giao dịch tài chính, từ đó hỗ trợ phân loại giao dịch và phát hiện gian lận.
- Y tế:
Phân tích dữ liệu bệnh nhân: Apriori có thể giúp phân tích dữ liệu bệnh nhân
để xác định mối quan hệ giữa các triệu chứng, bệnh lý và liệu pháp điều trị,
hỗ trợ quyết định lâm sàng.
- Quản lý chiến dịch tiếp thị:
Xác định chiến lược tiếp thị: Sử dụng Apriori để phân tích dữ liệu tiếp thị và
xác định mối quan hệ giữa các chiến lược tiếp thị khác nhau, từ đó tối ưu
hóa chiến lược tiếp thị.
- Chăm sóc sức khỏe cộng đồng:
Phân tích dữ liệu dinh dưỡng: Apriori có thể được sử dụng để phân tích dữ
liệu dinh dưỡng từ cộng đồng hoặc nhóm người, giúp xác định các mối quan
hệ giữa thực phẩm và lối sống.
16
2.2 FB-Growth Algorithm
2.2.1 Tổng quan
Thuật tốn FP-Growth, hay cịn được gọi là "Frequent Pattern Growth," là một
cải tiến đáng kể trong lĩnh vực khai thác luật kết hợp so với các thuật toán truyền thống
khác như Apriori. Được giới thiệu bởi Jiawei Han, Jian Pei và Yiwen Yin vào năm
2000, FP-Growth không chỉ giải quyết một số hạn chế của Apriori mà còn mang lại
hiệu suất tối ưu đặc biệt trên dữ liệu lớn.
Một trong những điểm mạnh quan trọng của FP-Growth là khả năng giảm số lần
quét lại cơ sở dữ liệu một cách đáng kể so với Apriori. Trong quá trình xử lý dữ liệu,
Apriori cần phải thực hiện nhiều lần quét lại để xác định sự xuất hiện của các tập hợp
mục, điều này có thể trở nên rất tốn kém về thời gian và tài nguyên.
Ngược lại, FP-Growth xây dựng một cấu trúc dữ liệu gọi là FP-Tree để biểu diễn
thông tin về sự xuất hiện của các mục trong dữ liệu. Quá trình xây dựng FP-Tree này
chỉ yêu cầu một lần quét duy nhất qua dữ liệu để xác định sự xuất hiện của các mục và
xây dựng cây tương ứng. Điều này giúp giảm bớt độ phức tạp tính tốn và tăng cường
hiệu suất của thuật toán, đặc biệt là trên dữ liệu lớn.
Điểm mạnh tiếp theo của FP-Growth là khả năng loại bỏ các mục thừa trong quá
trình xây dựng FP-Tree. Các mục thừa, hay các mục khơng đóng góp nhiều vào q
trình tìm kiếm các quy luật kết hợp, được loại bỏ để giảm kích thước của cây và làm
tăng cường sự hiệu quả.
Thuật toán FP-Growth dựa trên cấu trúc cây FP-tree để biểu diễn mẫu dữ liệu.
Nguyên tắc cơ bản của FP-Growth bao gồm:
Xây dựng FP-Tree: Xây dựng một cây FP-tree từ dữ liệu đầu vào. Cây
này giúp tạo ra mơ hình dữ liệu có thứ tự và phản ánh tần suất xuất hiện
của các mục.
Tạo bảng mục đơn giản: Tạo bảng chứa thông tin về tần suất xuất hiện
của từng mục đơn lẻ trong dữ liệu và liên kết chúng với cây FP-tree.
17
Khám phá tập hợp mục phổ biến: Lặp lại việc khám phá tập hợp mục
phổ biến bằng cách sử dụng cây FP-tree và bảng mục đơn giản. Các tập
hợp mục phổ biến được xác định dựa trên các đường đi từ lá đến gốc của
cây.
Tạo quy luật kết hợp: Dựa trên các tập hợp mục phổ biến, tạo ra các quy
luật kết hợp và tính tốn độ tin cậy của chúng.
2.2.2 Ưu điểm và nhược điểm
- Ưu điểm:
Hiệu suất cao: Giảm số lần quét lại cơ sở dữ liệu, giúp tăng hiệu suất so
với Apriori, đặc biệt là trên dữ liệu lớn.
Hiệu quả trên dữ liệu thưa thớt: Hoạt động hiệu quả trên dữ liệu thưa
thớt, nơi mà Apriori có thể gặp khó khăn.
- Nhược điểm:
Khó hiểu: Cấu trúc cây FP-tree có thể khó hiểu và khó triển khai so với
Apriori.
Yêu cầu nhiều bộ nhớ: Yêu cầu lượng bộ nhớ lớn để xây dựng cây FPtree, đặc biệt là trên dữ liệu lớn.
2.3 Eclat Algorithm
2.2.1 Tổng quan
Thuật tốn Eclat (Equivalence Class Transformation) đóng góp một phương
pháp khác trong lĩnh vực khai thác luật kết hợp, tập trung vào việc tìm ra các tập hợp
mục phổ biến trong dữ liệu. Được giới thiệu để giải quyết một số vấn đề của các thuật
toán truyền thống như Apriori, Eclat mang lại hiệu suất cao và sự linh hoạt trong việc
phân tích mối quan hệ giữa các mục.
Một trong những đặc điểm chính của thuật tốn Eclat là việc tập trung vào xác
định tần suất xuất hiện của các mục. Thay vì sử dụng cây FP-Tree như FP-Growth hay
tạo các tập hợp mục như Apriori, Eclat chia dữ liệu thành các lớp tương đương
18
(equivalence classes) dựa trên sự xuất hiện của mục. Các lớp tương đương này đại diện
cho các tập hợp của các mục mà có cùng sự xuất hiện trong các giao dịch.
Quá trình xây dựng các lớp tương đương trong Eclat giúp giảm bớt độ phức tạp
của dữ liệu và tăng cường khả năng hiểu biết. Mỗi lớp tương đương đại diện cho một
tập hợp mục phổ biến và cách chúng xuất hiện trong các giao dịch. Bằng cách này,
Eclat không chỉ giúp xác định các mục phổ biến mà cịn cung cấp thơng tin về mối quan
hệ giữa chúng.
Ngun tắc cơ bản của Eclat:
Tạo bảng hỗ trợ: Tạo một bảng chứa thông tin về tần suất xuất hiện của
mỗi mục đơn lẻ trong từng giao dịch và liên kết chúng với danh sách các
giao dịch mà chúng xuất hiện.
Xây dựng các lớp tương đương: Dựa trên bảng hỗ trợ, xây dựng các lớp
tương đương cho từng mục đơn lẻ. Các lớp này chứa danh sách các giao
dịch mà mục đó xuất hiện.
Khám phá các tập hợp mục phổ biến: Lặp lại quá trình tạo các lớp tương
đương để tìm ra các tập hợp mục phổ biến. Các tập hợp này được xác định
dựa trên việc kết hợp các lớp tương đương của các mục đơn lẻ.
Tạo quy luật kết hợp: Dựa trên các tập hợp mục phổ biến, tạo ra các quy
luật kết hợp và tính tốn độ tin cậy của chúng.
2.3.2 Ưu điểm và nhược điểm
- Ưu điểm:
Hiệu suất cao trên dữ liệu thưa thớt: Eclat thường hiệu quả trên dữ liệu
thưa thớt, làm giảm độ phức tạp tính tốn so với Apriori.
Dễ triển khai và hiểu: Thuật toán đơn giản và dễ triển khai, phù hợp cho
việc sử dụng trong các dự án thực tế.
- Nhược điểm:
19
Không hiệu quả trên dữ liệu dày đặc: Hiệu suất của Eclat có thể giảm
nếu áp dụng trên dữ liệu dày đặc.
Không giữ thứ tự xuất hiện: Eclat không giữ lại thông tin về thứ tự xuất
hiện của các mục.
2.4 Lựa chọn thuật toán
Thuật toán Apriori dễ hiểu và diễn giải, có khả năng phân tích xu hướng và trị
trường, tối ưu hoá chiến lược quảng cáo và tiếp thị cùng với khả năng dự đoán hành
vi mua sắm. Vì vậy chúng em lựa chọn phương pháp cây quyết định để giải quyết bài
tốn.
2.5 Cơng cụ phục vụ thực hiện bài tốn
2.5.1 Python
Hình 2.1: Ngơn ngữ lập trình Python
Python là một trong những ngơn ngữ lập trình phổ biến nhất hiện
nay, thường được sử dụng để xây dựng trang web và phần mềm, tự động hoá các
tác vụ và tiến hành phân tích dữ liệu. Với sự phát triển của khoa học dữ liệu hiện
nay, Python lại càng được ứng dụng rộng rãi hơn trong ngành Data Analyst. Với
thư
viện
đa
dạng
trong
các
lĩnh
vực
như
khai
thác
dữ
liệu
20
(Scrapy, BeautifulSoup4, …), xử lý dữ liệu và mơ hình hóa (Pandas, Scikit-learn,
…), trực quan hóa dữ liệu (Matplotlib, Plotly, …) thì đây là một lựa chọn tuyệt
vời để phân tích dữ liệu. Tuy nhiên bên cạnh những ưu điểm về thư viện cũng
như cộng đồng lập trình đơng đảo, Python vẫn vướng phải một số nhược điểm,
đó là bị giới hạn tốc độ, mức tiêu thụ bộ nhớ cao và không phải là một ngôn ngữ
được hỗ trợ nhiều cho môi trường di động.
- Ưu điểm:
Đa năng: Python không chỉ giới hạn trong phân tích dữ liệu, mà cịn có thể
sử dụng cho nhiều mục đích khác như phát triển ứng dụng, web,
automation, và machine learning.
Thư viện phong phú: Có nhiều thư viện mạnh mẽ giúp thực hiện các tác vụ
phân tích và xử lý dữ liệu một cách hiệu quả.
Cộng đồng lớn: python có cộng đồng lớn giúp việc chia sẻ, học hỏi dễ
dàng hơn.
- Nhược điểm:
Thống kê chuyên sâu: Mặc dù Python có thư viện thống kê tốt, nhưng
R vẫn là lựa chọn phổ biến hơn trong các nghiên cứu thống kê và phân
tích dữ liệu chuyên sâu.
21
2.5.2 R
Hình 2.2: Ngơn ngữ lập trình R
Ngơn ngữ R là một ngơn ngữ lập trình và mơi trường tính tốn thống
kê phổ biến trong lĩnh vực phân tích dữ liệu và thống kê. Nó cung cấp nền
tảng mạnh mẽ cho việc thực hiện các phân tích thống kê, xử lý dữ liệu và tạo
biểu đồ. R cũng là một cộng đồng mã nguồn mở lớn, điều này có nghĩa là
người dùng có thể dễ dàng chia sẻ mã nguồn, gói phân tích và kiến thức với
nhau. Vậy nên việc phân tích dữ liệu trên R cũng rất thuận tiện khi có đầy đủ các
thư viện về phân tích dữ liệu và có khả năng tích hợp tốt với mơi trường
nghiên cứu khoa học. Dù vậy, R vẫn có một vài nhược điểm nhất định. Phổ biến
trong số đấy là sự phức tạp của ngơn ngữ khi lập trình viên mới bắt đầu tiếp xúc
và sử dụng, xử lý dữ liệu lớn không tốt so với nhiều ngôn ngữ khác và hiệu
suất không phải lúc nào cũng ổn định.
- Ưu điểm:
Thống kê chuyên sâu: R được thiết kế đặc biệt cho thống kê và phân tích dữ
liệu, với nhiều gói như dplyr, ggplot2, tidyr, và lubridate giúp thực hiện các
tác vụ phân tích chi tiết.
22
Biểu đồ phức tạp: Gói ggplot2 trong R cho phép tạo ra biểu đồ phức tạp
và tùy chỉnh một cách dễ dàng.
- Nhược điểm:
Thiếu phổ biến: R có tính chuyên môn hơn so với Python.
Sử dụng bộ nhớ: R có xu hướng sử dụng nhiều bộ nhớ hơn so với Python.
Quản lý mã nguồn: R không thể sử dụng mã nguồn mở rộng và phân
chia mã nguồn dễ dàng như Python. Việc quản lý và tái sử dụng mã có
thể trở nên khó khăn hơn khi dự án phát triển.
2.5.3 Lựa chọn công cụ
Cả Python và R đều là hai ngôn ngữ phổ biến được sử dụng cho phân tích
dữ liệu và thống kê. Việc lựa chọn sử dụng ngôn ngữ nào phụ thuộc vào nhiều
yếu tố như mục tiêu, kinh nghiệm cá nhân, loại dữ liệu đang làm việc, và các thư
viện hỗ trợ cần sử dụng.
Sau khi tổng hợp các ưu, nhược điểm của cả hai ngôn ngữ, chúng em quyết
định sử dụng ngôn ngữ Python với sự đa năng, cộng đồng lớn và nhiều thư viện
hỗ trợ.
2.6 Kết luận chương 2
Chương 2 đã trình bày các phương pháp kỹ thuật có thể sử dụng để giải
quyết bài toán, cụ thể là thuật toán Apriori, thuật tốn FB-Growth, thuật tốn
Eclat và các cơng cụ thực hiện bài toán. Đồng thời lựa chọn được thuật toán
Apriori và ngôn ngữ Python để thực hiện thực nghiệm.
23
CHƯƠNG 3. THỰC NGHIỆM
3.1 Dữ liệu thực nghiệm
Trong project này,
bộ dữ
liệu được
phân tích ở
đây là
file:
”Groceries_dataset.csv”. Tập dữ liệu này lưu trữ giao dịch của khách hàng khi đến của
hàng Groceries trong vòng 2 năm 2014-2015. [2]
Dữ liệu của mỗi khách hàng bao gồm: Member_number, Date, item Description.
Hình 3.1: Dữ liệu 34 dòng đầu tiên trong tập dữ liệu
Theo như bảng số liệu thì mỗi dịng ứng với Member_number, Date và itemDescription.
Bộ dữ liệu bao gồm 38765 khách hàng.
24