Hiện tại, mọi người đang không ngừng tìm kiếm các kỹ thuật đểthực hiện khai phá dữ liệu một cách nhanh chóng và đạt được kết quả tốt nhất.Trong bài tập lớn này, chúng em tìm hiểu và trìn
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÔN KHAI PHÁ DỮ LIỆU
ĐỀ TÀI:
KHAI PHÁ DỮ LIỆU MUA HÀNG TẠP HÓA BẰNG
THUẬT TOÁN APRIORI
Sinh viên thực hiện : BÙI VĂN QUÂN
Giảng viên hướng dẫn : VŨ VĂN ĐỊNH
Hà Nội, Tháng 5, năm 2024
Trang 2PHIẾU CHẤM ĐIỂM Sinh viên thực hiện:
Trang 3MỤC LỤC
CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2
1.1 Giới thiệu về khai phá dữ liệu 2
1.1.1 Trình bày về khai phá dữ liệu 3
1.1.2 Các phương pháp khai phá dữ liệu 3
1.1.3 Một số tính năng nổi bật của Data mining 4
1.1.4 Các công cụ khai phá dữ liệu 4
1.1.5 Quy trình khai phá dữ liệu 5
1.1.6 Ứng dụng của khai phá dữ liệu 6
1.2 Một số kỹ thuật khai phá dữ liệu 7
1.2.1 Kỹ thuật khai phá kết hợp 7
1.2.2 Kỹ thuật phân lớp 7
1.2.3 Kỹ thuật phân cụm 7
1.3 Tiền xử lý dữ liệu 8
CHƯƠNG II: THUẬT TOÁN APRIORI 9
2.1 Giới thiệu về thuật toán APRIORI 9
2.2 Thuật toán APRIORI hoạt động thế nào 9
2.3 Ví dụ về thuật toán APRIORI 10
CHƯƠNG III: KHAI THÁC DỮ LIỆU MUA HÀNG TẠP HÓA BẰNG THUẬT TOÁN APRIORI 14
3.1 Phân tích bài toán 14
3.2 Xây dựng dữ liệu bài toán 14
3.2.1 Tập dữ liệu mua hàng 14
3.2.2 Khai báo thư viện 15
3.2.3 Tiền xử lí dữ liệu 15
3.2.4 Giải quyết bài toán 16
CHƯƠNG IV: KẾT QUẢ THỬ NGHIỆM 17
4.1 Tiền xử lí dữ liệu 17
4.2 Những mặt hàng được bán nhiều nhất trong tuần 17
KẾT LUẬN 18
TÀI LIỆU THAM KHẢO 19
Trang 4Khai phá dữ liệu đang được nghiên cứu và ứng dụng trong nhiều lĩnh vựckhác nhau trên toàn thế giới Ở Việt Nam, kỹ thuật này cũng đang được nghiêncứu và dần được ứng dụng Khai phá dữ liệu là một bước trong quy trình pháthiện tri thức Hiện tại, mọi người đang không ngừng tìm kiếm các kỹ thuật đểthực hiện khai phá dữ liệu một cách nhanh chóng và đạt được kết quả tốt nhất.Trong bài tập lớn này, chúng em tìm hiểu và trình bày về một kỹ thuậttrong khai phá dữ liệu để phân lớp dữ liệu cũng như tổng quan về khai phá dữliệu, với đề tài “Khai thác dữ liệu mua hàng tạp hóa bằng thuật toán Apriori”.Trong quá trình thực hiện bài tập lớn này, chúng em xin gửi lời cảm ơn đến thầy
Vũ Văn Định Thầy đã tận tình hướng dẫn chi tiết cho chúng em, những kiếnthức thầy cung cấp rất hữu ích Chúng em rất mong nhận được những góp ý từthầy
Chúng em xin chân thành cảm ơn!
1
Trang 5CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu về khai phá dữ liệu.
Khai phá dữ liệu (data mining): Là quá trình tính toán để tìm ra các mẫutrong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm của máyhọc, thống kê và các hệ thống cơ sở dữ liệu Đây là một lĩnh vực liên ngành củakhoa học máy tính… Mục tiêu tổng thể của quá trình khai thác dữ liệu là tríchxuất thông tin từ một bộ dữ liệu và chuyển nó thành một cấu trúc dễ hiểu để sửdụng tiếp Ngoài bước phân tích thô, nó còn liên quan tới cơ sở dữ liệu và cáckhía cạnh quản lý dữ liệu, xử lý dữ liệu trước, suy xét mô hình và suy luận thống
kê, các thước đo thú vị, các cân nhắc phức tạp, xuất kết quả về các cấu trúc đượcphát hiện, hiện hình hóa và cập nhật trực tuyến Khai thác dữ liệu là bước phântích của quá trình "khám phá kiến thức trong cơ sở dữ liệu" hoặc KDD
Hình 1.1: Data mining
Trang 61.1.1 Trình bày về khai phá dữ liệu.
Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge
Discovery Process), bao gồm:
- Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề(Problem understanding and data understanding)
- Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình làmsạch dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữ liệu(data selection), biến đổi dữ liệu (data transformation)
- Khai thác dữ liệu (Data mining): xác định nhiệm vụ khai thác dữ liệu và lựa chọn kỹ thuật khai thác dữ liệu Kết quả cho ta một nguồn tri thức thô.
- Đánh giá (Evaluation): dựa trên một số tiêu chí tiến hành kiểm tra
và lọc nguồn tri thức thu được
- Triển khai (Deployment).
Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầutiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đãqua
1.1.2 Các phương pháp khai phá dữ liệu.
- Phân loại (Classification): Là phương pháp dự báo, cho phép phânloại một đối tượng vào một hoặc một số lớp cho trước
- Hồi qui (Regression): Khám phá chức năng học dự đoán, ánh xạmột mục dữ liệu thành biến dự đoán giá trị thực
- Phân nhóm (Clustering): Một nhiệm vụ mô tả phổ biến trong đóngười ta tìm cách xác định một tập hợp hữu hạn các cụm để mô tả dữ liệu
- Tổng hợp (Summarization): Một nhiệm vụ mô tả bổ sung liên quanđến phương pháp cho việc tìm kiếm một mô tả nhỏ gọn cho một bộ (hoặctập hợp con) của dữ liệu
3
Trang 7- Mô hình ràng buộc (Dependency modeling): Tìm mô hình cục bộ
mô tả các phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tínhnăng trong tập dữ liệu hoặc trong một phần của tập dữ liệu
- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection):Khám phá những thay đổi quan trọng nhất trong bộ dữ liệu
1.1.3 Một số tính năng nổi bật của Data mining.
- Khám phá mẫu
- Dự đoán
- Phân tích dị thường
- Phân tích chuỗi thời gian
- Tối ưu hóa quyết định
- Khả năng mở rộng và xử lí dữ liệu lớn
- Khả năng tích hợp
- Tính tự động hóa
- Trực quan hóa dữ liệu
1.1.4 Các công cụ khai phá dữ liệu.
RapidMiner: Công cụ đầu tiên phải kể tới đó là RapidMiner Đây là công
cụ khai phá dữ liệu khá phổ biến hiện nay Được viết trên nền tảng JAVA nhưngkhông yêu cầu mã hóa để vận hành Ngoài ra, nó còn cung cấp các chức năngkhai thác dữ liệu khác nhau như tiền xử lý dữ liệu, biểu diễn dữ liệu, lọc, phâncụm
Weka: Công cụ được cho ra đời tại Đại học Wichita là một phần mềm khai
thác dữ liệu mã nguồn mở Tương tự như RapidMiner, công cụ này không yêucầu mã hóa và sử dụng GUI đơn giản
Sử dụng Weka, người dùng có thể gọi trực tiếp các thuật toán học máy hoặcnhập chúng bằng mã Java Weka được trang bị đa dạng chức năng như trực quanhóa, tiền xử lý, phân loại, phân cụm
Trang 8Knime: Với khả năng hoạt động vô cùng mạnh mẽ tích hợp nhiều thành
phần khác nhau của học máy và khai phá dữ liệu để cung cấp một nền tảng.KNime hỗ trợ người dùng rất nhiều trong việc xử lý và phân tích dữ liệu, tríchxuất, chuyển đổi và tải dữ liệu
Apache Mahout: Từ nền tảng Big Data Hadoop, người ta đã cho cho ra đời
thêm Apache Mahout với mục đích giải quyết nhu cầu ngày càng tăng về khaiphá dữ liệu và hoạt động phân tích trong Hadoop Nó được trang bị nhiều chứcnăng học máy khác nhau như phân loại, hồi quy, phân cụm
Oracle Data Mining: Khi sử dụng Oracle Data Mining nó cho phép người
dùng thực hiện khai phá dữ liệu trên cơ sở dữ liệu SQL để trích xuất các khunghình và biểu đồ Các phân tích sẽ hiển thị một cách trực quan giúp người dùng
dễ dàng đưa ra dự đoán cho kế hoạch tương lai
TeraData: TeraData cung cấp dịch vụ kho chứa các công cụ khai phá dữ
liệu Nhờ khả năng thông minh được trang bị, công cụ có thể dựa trên tần suất
sử dụng dữ liệu của người dùng và thực hiện việc cho phép truy cập nhanh haychậm
Với một dữ liệu bạn thường xuyên cần sử dụng, TeraData sẽ cho phép truycập nhanh hơn là một dữ liệu ít được sử dụng Đối với dữ liệu, nhập kho là mộtyêu cầu cần thiết
Orange: Công cụ được lập trình bằng Python với giao diện trực quan và
tương tác dễ dàng Phần mềm Orange được biết đến bởi việc tích hợp các công
cụ khai phá dữ liệu và học máy thông minh, đơn giản
1.1.5 Quy trình khai phá dữ liệu.
- Bước 1: Làm sạch dữ liệu – Trong bước này dữ liệu được làm sạch saocho không có tạp âm hay bất thường trong dữ liệu
- Bước 2: Tích hợp dữ liệu – Trong quá trình tích hợp dữ liệu, nhiều nguồn
dữ liệu sẽ được kết hợp thành một
5
Trang 9- Bước 3: Lựa chọn dữ liệu – Trong bước này, dữ liệu được trích xuất từ cơ
sở dữ liệu
- Bước 4: Chuyển đổi dữ liệu – Trong bước này, dữ liệu được chuyển đổi
để thực hiện phân tích tóm tắt cũng như các hoạt động tổng hợp
- Bước 5: Khai phá dữ liệu – Trong bước này, chúng em trích xuất dữ liệuhữu ích từ nhóm dữ liệu hiện có
- Bước 6: Đánh giá mẫu – Chúng em phân tích một số mẫu có trong dữliệu
- Bước 7: Trình bày thông tin – Trong bước cuối cùng, thông tin sẽ đượcdưới dạng cây, bảng biểu đồ và ma trận
1.1.6 Ứng dụng của khai phá dữ liệu.
- Trong kinh doanh (business)
- Trong tài chính (finance) và tiếp thị bán hàng (sales marketing)
- Trong thương mại (commerce) và ngân hàng (bank)
- Trong bảo hiểm (insurance)
- Trong khoa học (science) và y sinh học (biomedicine)
- Trong điều khiển (control) và viễn thông (telecommunication)
Trang 101.2 Một số kỹ thuật khai phá dữ liệu.
1.2.1 Kỹ thuật khai phá kết hợp.
Trong lĩnh vực khai phá dữ liệu, mục tiêu của luật kết hợp là xác định cácmối quan hệ giữa các đối tượng trong các tập dữ liệu lớn Cĩ nhiều thuật tốnđược sử dụng để khai phá luật kết hợp, nhưng thuật tốn Apriori là một trongnhững phương pháp phổ biến nhất Thuật tốn này được sử dụng để tìm kiếmcác tập hợp phổ biến trong dữ liệu giao dịch và phát hiện các luật kết hợp dướidạng nhị phân khẳng định Bên cạnh thuật tốn Apriori, cịn cĩ các thuật tốnkhác như FP-growth và Partition, cũng được áp dụng để tìm ra các luật kết hợptrong dữ liệu giao dịch
1.2.2 Kỹ thuật phân lớp.
Trong kỹ thuật phân lớp, cĩ một số thuật tốn nổi bật bao gồm:
- Phân lớp bằng cây quyết định (các thuật tốn ID3, J48): Sử dụng câyquyết định để phân loại dữ liệu, cho phép người dùng dựa vào cấu trúc cây đểxác định lớp mà dữ liệu thuộc về
- Phân lớp dựa trên xác suất (Nạve Bayesian): Áp dụng định lý Bayes vàgiả định rằng các thuộc tính dữ liệu độc lập với nhau để phân loại
- Phân lớp dựa trên khoảng cách (thuật tốn K-láng giềng gần nhất): Phânloại dữ liệu bằng cách xếp vào lớp của k đối tượng gần nhất
- Phân lớp bằng SVM (Máy vector hỗ trợ): Sử dụng siêu phẳng tối ưu đểphân chia dữ liệu thành các lớp trong khơng gian đa chiều
1.2.3 Kỹ thuật phân cụm.
Phân cụm dữ liệu là cách phân bố các đối tượng dữ liệu vào các nhĩm/cụm sao cho các đối tượng trong một cụm thì giống nhau hơn các phần tử kháccụm, gồm cĩ một số phương pháp phân cụm cơ bản như:
-Phân cụm bằng phương pháp K-mean: tìm ra tâm của các cụm mà khoảngcách của tâm đĩ đến các đối tượng, dữ liệu khác là ngắn
-Phân cụm trên đồ thị
7
Trang 11Ngoài ra, khai phá dữ liệu có rất nhiều kỹ thuật, nhưng đây là những kỹthuật cơ bản và đơn giản trong khai phá dữ liệu mà chúng em được tìm hiểu.
1.3 Tiền xử lý dữ liệu.
Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trước khi đưavà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 quathu thập dữ liệu (gọi là dữ liệu gốc original data) có thể áp dụng được (thíchhợp) với các mô hình khai phá dữ liệu (data mining model) cụ thể Các côngviệ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
-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ộtvà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
Trang 12CHƯƠNG II: THUẬT TOÁN APRIORI
2.1 Giới thiệu về thuật toán APRIORI.
Apriori là thuật toán khả sinh được đề xuất bởi R Agrawal và R Srikan vàonăm 1993 để khai thác các tập item đối với các luật kết hợp kiểu bool Tên củathuật toán dựa trên việc thuật toán sử dụng tri thức trước prior knowledge ( ) củacác thuộc tính tập item phổ biến, chúng ta sẽ thấy sau đây Apriori dùng cáchtiếp cận lặp được biết đến như tìm kiếm level-wise, với các tập item được dùngk
để thăm dò các tập ( +1) item Đầu tiên, tập các tập 1 item phổ biến được tìmk
thấy bằng cách quét cơ sở dữ liệu để đếm số lượng từng item, và thu thập nhữngitem thỏa mãn độ hỗ trợ tối thiểu Tập kết quả đặt là Tiếp theo, được dùngL1 L1
để tìm , tập các tập 2 item phổ biến, nó được dùng để tìmL2 L3, và cứ thế tiếptục, cho tới khi tập item phổ biến không thể tìm thấy Việc tìm kiếm chok
mỗi đòi hỏi một lần quét toàn bộ cơ sở dữ liệu.Lk
Tính chất Apriori: Tất cả các tập con không rỗng của một tập item phổ
biến cũng phải là phổ biến.
2.2 Thuật toán APRIORI hoạt động thế nào.
Apriori dùng cách tiếp cận lặp được biết đến như tìm kiếm level-wise, vớicác tập item được dùng để thăm dò các tập ( +1) item.k k
-Đầu tiên, tập (frequent 1- itemsets) phổ biến 1 được tìm thấy ký hiệu là C1
-Bước tiếp theo là tính support có nghĩa là sự xuất hiện của các item trong
cơ sở dữ liệu Điều này đòi hỏi phải duyệt qua toàn bộ cơ sở dữ liệu
-Sau đó, bước cắt tỉa được thực hiện trên C trong đó những item được so1
sánh với thông số minimum support Những item thỏa điều kiện minimumsupport mới được xem xét cho tiến trình tiếp theo ký hiệu là L 1
-Sau đó, bước phát sinh các bộ ứng viên được thực hiện trong đó tập phổbiến 2 được tạo ra ký hiệu là C 2
-Một lần nữa, cở sở dữ liệu được duyệt để tính toán support của 2 tập phổbiến Theo minimum support, các bộ ứng viên tạo ra được kiểm tra và chỉ những
9
Trang 13tập phổ biến nào thỏa điều kiện minimum support thì tiếp tục được sử dụng tạo
ra bô ứng viên tập phổ biến 3
Bước trên tiếp tục cho đến khi không có tập phổ biến hoặc bộ ứng viên cóthể được tạo ra
2.3 Ví dụ về thuật toán APRIORI.
Bảng 1 biểu diễn một giao dịch cơ sở dữ liệu có 4 giao dịch TID là mộtnhận dạng duy nhất cho mỗi giao dịch
Thực hiện bước đầu tiên là chức năng duyệt cơ sở dữ liệu để xác định số lượng
sự xuất hiện cho một item cụ thể Sau bước đầu tiên chúng ta sẽ có C1 được thểhiện trong Table 2
Trang 15Các quá trình tương tự được tiếp tục cho đến khi không có tập phổ biến hoặc
bộ ứng viên có thể tạo ra Tiến trình được mô tả trong TABLE 6 và TABLE 7
Ck: Candidate itemset of size k
Lk : frequent itemset of size k
Trang 16foreach transaction t in database do increment the count of all
candidates in C that are contained in tk+1
Lk+1 = candidates in C with min_supportk+1
}
return kLk;
}
13
Trang 17CHƯƠNG III: KHAI THÁC DỮ LIỆU MUA HÀNG TẠP HÓA
BẰNG THUẬT TOÁN APRIORI.
3.1 Phân tích bài toán.
Ý tưởng bán chéo: Là một chiến lược kinh doanh đặt các sản phẩm liênquan gần nhau mà khách hàng thường mua cùng lúc để tăng giá trị giỏ hàng vàkhuyến khích mua sắm Một số ví dụ điển hình là bàn chải đánh răng và kemđánh răng, mì gói và nước sốt, kẹo và đồ chơi.Nếu một sản phẩm phù hợp vớicác sản phẩm khác trong cửa hàng, điều chỉnh vị trí trưng bày sản phẩm bằngcách ghép đôi hai sản phẩm lại với nhau là một ý tưởng tuyệt vời Việc thựchành bán chéo không chỉ giới hạn ở cửa hàng vật lý truyền thống mà còn có thể
áp dụng cho các cửa hàng trực tuyến và các chiến lược tiếp thị trực tuyến đểtrưng bày hoặc bán các sản phẩm cùng nhau.Trong bài code của chúng em,chúng em sẽ khai thác dữ liệu lịch sử mua hàng tại các cửa hàng tạp hóa với cácmặt hàng đã được ghi lại Sau đó, chúng em sẽ áp dụng thuật toán Apriori đểhọc các quy tắc phân phối không giám sát nhằm xác định mối quan hệ cơ bảngiữa các mặt hàng đã được mua
3.2 Xây dựng dữ liệu bài toán.
3.2.1 Tập dữ liệu mua hàng.
Hình 3.1: Tập dữ liệu.