Upload
nghia-le
View
690
Download
2
Embed Size (px)
DESCRIPTION
Xây dựng hệ gợi ý dựa trên thuật toán Apriori http://www.doko.vn/
Citation preview
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU LUẬT KẾT HỢP ÁP DỤNG XÂY DỰNG MẠNG
CHIA SẺ ĐỒ VẬT MIGI
GV Hướng dẫn: ThS.Hoàng Anh ViệtSV Thực hiện: Lê Minh Nghĩa
Lớp : Công Nghệ Phần Mềm K51
NỘI DUNG TRÌNH BÀY
1. Đặt vấn đề2. Các kiến thức liên quan3. Xây dựng giải pháp4. Thử nghiệm và đánh giá5. Kết luận và hướng phát triển
2
3
1. Đặt vấn đề
44
55
6
Thống kê
90% có thể tái chế
Nhưng chỉ thực hiện được 15%
7
Giải pháp
7
Tôi có một cái áo cho đi
Tôi cần một cái áo!
Một môi trường chia sẻ
Cảm ơn!
8
Vấn đề phát sinh
Ai là người thực sự cần???
Khai phá dữ liệu để tìm các tri thức hữu ích
9
Các tri thức có thể khai phá được
• Tìm ra thói quen chia sẻ đồ vật Vd: cho điện thoại cũ => cho kèm bộ sạc
điện• Phân tích sở thích người dùng• Điều tra thị trường
10
Mục tiêu đồ án
• Xây dựng mạng xã hội chia sẻ đồ vật Migi• Nghiên cứu lý thuyết Datamining, trong đó
tập trung về luật kết hợp• Đề xuất mô hình gợi ý dựa trên luật kết hợp• Thử nghiệm tìm luật kết hợp trên bộ dữ liệu
Adventurework
11
2.Tổng quan về luật kết hợp
Sữa, bánh mỳ, ,ngũ cốc
Sữa, bánh mỳ, đường, trứng
Sữa, bánh mỳ, bơ
Đường, trứng
Khánh hàng 2
Khánh hàng 3
Khánh hàng 4
Khánh hàng 5
Những mặt hàng nào
thường được đặt mua cùng
nhau?
12
2.1. Luật kết hợp là gì?
• Được sử dụng để tìm các mấy quan hệ giữa các đối tượng trong một giao dịch.
Vd:- Mua sữa thì thường mua bánh mỳ- Mua bánh mỳ thì thường mua bơ- Người mua máy tính thì thường mua phần tử
virus
13
Các khái niệm cơ bản
14
Giao dịch Các Item
T100 Sữa, bánh mỳ, ngũ cốc
T200 Sữa, bánh mỳ, đường, trứng
T300 Sữa, bánh mỳ, bơ
T400 Đường trứng
Items Số lần xuất hiện
Trứng 2
Sữa, 3
Bánh mỳ 3
Ngũ cốc 1
Đường 2
Bơ 1
Các Item Độ hỗ trợ- support count
Cơ sở dữ liệu giao dịch
Độ hỗ trợ tối thiểu: min_sup=2Tập 2 mục
{Sữa, Bánh mỳ} SupportCount=3>min_supSố lần xuất hiện
Tập mục thường xuyên
Luật: Sữa Bánh mỳ Độ tin cậy- Confidence???
15
Độ tin cậy của luật kết hợp
• Luật A=> B chấp nhận nếu:
confidence (A=>B) > min_confidene
Vd:
Min_Confidence=90% Luật chấp nhận được
16
Khó khăn của thuật toán
• Độ phức tạp và thời gian tính toán.
Vd: với tập mục thường xuyên có 100 phần tử. Thì tổng số tập mục con là tập mục thường xuyên sẽ là:
• Tính tin cậy của luật kết hợp sinh ra.
17
2.3. Các thuật toán cơ bản
• Thuật toán Apriori• Thuật toán PHP- Perfect Hashing and Pruning• Thuật toán FP Tree
18
Thuật toán Apriori
• Mục đích: Tìm kiếm các tập múc thường xuyên• Các bước:
B1:Sinh các tập mục ứng viên K phần tử từ các tập mục K-1
B2:Loại bỏ các tập mục ứng viên nếu tồn tại bất kỳ một tập hợp con nào không phải là tập mục thường xuyên
B3:Kết thúc khi không còn sinh được một tập mục ứng viên nào là tập mục thường xuyên
19
Mô tả thuật toán
20
Trans Items
T100 I1, I2, I5T200 I2,I4T300 I2,I3
T400 I1,I2,I4
T500 I1,I3
T600 I2,I3
T700 I1,I3
T800 I1,I2,I3,I5
T900 I1,I2,I3
Item Sup.Count
I1 6
I2 7
I3 6
I4 2
I5 2
C1
Item Sup.Count
I1 6
I2 7
I3 6
I4 2
I5 I2
MinSup=2
L1ItemSet
{I1,I2}
{I1,I3}
{I1,I4}
{I1,I5}
{I2,I3}
{I2,I4}
{I2,I5}
{I3,I4}
{I3,I5}
{I4,I5}
C2
ItemSet Sup.Count
{I1,I2} 4
{I1,I3} 4
{I1,I4} 1
{I1,I5} 2
{I2,I3} 4
{I2,I4} 2
{I2,I5} 2
{I3,I4} 0
{I3,I5} 1
{I4,I5} 0
C2
ItemSet Sup.Count
{I1,I2} 4
{I1,I3} 4
{I1,I5} 2
{I2,I3} 4
{I2,I4} 2
{I2,I5} 2
L2
L1 x L1
Cơ sở dữ liệu giao dịch
21
ItemSet Sup.Count
{I1,I2} 4{I1,I3} 4{I1,I5} 2
{I2,I3} 4
{I2,I4} 2
{I2,I5} 2
L2
ItemSet
{I1,I2,I3}
{I1,I2,I5}
{I1,I3,I5}
{I2,I3,I4}
{I2,I3,I5}
{I2,I4,I5}
C3 SubSet
{I1,I2}
{I1,I3}
{I2,I3}
Thuộc L2
SubSet
{I1,I3}
{I1,I5}
{I3,I5} Không thuộc L2
L2 x L2
ItemSet
{I1,I2,I3}
{I1,I2,I5}
ItemSet Sup.Count
{I1,I2,I3} 2
{I1,I2,I5} 2
C3C3
ItemSet Sup.Count
{I1,I2,I3} 2
{I1,I2,I5} 2
L3
22
2.3.2.Thuật toán PHP
• Cải tiến từ thuật toán Apriori:
1. Sử dụng cấu trúc bảng băm:
- Lưu trữ độ hỗ trợ của các tập mục 2 phần tử
23
Trans Items
T100 I1, I2, I5T200 I2,I4T300 I2,I3
T400 I1,I2,I4
T500 I1,I3
T600 I2,I3
T700 I1,I3
T800 I1,I2,I3,I5
T900 I1,I2,I3
Item Sup.Count
I1 6
I2 7
I3 6
I4 2
I5 I2
I1I2 I1I5 I2I4 I2I3 I1I4 I1I3 I1I5 I3I5
4 2 2 4 1 4 2 1
Bảng băm cho tập 2 phần tử
L1
Quét DB
Cơ sở dữ liệu giao dịch
24
Thuật toán PHP
2. Loại bỏ các giao dịch
- Loại bỏ các giao dịch mà không có đủ k+1 tập k-mục
- Loại bỏ những mục nào có số lần xuất hiện trong tập Lk nhỏ hơn k lần.
2525
Trans Items
T100 I1, I2, I5T200 I2,I4T300 I2,I3
T400 I1,I2,I4
T500 I1,I3
T600 I2,I3
T700 I1,I3
T800 I1,I2,I3,I5
T900 I1,I2,I3
Item Sup.Count
I1 6
I2 7
I3 6
I4 2
I5 2
C1
Item Sup.Count
I1 6
I2 7
I3 6
I4 2
I5 I2
MinSup=2
L1ItemSet
{I1,I2}
{I1,I3}
{I1,I4}
{I1,I5}
{I2,I3}
{I2,I4}
{I2,I5}
{I3,I4}
{I3,I5}
{I4,I5}
C2
ItemSet Sup.Count
{I1,I2} 4
{I1,I3} 4
{I1,I4} 1
{I1,I5} 2
{I2,I3} 4
{I2,I4} 2
{I2,I5} 2
{I3,I4} 0
{I3,I5} 1
{I4,I5} 0
C2
ItemSet Sup.Count
{I1,I2} 4
{I1,I3} 4
{I1,I5} 2
{I2,I3} 4
{I2,I4} 2
{I2,I5} 2
L2
L1 x L1
Cơ sở dữ liệu giao dịch
Trans Items
T800 I1,I2,I3,I5
26
Đánh giá trên bộ dữ liệu thử
K=2 K=3 K=4 K=5 K-6 K=7
Transaction 20019 4503 1017 583 237 34
2500
7500
12500
17500
22500
Transaction
Số g
iáo
dịch
27
2.3.3.Thuật toán FP Tree
• Mục đích:
- Biểu diễn các giao dịch bằng cấu trúc dữ liệu cây.
- Không sinh các ứng viên mà tìm kiếm tập mục ngay trên cây.
• Các bước của thuật toán:
B1: Xây dựng cây biểu diễn các giao dịch
B2: Tìm kiếm đệ quy trên cây để sinh ra các luật kết hợp
28
Mô tả thuật toán
29
Item Sup.Count
I2 7
I1 6
I3 6
I4 2
I5 2
NullTrans Items
T100 I1, I2, I5T200 I2,I4T300 I2,I3
T400 I1,I2,I4
T500 I1,I3
T600 I2,I3
T700 I1,I3
T800 I1,I2,I3,I5
T900 I1,I2,I3
T100:I2,I1,I5
I2:1
I1:1
I5:1
T200:I2,I4
I4:1
I2:2
Root Node
30
31
I5 {I2,I1:1},{I2,I1,I3:1}Item Sup.Count
I2 2
I1 2
I3 1
Item Sup.Count
I2 2
I1 2
Sufffix Conditional Pattern Base
Min Sup=2
{I2,I1:2}
{}
I2:2
I1:2
ItemSet Conditional Pattern Base
I5,I1 {I2:2}
I5,I2 {}
Tập mục thường xuyên 2 phần tử
Prefix
I5I1
I5I1
{}
I2:2
Item Sup.Count
I2 2
ItemSet Conditional Pattern Base
I5,I1,I2 {}
Tập mục thường xuyên 3 phần tử
32
Kết quả thu được
33
So sánh hiệu năng ba thuật toán
Han, J., Pei, J., Yin, J., (2000), Mining Frequent Patterns without CandidateGeneration, Proceedings of the 2000 ACM SIGMOD international conference onManagement of data, pp. 1-12
34
3.1. Kiến trúc tổng thể của hệ thống
Web UI
ADO.NET Entity
RecommenderImage serverCaching Server
Business LayerGoogle MapFacebook Database- SQL Server 2008
Data Analysis
ServicesMobile App
35
Mô tả các tầng
• Tầng WebUI: Sử dụng các công nghệ:ASP.NET MVC, JQuery, Google Map
• Tầng Business: Tầng này chưa toàn bộ nghiệp vụ của hệ thống.
• Tầng Data: Sử dụng SQL Server 2008, ADO.NET Entity
• Các Service: Sử dụng WCF xây dựng các service mở
36
Mô tả các tầng
• Data Analysis: phân tích dữ liệu nhằm tìm kiếm các tri thức hữu ích.
• Recommender: Dựa trên các tri thức tích lũy gợi ý cho người dùng
• Image Server: Quản lý việc hiện thị ảnh cho site• Caching Server: Để tăng tốc độ của web site• Ứng dụng facebook: Truy cấp hệ thống từ Facebook• Ứng dụng Mobile: Cho phép truy cấp hệ thống mọi
nơi
37
3.2 Thiết kế cơ sở dữ liệu
38
3.3.Cơ sở dữ liệu cho việc phân tích
• Dữ liệu sau khi được tiền xử lý chuyển thành:
39
3.4. Xây dựng module gợi ý từ các luật kết hợp
Module gợi ý được xây dưng dựa trên:• Các luật kết hợp• Dữ liệu về địa điểm người dùng (đã được
khai báo)• Dữ liệu về chủng loại sản phẩm
40
3.5. Bộ dữ liệu thử nghiệm
• Sử dụng bộ dữ liệu bán xe đạp Adventurework do Microsoft cung cấp
• Các đặc điểm chính:
Tất cả 266 sản phẩm được giao dịch
Có 21209 giao dịch có từ hai sản phẩm được mua
Trung bình mỗi giao dịch có 5 sản phẩm
Giao dịch từ 2 cho tới 21 sản phẩm chiếm: 94.3% số giao dịch
41
Một số luật khai thác được
{Mountain-100 Black, 44}=>{Half-Finger Gloves, M} {Mountain-100 Silver, 42}=>{ Half-Finger Gloves, M } { Mountain-100 Silver, 42}=>{ LL Road Handlebars } { Mountain-100 Silver, 42, Half-Finger Gloves, M }=>{
Men's Sports Shorts, S} { Mountain-100 Silver, 42 }=>{ Men's Sports Shorts,
M, Racing Socks, M} { Mountain-500 Black, 48 , LL Mountain
Pedal }=>{ ML Mountain Front Wheel }
42
4. Kết luận và hướng phát triển
43
4.1 Các kết quả đạt được
Về nghiên cứu:- Các kiến thức tổng quát về Data Mining- Lý thuyết về luật kết hợp- Các thuật toán cơ bản để khai phá luật kết hợp
Về sản phẩm: Góp phần xây dựng mạng chia sẻ đồ vật với các tính năng chính:
- Cho phép người dùng đưa thông tin chia sẻ đồ vật- Gợi ý người dùng khi chia sẻ đồ vật- Cho phép các tổ chức khởi tạo các sự kiện từ thiện
Các đóng góp:
- Đề xuất được mô hình phân tích dữ liệu dựa trên luật kết hợp
44
4.2 Hướng phát triển
• Hoàn thiện các tính năng chia sẻ• Xây dựng hệ thống có khả năng chịu tải cao• Tăng cường tính bảo mật• Hoàn thiện quy trình trích rút và chuẩn hóa
dữ liệu• Áp dụng các mô hình xử lý dữ liệu phân tán• Nghiên cứu luật kết hợp trên môi trường tính
toán song song
45
Tài liệu tham khảo
• Han, J., Kamber, M., Data Mining: Concepts and Techniques, The Morgan
Kaufmann Series in Data Management Systems• Zaki, M.J., (2000), Generating Non-Redundant Association Rules,
Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 34 – 43.
• Website: http://www.msdn.com• Website: http://www.jquery.com• Website: http://www.asp.net/mvc• Website: http://www.facebook.com/developer• Website:http://code.google.com
46
EM XIN CHÂN THÀNH CẢM ƠN!