Đồ án tốt nghiệp: xây dựng website bán thiết bị điển tử ứng dụng một số giải thuật phân tích dự liệu thông minh(AI) để tối ưu việc bán hàng. Đồ án được đánh giá cao khi bảo vệ và đạt điểm xuất sắc
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: KHOA HỌC MÁY TÍNH
ĐỀ TÀI:
Trang 2LỜI NÓI ĐẦU
Mua code liên hệ: 0384946866
Công nghệ thông tin đã và đang phát triển vượt bậc, tin học len lỏi vào hầu hếtmọi ngành, mọi lĩnh vực trong đời sống Các công ty, doanh nghiệp, trường học, đang chạy đua ứng dụng tin học hóa nhằm nâng cao hiệu quả trong công việc quản
lý, kinh doanh, …
Ngày nay, thương mại điện tử chính là xu thế của xã hội bán hàng onlineđang dần thay thế việc bán hàng truyền thông; Có rất nhiều cửa hàng kinh doanh,bán hàng online rất hiệu quả và thu về lợi nhuận cao …Các cửa hàng, công ty,doanh nghiệp… muốn quảng bá sản phẩm của mình đều phải có website để tất cảmọi người có thể xem thông tin sản phẩm
Các website thương mại điện tử thường có cơ sở dữ liệu lớn nhưng lại không
có chọn lọc Người dùng rất đa dạng, mỗi người dùng lại có nhu cầu, thị hiếu mua sắm khác nhau Tuy nhiên hầu hết các website đều giới thiệu sản phẩm cho người dùng một cách tràn lan, không hiệu quả
Xuất phát từ tình hình thực tế đó và vận dụng kiến thức đã học tập ở trường
vào quá trình thực tập để đi sâu vào “XÂY DỰNG WEBSITE BÁN ĐIỆN
THOẠI DI ĐỘNG ỨNG DỤNG MỘT SỐ GIẢI THUẬT KHAI PHÁ DỮ LIỆU.” cho cửa hàng bán điện thoại, laptop và phụ kiện online.
Chúng em chân thành cảm ơn Thầy Ths.Trần Thanh Hùng đã tận tình hướngdẫn chúng em nhiều kiến thức thực tế trực quan để chúng em có thể nâng cao chấtlượng bài thực tập tốt nghiệp này Tuy đã cố gắng hết sức song không thể tránh khỏinhững sai sót nhỏ khi làm bài Mong Thầy bỏ qua và góp ý thêm cho chúng em
Em xin chân thành cảm ơn!
Trang 3TĨM TẮT ĐỀ TÀI
Mục đích:
Xây dựng một website bán hàng gồm các chức năng cơ bản
Tìm hiểu về khai phá dữ liệu, luật kết hợp cụ thể là giải thuật Apriori, Nạve bayes
Mục tiêu:
Tìm hiểu ngơn ngữ lập trình PHP, framework LARAVEL
Tìm hiểu thuật tốn khai phá luật kết hợp Apriori, Nạve bayes 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
Kết luận:
Quá trình thực tập sẽ giải quyết được các vấn đề lớn sau:
Tìm hiểu và xây dựng được một ứng dụng thực thế bằng framework LARAVEL.Cài đặt thành cơng thuật tốn khai phá luật kết hợp Apriori, Nạve bayes vào ứng dụng web
Trang 4MỤC LỤC
LỜI NĨI ĐẦU 2
TĨM TẮT ĐỀ TÀI 3
MỤC LỤC 4
DANH SÁCH HÌNH VẼ 7
DANH SÁCH CÁC BẢNG BIỂU 9
DANH SÁCH CÁC TỪ VIẾT TẮT 10
CHƯƠNG 1 MỞ ĐẦU 11
1.1 Tên đề tài 11
1.2 Lý do chọn đề tài 11
1.3 Tính cấp thiết của đề tài 12
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 13
2.1 Khai phá dữ liệu 13
2.1.1 Sự cần thiết của khai phá dữ liệu (Data mining)? 13
2.1.2 Khai phá dữ liệu là gì ? 13
2.1.3 Ứng dụng của khai phá dữ liệu 15
2.2 Thuật tốn Apriori khai phá luật kết hợp 15
2.2.1 Luật kết hợp (Association Rule) 15
2.2.2 Thuật tốn sinh các luật kết hợp Apriori 18
2.3 Thuật tốn Nạve bayes 22
2.3.1 Định lý Bayes 22
2.3.2 Ví dụ 23
CHƯƠNG 3 KHAI PHÁ DỮ LIỆU ÁP DỤNG VÀO WEBSITE 26
3.1 Phân tích dữ liệu học Apriori 26
3.2 Sử dụng luật kết hợp Apriori trong xây dựng bài tốn 26
3.3 Ứng dụng kết quả học Apriori trong xây dựng website 30
3.4 Phân tích dữ liệu học Nạve Bayes 32
3.5 Xây dựng bài tốn 32
3.6 Ứng dụng Nạve bayes vào website 34
CHƯƠNG 4 PHÂN TÍCH THIẾT KẾ WEBSITE BÁN HÀNG ONLINE 35
Trang 54.1 Bài toán 35
4.2 Xác định tác nhân của hệ thống 35
4.3 Xác định ca sử dụng của hệ thống 35
4.4 Đặc tả các ca sử dụng 37
4.4.1 Ca sử dụng Đăng ký 37
4.4.2 Ca sử dụng Đăng nhập 37
4.4.3 Ca sử dụng Xem chi tiết sản phẩm 38
4.4.4 Tìm kiếm sản phẩm 38
4.4.5 Ca sử dụng cập nhập thông tin tài khoản cá nhân 39
4.4.6 Ca sử dụng Mua hàng 39
4.4.7 Ca sử dụng Quản lý đơn hàng 40
4.4.8 Ca sử dụng Sử dụng giỏ hàng 41
4.4.9 Ca sử dụng Quản lý sản phẩm 42
4.4.10 Ca sử dụng Quản lý tài khoản 43
4.4.11 Ca sử dụng Quản lý tin tức 43
4.4.12 Quản lý phản hồi 45
4.5 Xác định các lớp tham gia vào các ca sử dụng 46
4.5.1 Ca sử dụng Đăng nhập 46
4.5.2 Ca sử dụng Đăng ký 47
4.5.3 Ca sử dụng Xem chi tiết sản phẩm 48
4.5.4 Ca sử dụng Cập nhật thông tin tài khoản cá nhân 50
4.5.5 Ca sử dụng Tìm kiếm sản phẩm 51
4.5.6 Ca sử dụng Sử dụng giỏ hàng 53
4.5.7 Ca sử dụng Đặt mua 55
4.5.8 Ca sử dụng Quản lý đơn hàng 57
4.5.9 Ca sử dụng Quản lý sản phẩm 58
4.5.10 Ca sử dụng Quản lý tin tức 61
4.5.11 Quản lý phản hồi 64
4.5.12 Quản lý tài khoản 66
4.6 Cơ sở dữ liệu 68
CHƯƠNG 5 THIẾT KẾ GIAO DIỆN VÀ CÀI ĐẶT CHƯƠNG TRÌNH 73
Trang 65.1 Giao diện trang chủ 73
5.2 Giao diện xem sản phẩm theo nhóm 74
5.3 Giao diện xem chi tiết sản phẩm 74
5.4 Giao diện Admin 75
KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77
BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH – VIỆT 78
Trang 7DANH SÁCH HÌNH VẼ
Hình 1.1 Ứng dụng của Data Mining và KDD 11
Hình 2.1 Quá trình khai thác tri thức 14
Hình 2.2 Dữ liệu ví dụ Apriori 19
Hình 2.3 Các bước thực hiện thuật toán Apriori 19
Hình 2.4 Kết quả Apriori 20
Hình 2.5 CSDL ví dụ 20
Hình 2.6 Lặp lại 21
Hình 2.7 Công thức Bayes 22
Hình 2.8 Công thức mở rộng của định lý Bayes 23
Hình 2.9 Tập dữ liệu huấn luyện 23
Hình 2.10 Xác suất của đối tượng “Banana” 23
Hình 2.11 Xác suất của đối tượng “Orange” 24
Hình 2.12 Xác suất của đối tượng “Other Fruit” 24
Hình 3.1 Cấu trúc dữ liệu bảng Order (Hóa đơn) 26
Hình 3.2 Thiết kế giao diện trang Chi tiết SP 30
Hình 3.3 Thiết kế giao diện trang Chi tiết SP (2) 31
Hình 3.4 Thiết kế giao diện trang Chi tiết (3) 31
Hình 3.5 Cấu trúc dữ liệu bảng Naivebayes 32
Hình 3.6 Hộp thoại gợi ý 34
Hình 4.1 Usecase chính của hệ thống 36
Hình 4.2 Biểu đồ lớp tham gia ca sử dụng Đăng nhập hệ thống của Khách hàng 46
Hình 4.3 Biểu đồ trình tự Đăng nhập hệ thống luồng chính 46
Hình 4.4 Biểu đồ trình tự Đăng nhập luồng phụ (Nhập sai tài khoản/mật khẩu) 47
Hình 4.5 Biểu đồ lớp tham gia ca sử dụng Đăng ký thành viên của Khách xem 47
Hình 4.6 Biểu đồ trình tự Đăng ký thành viên của Khách xem (luồng chính) 48
Hình 4.7 Biểu đồ lớp tham gia ca sử dụng Xem chi tiết sản phẩm 49
Hình 4.8 Biểu đồ trình tự Xem chi tiết sản phẩm 49
Hình 4.9 Biểu đồ trình tự Thêm hàng vào giỏ 50
Hình 4.10 Biểu đồ lớp tham gia ca sử dụng Cập nhật tài khoản của Khách hàng 51
Hình 4.11 Biểu đồ trình tự Đổi mật khẩu của Khách hàng 51
Trang 8Hình 4.12 Biểu đồ lớp tham gia ca sử dụng Tìm kiếm sản phẩm 52
Hình 4.13 Biểu đồ trình tự Tìm kiếm sản phẩm 53
Hình 4.14 Biểu đồ lớp tham gia ca sử dụng Sử dụng giỏ hàng 54
Hình 4.15 Biểu đồ trình tự Cập nhật số lượng sản phẩm trong giỏ (luồng chính) 54
Hình 4.16 Biểu đồ trình tự Cập nhật số lượng sản phẩm không thành công 55 Hình 4.17 Biểu đồ lớp tham gia ca sử dụng Mua hàng 56
Hình 4.18 Biểu đồ trình tự Mua hàng của Khách hàng 56
Hình 4.19 Biểu đồ lớp tham gia ca sử dụng Quản lý đơn hàng 57
Hình 4.20 Biểu đồ trình tự Cập nhật trang thái đơn hàng 58
Hình 4.21 Biểu đồ lớp tham gia ca sử dụng Quản lý sản phẩm 59
Hình 4.22 Biểu đồ trình tự Thêm một sản phẩm mới 60
Hình 4.23 Biểu đồ trình tự Xóa một sản phẩm 60
Hình 4.24 Biểu đồ lớp tham gia ca sử dụng Quản lý tin tức 61
Hình 4.25 Biểu đồ trình tự Thêm một tin tức mới 62
Hình 4.26 Biểu đồ trình tự Xóa một tin tức 63
Hình 4.27 Biểu đồ trình tự Sửa thông tin một tin tức đã được đăng 64
Hình 4.28 Biểu đồ lớp ca sử dụng Quản lý phản hồi 65
Hình 4.29 Biểu đồ trình tự Xóa phản hồi 65
Hình 4.30 Biểu đồ lớp QL Tài khoản 66
Hình 4.31 Biểu đồ trình tự Thêm Tài Khoản KH 67
Hình 4.32 Biểu đồ trình tự Sửa TKKH 68
Hình 4.33 Sơ đồ liên kết thực thể 72
Hình 5.1 Giao diện trang chủ 73
Hình 5.2 Giao diện xem sản phẩm theo nhóm 74
Hình 5.3 Giao diện xem chi tiết sản phẩm 74
Hình 5.4 Giao diện Admin 75
Trang 9DANH SÁCH CÁC BẢNG BIỂU
Bảng 3.1 Dữ liệu ví dụ lọc ra trong một tháng gần đây 26
Bảng 3.2 Dữ liệu thuật tốn lấy ra 27
Bảng 3.3 Kết quả lần quét 1 28
Bảng 3.4 Lọc kết quả sau lần quét 1 28
Bảng 3.5 Kết quả lần quét 2 28
Bảng 3.6 Lọc kết quả sau lần quét 2 29
Bảng 3.7 Lần quét 3 29
Bảng 3.8 Lọc kết quả lần quét 3 30
Bảng 3.9 Bảng dữ liệu training Nạve bayes 32
Bảng 4.1 Tác nhân và ca sử dụng của hệ thống 36
Bảng 4.2 Catalogy: Danh mục sản phẩm 68
Bảng 4.3 Order: Đơn hàng 68
Bảng 4.4 Product: Sản phẩm 69
Bảng 4.5 User người dùng 69
Bảng 4.6 Giao dịch 70
Bảng 4.7 Tin tức 70
Bảng 4.8 Phản hồi (comment) 70
Bảng 4.9 Apriori 70
Bảng 4.10 Nạve bayes 71
Bảng 4.11 Order 71
Trang 11Hình 1.1 Ứng dụng của Data Mining và KDD
Trang 12Mặt khác, tại các trang thương mại điện tử của Việt nam hiện nay, việc ápdụng khai phá dữ liệu hướng tới nhu cầu người dung còn hạn chế, hầu hết các trangThương mại điện tử chỉ nhằm mục đích giới thiệu và bán sản phẩm, chứ chưa tưvấn được cho khách hàng mua thêm các sản phẩm liên quan.
Chính vì vậy tôi chọn đề tài là xây dựng website bán điện thoại, laptop vàphụ kiện ứng dụng một số giải thuật khai phá dữ liệu
1.3 Tính cấp thiết của đề tài
Hiện nay chúng ta đang sống trong thời đại công nghệ 4.0, ở đây mọi thứ đềuđược hướng tới sự tự động hóa, tương tác online, tối ưu hiệu quả một cách tối đa nhằm đưa đến sự thuận tiện và nhanh chóng nhất, làm cho cuộc sống ngày càng vănminh hơn
Không nằm ngoai xu thế này, công nghệ thông tin cũng phát triển một cáchnhanh chóng để đáp ứng được sự phát triển như vũ bão này, ở đây mọi thứ đượchướng tới như công nghệ IoT, AI, Big Data, trong đó các công nghệ này ngàycàng được áp dụng sâu rộng vào thực tiễn thông qua các ứng dụng Công nghệ thôngtin
Nghiên cứu và ứng dụng giải thuật luật kết hợp trong xây dựng bài toán bánhàng cũng là một trong những cấp thiết của công nghệ 4.0, nhằm đưa đến các trangthương mại điện tử có thể tự động hóa bán hàng
Trang 13CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Khai phá dữ liệu
Khoảng hơn một thập kỷ trở lại đây, sự tích lũy dữ liệu xảy ra với một tốc độbùng nổ Chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức Câu hỏi đặt
ra là liệu chúng ta có thể khai thác được gì từ những dữ liệu tưởng chừng như “bỏđi” ấy không?
“Necessity is the mother of invention”- Data Mining ra đời như một hướng
giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên Có thể tạm hiểu rằng Data Miningnhư là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho
dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào
đó
2.1.2 Khai phá dữ liệu là gì ?
Định nghĩa : Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự
động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữliệu khổng lồ (Big Data) và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trongtập 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 :
1 Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem
understanding and data understanding).
2 Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình làm sạ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)
3 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ô.
4 Đá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
5 Triển khai (Deployment)
Trang 14Hình 2.2 Quá trình khai thác tri thức
* Data Mining bao gồm một số phương pháp sau:
- Phân loại (Classification): Là phương pháp dự báo, cho phép phân loại mộtđối tượng vào một hoặc một số lớp cho trước
- Hồi qui (Regression): Discovery of a prediction learning function, whichmaps a data item to a real-value prediction variable
- Phân nhóm (Clustering): A common descriptive task in which one seeks toidentify a finite set of categories or clusters to describe the data
- Tổng hợp (Summarization): An additional descriptive task that involvesmethods for finding a compact description for a set (or subset) of data
- Mô hình ràng buộc (Dependency modeling): Finding a local model thatdescribes significant dependencies between variables or between the values of a
Trang 15- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): Discoveringthe most significant changes in the data set.
- Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sựquan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễncủa nó Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:
+ Tin sinh học
+ Thương mại điện tử
+ Phát hiện lừa đảo
+ Quảng cáo
+ Quản lý quan hệ khách hàng
+ Chăm sóc sức khỏe
+ Máy tìm kiếm (web)
- Đáng chú ý: Đơn vị Able Danger của quân đội Mỹ đã dùng phương phápkhai thác dữ liệu để xác định kẻ đứng đầu cuộc tấn công ngày 11-9
Xem tin tức Wikinews tại: Wikinews: U.S Army intelligence detection of9/11 terrorists before attack
2.2 Thuật toán Apriori khai phá luật kết hợp
2.2.1 Luật kết hợp (Association Rule)
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ộidung cơ bản của luật kết hợp được tóm tắt như dưới đây
-* Các khái niệm cơ bản:
- Item (phần tử): là các phần tử, các mẫu, đối tượng được quan tâm I = {I1,I2, …, Im}: là tập tất cả m phần tử có thể có trong tập dữ liệu
- Itemset (tập phần tử): là tập hợp các items Một itemset có k items gọi là itemset
Trang 16k Transaction (giao dịch): là các lần thực hiện tương tác với hệ thống (ví dụ:giao dịch “khách hàng mua hàng”) Liên hệ với một tập T gồm các phần tử đượcgiao dịch.
- Association (sự kết hợp) và association rule (luật kết hợp) Sự kết hợp: cácphần tử cùng xuất hiện với nhau trong một hay nhiều giao dịch Thể hiện mối quan
hệ giữa các phần tử/các tập phần tử
- Luật kết hợp: là quy tắc kết hợp có điều kiện giữa các tập phần tử
+ Thể hiện mối liên hệ (có điều kiện) giữa các tập phần tử
+ Cho A và B là các tập phần tử, luật kết hợp giữa A và B là A B B xuất
hiện trong điều kiện A xuất hiện
- Support (độ hỗ trợ): là độ đo tần số xuất hiện của các phần tử/tập phần tử
- Minimum support threshold (ngưỡng hỗ trợ tối thiểu): giá trị hỗ trợ nhỏ nhấtđược chỉ định bởi người dùng
- Confidence (độ tin cậy)
+ Độ đo tần số xuất hiện của một tập phần tử trong điều kiện của một tập phần
tử khác
+Minimum confidence threshold (ngưỡng tin cậy tối thiểu): là giá trịconfidence nhỏ nhất được chỉ định bởi người dùng
- Frequent itemset (tập phần tử phổ biến)
+ Là tập phần tử có support thoả minimum support threshold
+ Cho A là một tập itemset: A là frequent itemset if support(A) >= minimumsupport threshold
- Strong association rule (luật kết hợp mạnh)
+ Là luật kết hợp có support và confidence thoả minimum support threshold
và minimum confidence threshold
+ Cho luật kết hợp A B giữa A và B, A và B là itemsets: A B là strong association rule if support(A B) >= minimum support threshold và confidence(A
B) >= minimum confidence threshold.
* Phân loại luật kết hợp:
Trang 17- Boolean association rule (luật kết hợp luận lý)/quantitative association rule(luật kết hợp lượng số)
+ Boolean association rule là luật mô tả sự kết hợp giữa sự hiện diện/vắng mặtcủa các phần tử
Computer Financial_management_software [support=2%,confidence=60%]
+ Quantitative association rule là luật mô tả sự kết hợp giữa các phần tử/thuộctính định lượng
Age (X, “30…39”) Income (X, “42…48K”) Buys (X, high resolution TV)
- Single-dimensional association rule (luật kết hợp đơnchiều)/Multidimensional association rule (luật kết hợp đa chiều)
+ Single-dimensional association rule là luật chỉ liên quan đến các phầntử/thuộc tính của một chiều dữ liệu
Buys (X, “computer”) Buys(X, “financial_management_software”)
+ Multidimensional association rule: luật liên quan đến các phần tử/thuộc tínhcủa nhiều hơn một chiều
Age (X, “30… 39”) Buys (X, “computer”)
- Single-level association rule (luật kết hợp đơn mức)/multilevel associationrule (luật kết hợp đa mức)
+ Single-level association rule là luật chỉ liên quan đến các phần tử/thuộc tính
ở một mức trừu tượng
Age (X, “30… 39”) Buys (X, “computer”)
Age (X, “18… 29”) Buys (X, “camera”)
+ Multilevel association rule: luật liên quan đến các phần tử/thuộc tính ở cácmức trừu tượng khác nhau
Age (X, “30 39”) Buys (X, “laptop computer”)
Age (X, “30… 39”) Buys (X, “computer”)
- Association rule (luật kết hợp)/Correlation rule (luật tương quan thống kê)
Trang 18+ Association rule: strong association rules A B (association rules đáp ứng yêucầu minimum support threshold và minimum confidence threshold)
+ Correlation rule: strong association rules A B đáp ứng yêu cầu về sự tu ̛ơngquan thống kê giữa A và B
2.2.2 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 L1) L1 được dùng để tìm L2 (2-itemsets).L2 được dùng để tìm L3 (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ỏamãn 2 tham số min_sup và min_conf)
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 độ tincậ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}
Trang 19{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:
Hình 2.3 Dữ liệu ví dụ Apriori
* Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau
Hình 2.4 Các bước thực hiện thuật toán Apriori
- Ta có frequent itemsets I = {A, B, E}, với min_conf =80% ta có 2 luật kết hợp là:{A, B} => {E} và {A, E} => {B}
Trang 21Hình 2.7 Lặp lại
Kết quả ta có các luật kết hợp sau (với min_sup= 40%, min_conf=70%)
R1: Lót chuột => Tai nghe, Chuột không dây (support =40%, confidence =100%)
Trang 22R2: Tai nghe, Lĩt chuột => Chuột khơng dây (support = 40%, confidence =100%)
R3: Chuột khơng dây, Lĩt chuột => Tai nghe (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ư Lĩt chuột => Tai nghe, Chuột khơng dây, Tuynhiên trên thực tế cĩ luật cần phải phân tích thêm và cĩ khĩ tin
Thuật tốn Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định(Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ khơng thể phát hiệncác luật kết hợp ở dạng phủ định (Negative Association Rule) chẳng hạn như cáckết hợp dạng “Khách hàng mua mặt hàng A thường KHƠNG mua mặt hàng B”hoặc “Nếu ủng hộ quan điểm A thường KHƠNG ủng hộ quan điểm B” Khai phácác luật kết hợp dạng phủ định (Mining Negative Association Rules) cĩ phạm viứng dụng rất rộng và thú vị nhất là trong Marketing, Health Care và Social NetworkAnalysis
2.3 Thuật tốn Nạve bayes
- P(B|A) là xác suất xảy ra B khi biết A xảy ra
- P(A) là xác suất sảy ra của riêng A mà khơngquan tâm đến B
- P(B) là xác suất xảy ra của riêng B mà khơng quan tâm đến A
Ở trên ta cĩ thể thấy xác suất sảy ra của giả thuyết A phụ thuộc và xác suất củagiả thuyết B, nhưng trong thực tế xác suất A cĩ thể phụ thuộc vào xác suất của
Trang 23nhiều các giác thuyết khác có thể là B1, B2, B3 … Bn Vậy định luật Bayes có thể được mở rộng bằng công thức sau:
Hình 2.9 Công thức mở rộng của định lý Bayes
Hình 2.10 Tập dữ liệu huấn luyện
Bây giờ bài toàn đặt ra là tính ra tỷ lệ một quả chuối có thuộc tính là “màuvàng, dài, và ngọt” với tỷ lệ quả cảm và các loại hoa quả khác có cũng có thuộctính là “màu vàng, dài, và ngọt”
Áp dụng định lý Bayes ta sẽ có 3 công thức tính cho 3 loại trái cây như sau:
1 Tỷ lệ quả chuối với thuộc tính “vàng, dài và ngọt”
Hình 2.11 Xác suất của đối tượng “Banana”
Trang 24Tức là tỷ lệ chuối với thuộc tính “vàng, dài và ngọt” là 97%
2 Tương tự ta cũng có thể tính ra tỷ lệ quả cam với thuộc tính “vàng dài và ngọt”với công thức sau:
Hình 2.12 Xác suất của đối tượng “Orange”
Do tỷ lệ P(Long|Orange) = 0/500 = 0 cho nên P (Orange| Long, Sweet,Yellow) = 0 tức là tỷ lệ quả cam với thuộc tính “vàng dài và ngọt” là 0%
3 Cũng thế ta ốp công thức Bayes để tính các trái cây còn lại với thuộc tính “vàngdài và ngọt” với công thức sau:
Hình 2.13 Xác suất của đối tượng “Other Fruit”
P (Long| Other Fruit) = 100/200 = 0.5
P (Sweet| Other Fruit) = 150/200 = 0.75
Trang 25Vậy suy ra với trái cây với ba thuộc tính là “vàng, dài và ngọt” thì có khả năngcao nhất đó là quả chuối.
Chúng ta có thể ứng dụng Naive Bayes Classification để tính tỷ lệ xác suất vớirất nhiều các dạng bài toán khác nhau, với dữ liệu càng nhiều thì độ chính xác củathuật toán sẽ càng cao và khi dữ liệu thay đổi thì kết quả cũng thay đổi theo
Trang 26CHƯƠNG 3 KHAI PHÁ DỮ LIỆU ÁP DỤNG VÀO
WEBSITE
3.1 Phân tích dữ liệu học Apriori
Phân tích dữ liệu: từ những hóa đơn đặt hàng của khách hàng chúng ta có thể
dự đoán được xu hướng mua hàng của người dùng Từ đó khi khách hàng chọn muahàng này thì hệ thống sẽ giới thiệu những mặt hàng mà người dùng khác đã mua vớisác xuất cao
Thuật toán lấy dữ liệu của bảng OrderDetail (Chi tiết hóa đơn) làm dữ liệu
cơ sở để đưa vào thuật toán phân tích
Xét CSDL của bảng Orrder Bảng này là bảng hóa đơn bán hàng của cửa
hàng, khách thường có xu hướng mua những cái gì với nhau trong giỏ hàng (ví dụnhư khách hay mua chuột, lót chuột, hoặc điện thoại, tai nghe cùng với nhau ).Biết được thông tin này thì chúng ta có thể tư vấn mua hàng cho những khách hàngtiếp theo
Hình 3.14 Cấu trúc dữ liệu bảng Order (Hóa đơn)
3.2 Sử dụng luật kết hợp Apriori trong xây dựng bài toán
Ví dụ minh họa như sau:
Bảng 3.1 Dữ liệu ví dụ lọc ra trong một tháng gần đây
Trang 27Ở ví dụ này lấy minsupp=2, ta quét trên bảng 2.2, thu được kết quả:
Lần quét 1:
Bảng 3.3 Kết quả lần quét 1
Trang 28- Bỏ product {0004}, vì số lần xuất hiện là support=1 < minsupp,
- Kết quả thu được sau lần quét 1 làm tiền đề cho lần quét 2:
Bảng 3.4 Lọc kết quả sau lần quét 1
Trang 29Bảng 3.6 Lọc kết quả sau lần quét 2
{0001-0003 Kết quả thu được sau lần quét 3 làm tiền đề cho lần quét 4:
Kết quả thu được là thu được các cặp 2, cặp 3, thỏa mãn điều kiện minsupp
3.3 Ứng dụng kết quả học Apriori trong xây dựng website
Ví dụ khách hàng chọn 1 sản phẩm bất kỳ, chẳng hạn sản phẩm có id=0003 Với giỏ hàng lúc này chỉ có 1 sản phẩm id=0003, thì ta lấy kết quả của lầnquét 2, tức là sản phẩm id=0003 có thể được kết hợp với id=0001, hoặc id=0002mới thỏa mãn điều kiện phổ biến
Trang 30Hình 3.15 Thiết kế giao diện trang Chi tiết SP
Tiếp theo nếu chọn tiếp sản phẩm có id=0001, lúc này chúng ta đã có bộ 2mua kèm là {0003,0001}, chúng ta lấy kết quả quét lần 3, trong bảng quét lần 3không có bộ sản phẩm nào mà có cặp {0003,0001}
Hình 3.16 Thiết kế giao diện trang Chi tiết SP (2)
Ngược lại nếu khách hàng chọn tiếp sản phẩm có id=0002, lúc này chúng ta đã
có bộ 2 mua kèm là {0003,0002}, chúng ta lấy kết quả quét lần 3, trong bảng quét
Trang 31Hình 3.17 Thiết kế giao diện trang Chi tiết (3)
3.4 Phân tích dữ liệu học Nạve Bayes
Phân tích dữ liệu: từ những buổi họp báo hay hội thảo chúng ta cĩ thể thu thậpthơng tin người dùng bằng cách lấy phiếu khảo sát Từ đĩ khi khách hàng cần tưvấn mua hàng thì hệ thống sẽ tìm sản phẩm cĩ xác suất mua là cao nhất Thuật tốnNạve Bayes giúp giải quyết vấn đề này
Thuật tốn lấy dữ liệu của bảng Nạve Bayes gồm các trường Tuổi, Giới tính,Trình độ học vấn, Nghề nghiệp, Mức giá mong muốn và Sản phẩm họ chọn mualàm dữ liệu cơ sở để đưa vào thuật tốn training
Xét CSDL của bảng Nạve Bayes
Trang 32Hình 3.18 Cấu trúc dữ liệu bảng Nạve bayes
Khi cĩ 1 yêu cầu tư vấn (tương tự một mẫu cần nhận dạng) thuật tốn sẽ tínhxác suất của từng thuộc tính dựa vào tập dữ liệu training được select từ bảng NạveBayes
Sau khi tính xác suất, chúng ta đưa kết quả sinh ra để tư vấn cho người dùngtrên website bán hàng
3.5 Xây dựng bài tốn
Ví dụ minh họa như sau:
Bảng 3.9 Bảng dữ liệu training Nạve Bayes
Trang 33P (39, nam, giáo sư, cơ khí, 15-20 tr | 12) =
(0.5*0.5*0.5*0.5*0.5*0.5)/(0.25*0.25*0.5*0.25*0.5) = 8
P (39, nam, giáo sư, cơ khí, 15-20 tr | 19) = 0
P (39, nam, giáo sư, cơ khí, 15-20 tr | 16) = 0
3.6 Ứng dụng Nạve bayes vào website
- Khi click vào Icon gợi ý hộp thoại lấy thơng tin cần thiết sẽ hiện ra:
Trang 34Hình 3.19 Hộp thoại gợi ý
- Khi nhập đủ thông tin và chọn nút gợi ý, web sẽ chuyển sang trang chi tiết sảnphẩm tương ứng
Trang 35CHƯƠNG 4 PHÂN TÍCH THIẾT KẾ WEBSITE BÁN HÀNG
Trang 36Sử dụng giỏ hàngMua hàng
Comment sản phẩm
Quản lý sản phẩmQuản lý đơn hàngQuản lý tin tứcQuản lý comment
Quản lý tài khoản
Biểu đồ UseCase chính
Hình 4.20 Usecase chính của hệ thống
Trang 37Ca sử dụng bắt đầu khi người dùng click vào Đăng ký.
Hệ thống yêu cầu người dùng nhập thông tin cá nhân
Hệ thống kiểm tra thông tin hợp lệ? Nếu không thì thực hiện luồng A1
Luồng A1: Khách hàng nhập thông tin không hợp lệ
- Hệ thống hiển thị thông báo lỗi
- Người dùng có thể sửa lại thông tin và đăng ký lại hoặc là hủy bỏ Ca sửdụng kết thúc
Tiền điều kiện: Không
Hậu điều kiện: Người dùng sẽ có tài khoản trên hệ thống, thực hiện được đầy
đủ chức năng của khách hàng
Mô tả tóm tắt:
Tên ca sử dụng: Đăng nhập hệ thống
Mục đích: Mô tả cách người dùng đăng nhập vào hệ thống
Tác nhân: Khách hàng, Người quản lý hệ thống
Các luồng sự kiện chính
- Ca sử dụng bắt đầu khi người dùng muốn đăng nhập vào hệ thống
Trang 38- Hệ thống yêu cầu người dùng nhập tài khoản và mật khẩu đăng nhập
- Hệ thống kiểm tra tài khoản và mật khẩu? Nếu sai thì thực hiện luồng A1
Các luồng rẽ nhánh
- Luồng A1: Nhập sai tài khoản/mật khẩu đăng nhập
- Hệ thống hiển thị thông báo lỗi Ca sử dụng kết thúc
Tiền điều kiện: Không
Hậu điều kiện: Nếu đăng nhập thành công, user sẽ vào được hệ thống
Luồng sự kiện chính:
Ca sử dụng bắt đầu khi người dùng vào website xem sản phẩm
Người dùng click vào sản phẩm để xem thông tin chi tiết về sản phẩm
Hệ thống hiển thị thông tin chi tiết về sản phẩm
Các luồng rẽ nhánh: Không
Tiền điều kiện: Không
Hậu điều kiện: Không
Ca sử dụng bắt đầu khi người dung Tìm kiếm sản phẩm
Hệ thống hiển thị các lựa chọn tìm kiếm:
- Tìm kiếm theo từ/cụm từ nhập vào ô tìm kiếm
- Tìm kiếm theo giá
- Tìm kiếm theo hãng sản xuất
Hệ thống yêu cầu người dùng chọn chức năng tìm kiếm
Trang 39Người dùng click vào Tìm kiếm, hệ thống hiển thị những sản phẩm tìm thấytrong cơ sở dữ liệu.
Tiền điều kiện: Không
Hậu điều kiện: Không
Mô tả tóm tắt:
Tên ca sử dụng: Cập nhật tài khoản cá nhân
Mục đích: Cho phép người dùng thay đổi mật khẩu và thông tin cá nhân
Tác nhân: Khách hàng, Admin
Các luồng sự kiện chính:
Ca sử dụng bắt đầu khi người dùng muốn thay đổi thông tin cá nhân
Người dùng đăng nhập vào hệ thống và click vào Tài khoản
- Hệ thống yêu cầu Người dùng sửa thông tin
- Người dùng sửa những thông tin cần thiết và xác nhận việc sửa đổi
- Hệ thống cập nhật những thay đổi vừa thực hiện
Các luồng rẽ nhánh:
Luồng A1: Nếu Người dùng chọn Hủy, ca sử dụng kết thúc
Tiền điều kiện: Người dùng phải đăng nhập thành công vào hệ thống.
Hậu điều kiện: Mật khẩu và thông tin cá nhân được thay đổi trên hệ thống.
- Ca sử dụng bắt đầu khi Khách hàng thực hiện việc đặt hàng trên hệ thống
- Hệ thống yêu cầu Khách hàng nhập thông tin vận chuyển
- Hệ thống hiển thị các lựa chọn: Tiếp tục, quay lại