Phạm vi nghiên cứu: Nghiên cứu trên tập dữ liệu về các ứng dụng được kích hoạt trên TBDĐ sử dụng hệ điều hành Android đã được chuẩn hóa, tức là tên các ứng dụng đều được quy về tên ứng d
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NHỆ
ĐÀO THẾ MẪN
ỨNG DỤNG PHÂN TÍCH MẪU CHUỖI TUẦN TỰ VÀO VIỆC PHÁT HIỆN THÓI QUEN SỬ DỤNG CÁC ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2013
Trang 2
MỤC LỤC LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined
MỤC LỤC 1
DANH MỤC CÁC HÌNH VẼ 2
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
Chương 1 - GIỚI THIỆU 7
Chương 2 - TỔNG QUAN KHAI PHÁ MẪU CHUỖI TUẦN TỰ 11
2.1 Đặc điểm của dữ liệu 11
2.2 Khai phá dữ liệu mẫu chuỗi tuần tự 13
2.2.1 Giới thiệu chung 13
2.2.2 Bài toán Khai phá mẫu chuỗi tuần tự 15
2.2.3 Một số thuật toán khai phá mẫu tuần tự 18
Chương 3 - MÔ HÌNH ĐỀ XUẤT 20
3.1 Mô hình đề xuất tổng thể 20
3.2 Các phương án tách chuỗi 22
3.3 Tách Itemset trong chuỗi 23
3.4 Tính thời gian cho phương án tách chuỗi 25
Chương 4 - THỰC NGHIỆM 30
4.1 Bộ dữ liệu thứ nhất 31
4.2 Bộ dữ liệu thứ 2 35
KẾT LUẬN 39
Phụ lục A – TÍNH KHOẢNG THỜI GIAN PHÂN TÁCH 40
Phụ lục B – MỘT SỐ KẾT QUẢ THỰC NGHIỆM CỤ THỂ 54
B1 Kết quả thực nghiệm bộ dữ liệu thứ 1 54
B2 Kết quả thực nghiệm Bộ dữ liệu thứ 2 61
TÀI LIỆU THAM KHẢO 71
Trang 3DANH MỤC CÁC HÌNH VẼ
Hình 2.1 Dữ liệu thu được từ TBDĐ sử dụng Hệ điều hành Android 12
Hình 2.2 Dữ liệu ứng dụng gốc được lấy ra từ Hình 2.1 13
Hình 2.3 Giải thuật DFS với Kỹ thuật cắt tỉa 19
Hình 3.1 Mô hình tổng quát khai phá dữ liệu 20
Hình 3.2 Mô hình đề xuất tổng thể khai phá thói quen sử dụng phần mềm trên TBDĐ 20
Hình 3.3 Phân tách dữ liệu theo các buổi trong ngày 22
Hình 3.4 Phân tách dữ liệu theo n ngày 22
Hình 3.5 Phân tách dữ liệu theo khoảng thời gian sử dụng 23
Hình 3.6 Phân tách dữ liệu theo thời gian trong cùng một Itemset 24
Hình 3.7 Trường hợp 1, 2 ứng dụng trong cùng một Itemset 24
Hình 3.8 Trường hợp 2, 2 ứng dụng trong cùng một Itemset 25
Hình 4.1 Giao diện của chương trình 30
Hình 4.2 Đồ thị so sánh giữa 2 giải pháp phân tách bộ dữ liệu 1 với minSup ={45% - 65%} 33
Hình 4.3 Đồ thị so sánh giữa 2 giải pháp phân tách bộ dữ liệu 1 với minSup ={35% - 65%} 34
Hình 4.4 Đồ thị so sánh giữa 2 giải pháp phân tách bộ dữ liệu 2 37
Hình 4.5 Đồ thị so sánh giữa 2 giải pháp phân tách bộ dữ liệu 2 38
Trang 4DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT
ID Định danh của thiết bị di động được sử dụng tại nhà cung
cấp mạng viễn thông
Trang 5DANH MỤC CÁC BẢNG
Bảng 2.1 Danh sách khách mua hàng 16
Bảng 2.2 Biểu diễn dữ liệu dạng chuỗi 16
Bảng 2.3 Danh mục thỏa mãn điều kiện minsup = 40% 17
Bảng 3.1 Khoảng cách thời gian giữa các sự kiện 26
Bảng 3.2 chuỗi con chứa <ac> và khoảng thời gian phân tách 27
Bảng 3.3 chuỗi con chứa <df> và khoảng thời gian phân tách 28
Bảng 4.1 Một số mẫu trong Hình B.1 và ý nghĩa phân tách 32
Bảng 4.2 Kết quả thử nghiệm trên bộ dữ liệu 1 phân tách theo hành vi 32
Bảng 4.3 Kết quả thử nghiệm trên bộ dữ liệu 1 phân tách theo ngày 32
Bảng 4.3 Kết quả thử nghiệm trên bộ dữ liệu 2 phân tách theo hành vi 36
Bảng 4.4 Kết quả thử nghiệm trên bộ dữ liệu 2 phân tách theo ngày 36
Trang 6MỞ ĐẦU
Hiện nay, xu hướng công nghệ phục vụ người tiêu dùng trên thế giới đang chuyển sang công nghệ di động thể hiện qua việc rất nhiều hãng tên tuổi trên thế giới đã và đang chuyển sang nghiên cứu, sản xuất đưa ra thị các thiết bị di động (TBDĐ) thông minh như Sony, Philips, Panasonic, HP, Microsoft, Lenovo, LG,… Mỗi một TBDĐ bây giờ đã được tích hợp rất nhiều tính năng như: điện thoại, máy ảnh, máy quay phim, thiết bị multi media, máy tính, điều khiển từ xa, để phục vụ ngày càng nhiều nhu cầu của người dùng như liên lạc, giải trí, khai thác thông tin, xử lý công việc, kinh doanh trực tuyến, điều khiển các thiết bị từ xa,… của khách hàng
Nhu cầu sử dụng các TBDĐ thông minh đang là một xu hướng không biên giới giữa các quốc gia, giữa các tầng lớp dân chúng Chính vì vậy, các hãng sản xuất đã liên tục tung ra các dòng sản phẩm mới nhằm chiếm lĩnh thị trường cũng như cạnh tranh với các đối thủ Từ đó, nhu cầu nghiên cứu về những hành vi, thói quen, xu hướng sử dụng của người dùng trên các TBDĐ đang được đặt ra một cách cấp thiết cho tất cả các hãng sản xuất
Nghiên cứu hành vi, thói quen, mạng xã hội của những người dùng trên TBDĐ đang là một trong những đề tài nóng bỏng trên thế giới hiện nay, nó phục
vụ cho nhiều ngành khác nhau như tâm lý, xã hội, chiến lược kinh doanh của các hãng sản xuất,… Do đó, chúng tôi đã lựa chọn đề tài nghiên cứu thói quen sử dụng phần mềm trên các TBDĐ để làm đề tài khóa luận tốt nghiệp này
Nghiên cứu hành vi, thói quen sử dụng các phần mềm trên TBDĐ sẽ là bước đầu tiên cho việc nghiên cứu các ngành khác trên TBDĐ như tâm lý, mạng
xã hội, vì mỗi phần mềm đó đều thuộc vào một trong các lớp ứng dụng trên thiết bị (như lớp nhạc, lớp phim, lớp game, lớp tài chính, lớp liên lạc, …)
Nghiên cứu thói quen của người sử dụng, thông thường là việc nghiên cứu
để đưa ra được những hành vi mang tính phổ biến, những hành vi mang tính quy luật, những hành vi mang tính phổ biến tuần tự, … trong một khoảng thời gian
và không gian nhất định Ứng với đề tài này, thì việc nghiên cứu để đưa ra được những hành vi mang tính phổ biến tuần tự trong khoảng thời gian nhất định vì không gian ở đây chính là các TBDĐ
Tuy nhiên, để có thể giới hạn khoảng thời gian để đưa ra các hành vi mang tính phổ biến đối theo trình tự với tập dữ liệu dạng chuỗi dài là một vấn đề cần
Trang 7quan tâm giải quyết trước khi đưa các giải thuật vào áp dụng Đó cũng chính là mục tiêu nghiên cứu của Luận văn này
Phạm vi nghiên cứu: Nghiên cứu trên tập dữ liệu về các ứng dụng được kích hoạt trên TBDĐ sử dụng hệ điều hành Android đã được chuẩn hóa, tức là tên các ứng dụng đều được quy về tên ứng dụng gốc ban đầu (nếu tên ứng dụng
do người dùng thay đổi), thời gian bắt đầu chạy ứng dụng, thời gian kết thúc thực thi ứng dụng được quy chuẩn định dạng giống nhau,… để đưa ra được các hành vi mang tính phổ biến có trình tự theo thời gian
Trang 8Chương 1 - GIỚI THIỆU
Ngày nay, điện thoại di động là thiết bị phổ biến và gần như là phương tiện không thể thiếu được của con người Điện thoại giá thành rẻ, đa dạng lại được tích hợp nhiều thiết bị như quay phim, chụp ảnh, nghe nhạc, Bluetooth, thiết bị định vị, trình chiếu, máy tính, … phục vụ được rất nhiều nhu cầu của người dùng như liên lạc, giải trí, kinh doanh (chứng khoán, vàng, và các kim loại quý khác, dầu mỏ, …), điều khiển từ xa,…
Thời gian gần đây, các hãng liên tục nghiên cứu, tung ra thị trường nhiều TBDĐ với mục tiêu là chiếm lĩnh thị trường càng nhiều càng tốt Bên cạnh đó,
đã có rất công ty phần mềm cũng đang chuyển hướng sang nghiên cứu và phát triển các ứng dụng trên TBDĐ
Việc nắm bắt được các thói quen, hành vi của người dùng đang là một trong những vấn đề cấp thiết được đặt ra cho các doanh nghiệp sản xuất hoặc kinh doanh các phần mềm trên TBDĐ Nếu các kết quả nghiên cứu mang tính khả quan thì từ đó người ta có thể đưa ra được các chiến lược kinh doanh hoặc các chiến lược phát triển các phần mềm tiềm năng như phần mềm tích hợp, các phần mềm cần được nâng cấp, cải tiến, …
Dữ liệu log file trên các TBDĐ lưu trữ những hoạt động mà người dùng sử dụng trong TBDĐ như dữ liệu về cuộc gọi, dữ liệu về tin nhắn, dữ liệu về các ứng dụng, dữ liệu về vị trí, dữ liệu về thiết bị, mail, game, kinh doanh, dữ liệu Bluetooth,…
Từ những dữ liệu trên, hiện đang có một số xu hướng nghiên cứu sau: Một số nghiên cứu tìm các hành vi, thói quen dựa trên dữ liệu vị trí và dữ liệu Bluetooth Trong [1-4], các tác giả dựa vào thông tin vị trí của TBDĐ được cung cấp bởi các nhà mạng để nghiên cứu, phân loại các hành vi, thói quen Nhóm tác giả đã phân tích, xây dựng mô hình về các mối quan hệ xã hội và các thói quen hàng ngày của các cá nhân bằng cách sử dụng dữ liệu điện di động của các cá nhân đó dựa trên việc phân loại dữ liệu ID của điện thoại di động vào địa điểm khác nhau và từ đó phân tích các thói quen hành vi của người sử dụng Các nghiên cứu này sử dụng dữ liệu thu được thông qua Bluetooth để phân biệt giữa các ngày trong tuần hoặc cuối tuần Hạn chế của các nghiên cứu trên là thông tin của ID di động chỉ có thể cung cấp các thông tin về vị trí Nó không thể biết về
Trang 9các hoạt động ở mức thấp.Ví dụ, dữ liệu ID di động có thể cho biết người sử dụng tại nhà hoặc tại văn phòng / trường, nhưng nó không thể cho biết các hoạt động bên trong như tham dự các bài giảng hoặc ngồi trong quán ăn tự phục vụ
mà người dùng tham gia
Khắc phục những điểm này đã có một loạt các bài báo đã nghiên cứu hành
vi của các cá nhân thông quan sự kết hợp cả hai loại dữ liệu là dữ liệu từ các nhà cung cấp dịch vụ về TBDĐ và dữ liệu thu được từ các thiết bị Bluetooth được gắn trên TBDĐ Đặc điểm của dữ liệu thu được từ thiết bị Bluetooth cho phép lưu lại các thông tin kết nối trong phạm vi nhỏ và là một định danh cá nhân, một thiết bị cảm biến Việc áp dụng 2 loại dữ liệu này cũng được dùng để nghiên cứu
để tìm ra những hành vi bất thường của các cá nhân nhằm phục vụ việc theo dõi người già hoặc những người có dấu hiệu của bệnh mất trí nhớ như các bài báo [6, 7] Trong [6], tác giả đã trình bày một quy trình cho việc phát hiện các hành
vi khác thường của con người bên trong một ngôi nhà thông minh Tác giả sử dụng cảm biến chuyển động để phát hiện các hoạt động và các mẫu hành vi bất thường của con người dựa trên chuỗi Markov Giới hạn của công việc này là họ chỉ xem xét các hoạt động xảy ra bên trong nhà Để phân tích hành vi và các hoạt động của con người, một số nhà nghiên cứu đã sử dụng các thiết bị khác như, gia tốc, máy ảnh kỹ thuật số và micro Một số kỹ thuật đã được trình bày cho phân tích hành vi của nhiều cá nhân thay vì của một cá nhân đơn lẻ Ví dụ, trong [8] tác giả đề xuất một quy trình xác định các hành vi trong không gian hạn chế Công việc này tập trung vào những chuyển động bên trong một tòa nhà Tương tự như phát hiện hành vi của nhiều cá nhân là gom nhóm các hành động trong cuộc họp được trình bày trong [9] Tuy nhiên, đa số các nghiên cứu trên đã tập trung vào môi trường trong nhà, vì nó được dựa trên các thiết bị cảm biến trong đó Do vậy, có một vài hạn chế như phạm vi ngắn của thiết bị phát hiện sóng, pin nguồn kém, khả năng lưu trữ không được nhiều, do đó là không khả thi đối với môi trường ngoài trời
Mạng Nơ ron [10, 11] được sử dụng để phát hiện và dự đoán sự chuyển động của người dùng dựa trên những ID điện thoại di động và xác suất của người sử dụng tại các địa điểm khác nhau Trong [5] ngoài việc sử dụng xác suất của người dùng là khác nhau ở các địa điểm khác nhau, họ còn sử dụng dữ liệu theo thời gian thực về cả ID di động và dữ liệu Bluetooth Các tác giả xây dựng lên quy trình để phân tích dữ liệu cho việc xác định hành vi Để đạt được mục
Trang 10tiêu đó, thì nhóm tác giả đã xây dựng quy trình để thực hiện các công đoạn sau: Phân lớp dữ liệu theo vị trí để xác định những di chuyển của người dùng, xây dựng ma trận xác suất và dữ liệu di chuyển dùng để huẩn luyện, sử dụng mạng
Nơ ron và cây quyết định (DT) để xác định hành vi bất thường của những người già hoặc những người đang trong giai đoạn đầu của bệnh mất trí nhớ
Một cách tiếp cận khác, các nhà nghiên cứu trong [7] phát hiện các sự kiện bất thường trong cuộc sống của những người già cô đơn bằng cách khai thác các
dữ liệu liên quan thu được của thiết bị cảm biến Họ sử dụng thuật toán tìm luật kết hợp với cụm thời gian để phân tích các hoạt động của người cao tuổi Đầu tiên, họ gom cụm từng hoạt động của người cao tuổi với thời gian và sau đó, dựa vào kỹ thuật luật kết hợp để tìm tất cả các tập hành động thường xuyên
Cao và các cộng sự [23] đề xuất một cách tiếp cận hiệu quả cho khai thác thói quen trên điện thoại di động Họ khai thác mối liên hệ giữa tương tác của người dùng với bối cảnh sử dụng, dữ liệu từ file log của điện thoại di động được
sử dụng để khám phá ra thói quen người dùng Các tác giả đã đưa ra một thuật toán hiệu quả để giải quyết bài toán này Các tác giả đã sử dụng các độ hỗ trợ khác nhau, các độ tin cậy khác nhau để giải quyết thành công bài toán không cân bằng dữ liệu giữa dữ liệu ngữ cảnh và dữ liệu tương tác của người dùng với TBDĐ mà các phương pháp tiếp cận truyền thống về tìm luật kết hợp không giải quyết được
Chúng tôi đã chọn đề tài tìm hiểu thói quen của nhiều người dùng sử dụng các phần mềm trên điện thoại di động trong hệ điều hành Android Trong đề tài này, chúng tôi chỉ tập trung tìm hiểu và phân tích thông tin về các phần mềm được sử dụng trên các TBDĐ Qua việc tìm hiểu dữ liệu này, chúng tôi mong muốn phát hiện ra các thói quen sử dụng các phần mềm, các loại phần mềm trên
hệ điều hành Android Từ đó ta có thể xây dựng các chiến lược để phát triển các phần mềm tiền năng, hoặc các chiến lược khác trong kinh tế như quảng cáo, tiếp thị,…
Cấu trúc của luận văn gồm:
Chương 1 Cung cấp thông tin về bài toán phân tích hành vi của người sử
dụng trên TBDĐ Trong chương này, chúng tôi trình bày các hướng nghiên cứu hành vi người dùng khác nhau từ dữ liệu thu được liên quan TBDĐ Đồng thời,
Trang 11chúng tôi trình bày về hướng nghiên cứu và cách thức giải quyết bài toán của chúng tôi
Chương 2 Trình bày những kiến thức cơ sở để giải quyết bài toán Về dữ
liệu trình bày đặc điểm của dữ liệu thu được từ pha lấy dữ liệu, cách thức lọc dữ liệu làm đầu vào cho thuật toán Về giải thuật, đưa ra mô hình khai phá dữ liệu
và trình bày các giải thuật về khai phá mẫu chuỗi tuần tự phổ biến theo thời gian
và đưa ra lý dọ chọn giải thuật SPAM
Chương 3 Trong chương này chúng tôi trình bày Mô hình khai phá dữ
liệu dể giải quyết được vấn đề của bài toán
Chương 4 Trình bày kết quả thực nghiệm và phân tích kết quả thu được
Đánh giá tính đúng đắn và tính hiệu quả của phương pháp đề xuất so với một số phương pháp khác
Chương 5 Kết luận và hướng nghiên cứu tiếp theo
Trang 12Chương 2 - TỔNG QUAN KHAI PHÁ MẪU CHUỖI TUẦN TỰ
2.1 Đặc điểm của dữ liệu
Dữ liệu thu được từ việc người sử dụng kích hoạt các ứng dụng trên TBDĐ
sử dụng hệ điều hành Android có dạng như Hình 2.1, trong đó có các thông tin như sau :
Start: thời điểm khởi động ứng dụng
Với dữ liệu sử dụng phần mềm có thể là rất dài đối với một TBDĐ nếu được lấy trong một khoảng thời gian tương đối lớn Hơn nữa, số lượng các ứng dụng ngày càng nhiều nên khi chúng tôi tìm hiểu cách khai phá tập luật tuần tự thì kết quả không có khả quan Nhưng khi chúng tôi tìm hiểu các cách để tìm ra các mẫu chuỗi tuần tự thì kết quả khả quan hơn Hình 2.1 sau minh họa dữ liệu lấy được từ pha lấy dữ liệu, ta có thể nhận ra được rằng trong một thời gian rất ngắn, dữ liệu đã ghi nhận rất nhiều ứng dụng được kích hoạt
Khi quan sát dữ liệu trong Hình 2.1 chúng ta nhận thấy, dữ liệu được lưu quá nhiều, một ứng dụng được lưu quá nhiều lần, các ứng dụng con được kích hoạt từ ứng dụng cha cũng nhiều, có nhiều ứng dụng do hệ điều hành kích hoạt,
có nhiều ứng dụng do người dùng kích hoạt Vấn đề đặt ra ở đây là làm thế nào chỉ lấy được các ứng dụng gốc do người dùng kích hoạt Ví dụ, làm thế nào để lấy được ứng dụng gốc như Trình duyệt web, Email, GoogleTalk, … mà không phải các ứng dụng do Hệ thống sinh ra, hoặc ra các ứng dụng gốc đó gọi các ứng dụng khác của hệ thống trong quá trình thực thi
Để làm được việc đó, chúng tôi đã lọc ra các ứng dụng thuộc hệ thống như SystemApplication, Unknow, System, và toàn bộ các ứng dụng con của nó được kích hoạt qua mã ID và PID
Trang 13AppName Stop PID IMEI PPID Start
Package Access
Package Access
Hình 2.1 Dữ liệu thu được từ TBDĐ sử dụng Hệ điều hành Android
Để có dữ liệu có dạng chuỗi tuần tự như sau, Si = {app1, app2, , appn}; Trong đó:
Trang 14j start app start app app
Với tstartapp i là thời điểm bắt đầu kích hoạt ứng dụng app i
Đặc điểm của dữ liệu: Si thường có số lớn các ứng dụng (chuỗi dài - long sequence)
Như vậy dữ liệu cuối cùng có dạng: imei, appName, start, stop (imei = si)
Email Nov 27 22:31:57 2012 247 0 244 Nov 27 22:30:29 2012 Launcher Nov 27 22:31:57 2012 132 0 118 Nov 27 22:30:22 2012 LogInfo Nov 27 22:31:06 2012 339 0 289 Nov 27 22:31:05 2012 Music Nov 27 22:31:57 2012 180 0 179 Nov 27 22:30:24 2012 Search Nov 27 22:31:57 2012 187 0 33 Nov 27 22:30:24 2012 Clock Nov 28 19:14:24 2012 235 0 232 Nov 28 19:13:54 2012 Maps Nov 28 19:14:24 2012 357 0 33 Nov 28 19:14:09 2012 Music Nov 28 19:14:24 2012 256 0 252 Nov 28 19:13:58 2012 Package Access Helper Nov 28 19:14:24 2012 241 0 240 Nov 28 19:13:56 2012 Pico TTS Nov 28 19:14:24 2012 374 0 372 Nov 28 19:14:10 2012 Search Nov 28 19:14:24 2012 274 0 268 Nov 28 19:14:01 2012 Contacts Storage Jan 02 13:57:11 2012 354 A000002470B55F 272 Jan 02 13:55:11 2012 Contract Killer Jan 02 13:57:11 2012 24031 A000002470B55F 24022 Jan 02 13:55:30 2012 Downloads Jan 02 13:57:11 2012 207 A000002470B55F 203 Jan 02 13:55:04 2012 LogInfo Jan 02 13:55:38 2012 24476 A000002470B55F 24429 Jan 02 13:55:37 2012 Market Jan 02 13:57:11 2012 18214 A000002470B55F 18208 Jan 02 13:55:16 2012 Network Location Jan 02 13:57:11 2012 857 A000002470B55F 222 Jan 02 13:55:10 2012 Terminal Emulator Jan 02 13:57:11 2012 25545 A000002470B55F 25543 Jan 02 13:55:35 2012
Hình 2.2 Dữ liệu ứng dụng gốc được lấy ra từ Hình 2.1
Để có dữ liệu dạng trên thì chúng tôi đã có một pha riêng để lọc dữ liệu, pha này phải làm các công việc sau: xác định các ứng dụng gốc(1), loại bỏ các ứng dụng con được kích hoạt từ ứng dụng gốc
2.2 Khai phá dữ liệu mẫu chuỗi tuần tự
2.2.1 Giới thiệu chung
Như phần 2.1 đã trình bày, vì đặc điểm của dữ liệu là dạng chuỗi dài theo thời gian và có rất nhiều ứng dụng khác nhau được đưa vào sử dụng nên khi chúng tôi thử nghiệm trên các giải thuật tìm luật tuần tự hành về vi sử dụng của nhiều người thì kết quả không khả quan Do đó, chúng tôi đã đi tìm hiểu các mẫu chuỗi tuần tự về hành vi sử dụng của nhiều người thì có vẻ khả quan hơn Chính vì vậy, trong phần này chúng tôi sẽ giới thiệu tổng quan về các giải thuật
(1)
Ứng dụng gốc là ứng dụng được kích hoạt trực tiếp từ người dùng từ desktop, hoặc từ các nhóm ứng dụng trên
hệ điều hành
Trang 15khai phá mẫu chuỗi tuần tự và lý do chúng tôi chọn giải thuật SPAM cho bài toán này
Dữ liệu dạng chuỗi các giá trị hoặc các sự kiện được kết hợp với thuộc tính thời gian được gọi là dữ liệu chuỗi thời gian time-series [15] gọi tắt là dữ liệu time-series Một số dữ liệu time-series như: dữ liệu giao dịch khách hàng trong các siêu thị, dữ liệu về tài chính – chứng khoán, dữ liệu về y học, dữ liệu về khoa học, dữ liệu về thời tiết Đã có nhiều giải thuật được thiết kế cho dữ liệu time-series [15] Tuy nhiên, chúng ta có thể gom lại có 4 dạng mẫu (pattern) mà chúng ta khai phá từ dữ liệu time-series sau:
- Phân tích xu hướng: phân tích xu hướng là tìm ra các mẫu phát triển của một số thuộc tính theo thời gian, chúng có thể là sự vận động mang tính lâu dài, phát triển quay vòng, vận động có nguyên nhân, các vận động ngẫu nhiên Ví dụ như giá vàng theo thời gian, ta có thể mô hình nó dạng Y=F(t) và có thể biểu diễn trên đồ thị Dựa trên hàm đó ta có thể tìm ra xu hướng là cứ Thứ 2 hàng tuần thì giá vàng tăng 2%, cứ Thứ 6 hàng tuần thì giá vàng tụt xuống 3% Với phương pháp này được sử dụng nhiều trong phân tích xu hướng chứng khoán
- Tìm chuỗi tuần tự: tìm kiếm chuỗi tương tự là cố gắng để tìm các chuỗi
có sự khác biệt đôi chút Tìm kiếm chuỗi tương tự là một quá trình đối sánh mờ trong phạm vi sai số nhất định trong một ngưỡng nhất định Đối sánh chuỗi có thể được phân lớp như: đối sánh chuỗi con và đối sánh toàn bộ chuỗi Giả sử chúng ta chuyển đổi dữ liệu của giá cổ phiếu vào đường cong, những đường cong bao gồm nhiều hình dạng khác nhau như: lên, lên sắc nét, giảm, lao dốc Ví dụ về sự giống nhau cơ bản dựa trên đường cong và hình dạng của một loại cổ phiếu để tìm cổ phiếu khác có các đường cong và hình dạng tương tự Có nhiều loại khác nhau của các phép đo tương tự Một trong đo lường cổ điển tương tự là khoảng cách Euclide
- Mẫu tuần tự: mô hình khai phá dữ liệu mẫu tuần tự để tìm ra những mối quan hệ giữa các lần xuất hiện của các sự kiện liên tiếp, để tìm ra mẫu tuần tự của các sự kiện theo trình tự Chúng ta có thể tìm thấy các mẫu tuần tự của các sự kiê ̣n cụ thể, chúng ta cũng có thể tìm thấy các mẫu tuần tự qua các sự kiê ̣n khác nhau Việc phát hiện các mẫu tuần tự được
Trang 16sử dụng rộng rãi trong việc phân tích trình tự DNA Một ví dụ về mẫu tuần tự là mỗi khi chứng khoán của Microsoft giảm xuống 5%, cổ phiếu IBM cũng sẽ giảm ít nhất 4% trong vòng ba ngày
- Mẫu chu kỳ: mẫu chu kỳ là những mẫu có chu kỳ trong cơ sở dữ liệu time-series, chu kỳ có thể là hàng ngày, hàng tuần, hàng tháng, theo mùa hoặc hàng năm
Rõ ràng, khai phá mẫu chu kỳ có thể được xem như là mô hình khai phá dữ liệu tuần tự bằng cách đưa vào các chuỗi chu kỳ như là một tập hợp các chuỗi tuần tự Trong cơ sở dữ liệu giao dịch của khách hàng, mỗi chuỗi là một tập các hàng mà khách hàng đã mua
Trong thời gian qua, đã có nhiều lĩnh vực quan tâm nghiên cứu về dữ liệu time-series Tuy nhiên, cơ sở dữ liệu tuần tự bao gồm các chuỗi các sự kiện sắp xếp có hoặc không thuộc tính thời gian Cơ sở dữ liệu tuần tự là một trường hợp đặc biệt của cơ sở dữ liệu time-series, kết quả nghiên cứu nhiều nhất trong khai phá mẫu tuần tự tập trung vào hai vấn đề chính Vấn đề đầu tiên là khai phá mẫu tuần tự, nhằm tìm kiếm các chuỗi tuần tự thường xuyên xảy ra để mô tả dữ liệu hoặc dự đoán các dữ liệu tương lai Vấn đề thứ hai là khai phá mẫu chu kỳ, có thể được xem như là khai phá mẫu tuần tự Trong luận văn này chúng tôi đi vào phần tiền xử lý dữ liệu cho bài toán khai phá mẫu tuần tự - chu kỳ để phát hiện thói quen của con người
2.2.2 Bài toán Khai phá mẫu chuỗi tuần tự
Để cho dễ hình dung về bài toán, ta có ví dụ 2.1 sau: Trong khi tiến hành
truy xuất dữ liệu của một cửa hàng bán sách người ta nhận thấy có trình tự mua sách như sau: 80% khách hàng mua sách Hệ quản trị cơ sở dữ liệu sau đó họ mua cuốn sách Kho dữ liệu và sau đó họ mua cuốn Hệ thống thông tin web trong một khoảng thời gian
Khai phá chuỗi tuần tự (Sequential pattern mining) được giới thiệu lần đầu tiên bởi Agrawal và Srikant năm 1995 [13] Trong ví dụ trên thì tất cả các sách không phải được mua tại cùng một thời điểm, điều quan trọng là thứ tự mua sách
Mẫu chuỗi tuần tự (Sequential pattern) đi vào tìm hiểu mối quan hệ giữa các giao dịch trong khi luật kết hợp đi vào tìm hiểu các nội dung bên trong các giao dịch
Trang 17Gọi D là cơ sở dữ liệu của các giao dịch khách hàng, I {i1,i2, ,i n} là tập n thuộc tính phân biệt và được gọi là các Item, giao dịch T = {Mã_KháchHàng,
ThờiGian_GiaoDịch, Mua_MãHàng}, s i là một tập các mục được lấy ra từ I, S là một chuỗi các tập item (itemset) theo trình tự <s 1 , s 2 , ., s n> Không có một khách hàng nào có nhiều hơn một giao dịch trong cùng một thời gian ThờiGian-GiaoDịch Ví dụ như bảng dưới đây
Trước khi tiến hành khai phá mẫu chuỗi tuần tự cho tập dữ liệu giao dịch của khách hàng, người ta thông thường phải tổ chức lại dữ liệu từ Bảng 2.1 trên thành dữ liệu dạng chuỗi như Bảng 2.2
Bảng 2.2 Biểu diễn dữ liệu dạng chuỗi
Trang 18Khi tiến hành khai phá mẫu chuỗi tuần tự từ dữ liệu tại Bảng 2.2 với độ hỗ trợ tối thiểu là 40% ta thu được kết quả và ánh xạ kết quả đó sang các giá trị tự
nhiên từ 1 đến 5 cho dễ quản lý được trình bày tại Bảng 2.3 dưới đây
Bảng 2.3 Danh mục thỏa mãn điều kiện minsup = 40%
Sequential pattern là một chuỗi các itemset xuất hiện phổ biến có trình tự,
tất cả các item trong cùng một itemset được giả sử là chúng có cùng tại thời điểm giao dịch hoặc chúng có trong cùng một khoảng thời gian giao dịch (time gap) Thông thường tất cả các giao dịch của một khách hàng được gắn kết với nhau theo trình tự thời gian và được xem là một chuỗi
Tính Chứa: một chuỗi a <a1,a2,…,an> được gọi là được chứa trong một
chuỗi b <b1,b2,…,bm> nếu i1 < i 2 <… < in và ta có a1b i1,a2 b i2, a n b in Ví dụ
<(3)(6,7,9)(7,9)> được chứa trong <(1)(3)(5,6,7,9)(8)(2,7,9)> vì
) 9 , 7 , 2 ( ) 9 , 7 ( ), 9 , 7 , 6 , 5 ( ) 9 ,
Độ hỗ trợ ( Support):
TN
C s
Trong đó:
- Support(s): là độ hỗ trợ cho chuỗi s
Trang 19- C s : là số khách hàng có giao dịch chứa chuỗi s
- TN: là số khách hàng có trong cơ sở dữ liệu
Khai phá chuỗi tuần tự (Sequential pattern mining): là tiến trình trích
xuất ra một số các mẫu tuần tự mà có độ hỗ trợ vượt qua ngưỡng tối thiểu Vì số lượng chuỗi là rất lớn vì thế người ta thường đưa vào giá trị hỗ trợ tối thiểu để lọc kết quả Những mẫu tuần tự có độ hỗ trợ vượt qua ngưỡng hỗ trợ tối thiểu là những mẫu mong muốn và có giá trị Tuy nhiên, có một số mẫu tuần tự không vượt qua ngưỡng hỗ trợ cực tiểu nhưng vẫn có giá trị trong một số bài toán cụ thể, để giải quyết việc này [12] đã đưa ra một khái niệm là ma trận SUPRISE để
đo giá trị của các chuỗi
2.2.3 Một số thuật toán khai phá mẫu tuần tự
Hầu hết các giải thuật ban đầu đều dựa trên tính chất Apriori trong khai phá luật kết hợp như: AprioriAll, AprioriSome, DynamicSome trong [15], GSP [16] và SPADE [24] Sau này, một loạt các dữ liệu dựa trên giải thuật được đề xuất, như: FreeSpan [17] và PrefixSpan [18] SPADE [21] là một giải thuật dựa trên lưới, MEMISP [20] dùng cách tiếp cận đánh chỉ mục của bộ nhớ , trong đó SPIRIT [19] tập trung vào tích hợp các ràng buộc qua các biểu thức thông thường
Các giải thuật dựa trên Apriori, bước đầu tiên là tìm tất các items phổ biến,
thông qua các vòng lặp thì các chuỗi ứng viên có chiều dài l (l-sequence) được tạo ra từ các chuỗi có chiều dài l-1 ( (l-1)-sequence ) Sau đó, tính toán độ hỗ trợ
của các ứng viên để giữ lại các ứng viên đạt độ hỗ trợ tối thiểu Các giải thuật dựa trên Apriori mất nhiều chi phí để xử lý một lượng lớn ứng viên được tạo ra
và cả chi phí cho việc duyệt CSDL nhiều lần Giải thuật PrefixSpan được đề xuất tại [18] phát triển trên nền của giải thuật FreeSpan[17] Giải thuật PrefixSpan được thiết kế trên ý tưởng chia để trị, các phép duyệt CSDL được thực hiện qua mỗi vòng lặp trên các tiền tố giống nhau Thông qua các phép duyệt CSDL của các tiền tố để xây dựng các mẫu chuỗi tuần tự thì sẽ phát hiện
ra toàn bộ các mẫu chuỗi tuần tự trong CSDL Tuy nhiên, đối với các bài toán có CSDL lớn thì việc thực hiện các vòng lặp duyệt CSDL lớn là không hiệu quả SPAM [22] sử dụng kỹ thuật biểu diễn bitmap cho mỗi bản ghi trong mỗi chuỗi dữ liệu Sau đó, giải thuật áp dụng chiến lược tìm kiếm theo chiều sâu để sinh các ứng viên Qua các phép toán trên bit để tính toán độ hỗ trợ của các ứng
Trang 20viên một cách nhanh chóng Hơn nữa, với kỹ thuật cắt tỉa hiệu quả đã làm giảm
số lượng ứng viên được sinh ra Qua các kết quả thực nghiệm người ta thấy giải thuật SPAM hiệu quả cao hơn so với không chỉ giải thuật SPADE mà còn cả giải thuật PrefixSpan
Chính vì lý do trên, nên trong khóa luận này chúng tôi chọn giải thuật SPAM làm thuật toán cho việc nghiên cứu và đề xuất phương án chia tách các chuỗi dài ban đầu (primary sequences) thành các chuỗi ngắn hơn (short sequences) một cách tối ưu
Hình 2.3 Giải thuật DFS với Kỹ thuật cắt tỉa
(6) For each (iS temp)
(7) DFS-Pruning((s1,s2, ,s k, {i} ), S temp, all elements inS temp greater then i)
(8) For each (iI n)
(9) if ((s1,s2, ,s k {i}) is frequent)
(10) I temp I temp{i}
(11) For each (iI temp)
(12) DFS-Pruning((s1,s2, ,s k {i} ), S temp, all elements inI temp greater then i)
Trang 21Chương 3 - MÔ HÌNH ĐỀ XUẤT
Hình 3.1 Mô hình tổng quát khai phá dữ liệu
Do việc phải tìm ra các thói quen sử dụng phần mềm trong một khoảng thời gian ngắn nên đòi hỏi phải qua một bước phân tách chuỗi dữ liệu dài ban đầu thành các chuỗi dữ liệu ngắn hơn theo thời gian Do đó, chúng tôi đề xuất
mô hình khai phá thói quen sử dụng phần mềm như Hình vẽ 3.2
Hình 3.2 Mô hình đề xuất tổng thể khai phá thói quen sử dụng phần mềm trên
Trang 22Mô hình đề xuất trên gồm có các modul chính sau: Thu thập dữ liệu; lưu trữ dữ liệu; xử lý dữ liệu; khai phá dữ liệu; phân tích, so sánh kết quả Chúng tôi
sẽ lần lượt giới thiệu các modul như sau:
- Thu thập dữ liệu: chức năng của modul này là tập hợp dữ liệu sử dụng các phần mềm từ các file log của các TBDĐ như máy tính bảng, điện thoại thông minh, … Thành một file dữ liệu được chuẩn hóa từ trước theo định dạng như được mô tả tại Hình 2.1
- Modul lưu trữ dữ liệu: dữ liệu từ file trong modul thứ nhất sẽ được đưa vào lưu trữ trong CSDL MySQL sau đó áp dụng các câu lệnh SQL để thanh lọc các dữ liệu không cần thiết như dữ liệu về các luồng, chương trình con, chương trình không phải người dùng kích hoạt,… để chỉ giữ lại trong CSLD tập các ứng dụng gốc theo định dạng như Hình 2.2
- Module xử lý dữ liệu:
o Đọc trong CSDL ra và tiến hành xây dựng nên các chuỗi tuần tự sử dụng phần mềm cho từng thiết bị Như vậy, mỗi một TBDĐ sẽ có một chuỗi tuần tự sử dụng các phần mềm bao gồm các thuộc tính định danh thiết bị, tên ứng dụng, thời điểm kích hoạt, thời điểm kết thúc như được mô tả tại Hình 2.2
o Phân tách chuỗi dữ liệu dài ban đầu thành các chuỗi dữ liệu ngắn hơn để làm dữ liệu đầu vào cho module khai phá Để thực hiện được phần này, chúng tôi đề ra một số phương pháp phân tách dữ liệu được trình bày tại mục 3.2
- Module khai phá dữ liệu: Từ tập dữ liệu thu được từ modul trên, chúng tôi
sử dụng một số giải thuật khai phá và đánh giá về hiệu quả của các giải thuật đó, qua đó chúng tôi nhận thấy giải thuật SPAM là hiệu quả hơn cả
so với các giải thuật SPADE, PrefixSpan về tốc độ khai phá và về độ lớn của dữ liệu Sau khi có kết quả của một số lần thử nghiệm trên phương án phân tách thứ nhất, chúng tôi lại quay lại modul phân tách dữ liệu để thực thi phương pháp phân tách dữ liệu thứ 2 và tiếp tục tiến hành khai phá cho một số lần thử nghiệm với tham số khác nhau
- Modul phân tích kết quả: sau khi có kết quả của các phương án phân tách, chúng tôi tiến hành phân tích, so sánh và đưa ra một số kết luận
Trang 233.2 Các phương án tách chuỗi
Như đã đề cập trong chương 1, việc nghiên cứu thói quen sử dụng phần mềm trên TBDĐ qua việc xác định các mẫu chuỗi tuần tự trong một phạm vi nhỏ về thời gian Để có được những phạm vi nhỏ về thời gian, chúng tôi thử nghiệm 3 phương án phân tách dữ liệu như sau:
- Phương án 1 Tách theo khoảng thời gian trong ngày:
o Buổi sáng ví dụ từ 7h00 – 12h00;
o Buổi chiều ví dụ từ 12h01 đến 19h00;
o Buổi tối từ ví dụ 19h01 đến 06h59 ngày hôm sau
Hình 3.3 Phân tách dữ liệu theo các buổi trong ngày
- Phương án 2 Tách theo ngày: mỗi ngày sẽ là 1 chuỗi hoặc n ngày là một
chuỗi (n là số nguyên dương 1,2,3, )
Hình 3.4 Phân tách dữ liệu theo n ngày
- Phương án 3 Tách theo hành vi sử dụng: mỗi một chuỗi sử dụng phần
mềm cách nhau 1 khoảng thời gian > t (ví dụ: t=8h đủ cho 1 người bình thường ngủ) tức là 1 ứng dụng cuối cùng (app n ) trong chuỗi thứ i (Sequencei ) có thời điểm kết thú thực thi stopTimei,appncách ứng dụng đầu tiên (app1) của Sequencei+1 kế tiếp có thời điểm bắt đầu kích hoạt startTimei1,app1 một khoảng
thời gian tối thiểu là t:
Trang 24Hình 3.5 Phân tách dữ liệu theo khoảng thời gian sử dụng
Nhận xét: so sánh 2 phương án tách 1 và phương án tách 2 thì ta nhận thấy:
- Bất kỳ một chuỗi con nào của phương án tách 1 cũng là nằm trong 1 chuỗi con của phương án tách 2
- Số lượng chuỗi con của phương án tách 1 sẽ lớ n hơn n*3 số chuỗi con
3.3 Tách Itemset trong chuỗi
Sau khi xác định được các chuỗi, việc tiếp theo chúng ta cần phải giải quyết là xác định các itemset trong các chuỗi đó Để xác định được item trong
itemset thì chúng ta phải xác định được một ngưỡng thời gian (t ngưỡng) Khi 02
ứng dụng app j và app j+1 mà có thời gian kích hoạt startTime app_j+1 của app j+1 và
thời gian kết thúc timeStop app_j của app j cách nhau khoảng thời gian ∆t, tùy thuộc vào giá trị của ∆t so với t ngưỡng mà ta xác định được 1 trong 2 trường hợp:
- Cả 2 item app j và app j+1 cùng trong một itemset
- app j và app j+1 thuộc 2 itemset khác nhau
Một số trường hợp phân tách Itemset sau:
* 2 ứng dụng (item) thuộc 2 itemset khác nhau
j 1
1
app 1, istartTime
Trang 25Trong đó startTimei,appj1, stopTimei,appj tương ứng là thời điểm kích hoạt ứng
dụng thứ j+1 và thời điểm kết thúc ứng ựng thứ j trong sequence i
Hình 3.6 Phân tách dữ liệu theo thời gian trong cùng một Itemset
Đối với cách phân tách trên như Hình 3.6 thì chuỗi thứ i có 2 itemset là
itemsetk và itemsetk+1 Mỗi một itemset chỉ có 01 phần tử (itemsetk chỉ có appi, itemsetk+1 có appj+1)
* 2 ứng dụng (item) thuộc cùng 1 itemset
Dạng 1 ∆t>0
j 1
time
1 app
startTime
Itemsetk
j
app i,
stopTime
Trang 26Hình 3.8 Trường hợp 2, 2 ứng dụng trong cùng một Itemset
Chú ý: Trong cùng một Itemset không thể có 2 item giống nhau, cho nên khi
xuất hiện 2 item giống nhau thì ta có thể xóa bỏ 1 item thừa đó
Trong cùng 1 Itemset thì thứ tự xuất hiện các item là không quan trọng do
đó ta sẽ sắp xếp các item trong cùng 1 Itemset theo thứ tự ABC
3.4 Tính thời gian cho phương án tách chuỗi
Chọn khoảng thời gian trong phương án 3 (trong mục 3.2) như thế nào để
có thể cho việc phân tách đạt kết quả tối ưu Để giải quyết được bài toán này,
chúng tôi thử xác định một khoảng [t ngưỡng_min … t ngưỡng_max] để phân tách một chuỗi dài thành các chuỗi ngắn, sau đó đi tìm khoảng thời gian phù hợp cho việc
phân tách Ví dụ, xác định t ngưỡng_min = 8h, t ngưỡng_max = 48h, ứng với t ngưỡng_max đó
sẽ phân tách được n 1 chuỗi con đưa vào khai phá ra tập kết quả sp 1 Bước tiếp
theo là t ngưỡng = t ngưỡng_max – delta (delta > 0 được gọi là bước giảm) và tính số chuỗi con được phân tách n 2 chuỗi con đưa vào khai phá ra tập kết quả sp 2 sau
đó so sánh sp 1 với sp 2 để lấy kết quả tốt hơn, vòng lặp được tiến hành cho đến
khi có kết quả tốt nhất hoặc khi t ngưỡng <= t ngưỡng_min Với phương án phân tách này sẽ không hiệu quả vì: nếu xác định delta quá nhỏ (1s) thì mất rất nhiều vòng lặp Nếu delta lớn thì có thể bỏ sót kết quả tốt nhất (tức là giá trị thời gian nhỏ nhất nhưng khai phá ra tập thói quen nhiều nhất) Tuy nhiên, chúng ta đều biết
rằng nếu chọn giá trị t ngưỡng = t ngưỡng_max thì ta sẽ có kết quả khai phá ra tập thói
quen lớn nhất nhưng giá trị t ngưỡng không phải là nhỏ nhất Ví dụ, giả sử tại giá trị
t ngưỡng = t ngưỡng_max = 23h thì ta thu được tập thói quen sử dụng 2 phần mềm trở
lên là 50 thỏa mãn độ hỗ trợ tối thiểu, người ta tìm thấy rằng giá trị t ngưỡng từ 20h đến 23h đều cho kết quả khi khai phá tập dữ liệu phân tách như trên thì rõ ràng
tại kết quả t ngương =20h sẽ cho kết quả tốt nhất
startTime
app x
Trang 27Trong đa số các trường hợp t ngưỡng < t ngưỡng_max thì số lượng các thói quen
được phát hiện đều nằm trong trường hợp t ngưỡng_max và số lượng các chuỗi con
được sinh ra (trường hợp t ngưỡng) lớn hơn số lượng chuỗi con được sinh ra ở
trường hợp t ngưỡng_max Do đó, nếu áp dụng giá trị [t ngưỡng_min … t ngưỡng_max] thì ta
chỉ cần lấy trường hợp t ngưỡng_max để phân tách dữ liệu
Để xác định khoảng thời gian cho việc phân tách chuỗi gốc ban đầu thành nhiều chuỗi con chứa mẫu tuần tự nhất Chúng tôi đề xuất giải pháp gồm hai bước như sau:
- Khai phá toàn bộ tập chuỗi ban đầu chưa phân tách để tìm ra tập mẫu chuỗi tuần tự thoản mãn độ hỗ trợ tối thiểu và có độ dài lớn hơn 1
- Từ các mẫu chuỗi tuần tự kết quả đó, ta sẽ tiến hành tính ngược lại thời gian để cắt các chỗi dài thành các tập các chuỗi ngắn
Để cho rõ hơn về giải pháp trên, giả sử chúng ta có tập chuỗi ban đầu chưa
phân tách là PS 1 , PS 2 , …, PS n Qua việc khai phá tập dữ liệu trên, ta thu được tập
mẫu chuỗi tuần tự thỏa mãn độ hỗ trợ tối thiểu có độ dài ≥ 2 như sau: FSP 1 , FSP 2 , …, FSP k
Với mỗi FSP i ta tính khoảng thời gian để phân tách tập chuỗi gốc PS 1 , PS 2 ,
…, PS n được nhiều chuỗi con chứa FSP i nhất Chi tiết việc tính các khoảng thời gian xin tham khảo Phục lục A của Luận văn này
Để minh họa cho cách tiếp cận trên, chúng tôi thực hiện trên ví dụ 3.1 dưới đây
Ví dụ 3.1 Giả sử chúng ta có 4 chuỗi dài và các khoảng cách thời gian (các đơn vị thời gian như nhau) tương ứng như sau:
Trang 28Nếu khai phá tập chuỗi dữ liệu trên với độ hỗ trợ tối thiếu là 0.75 thì ta có
2 tập mẫu tuần tự FSP 1 = <ac>, FSP 2 = <df>
Đối với FSP 1 ta sẽ có các tập chuỗi con tối thiểu phủ <ac> hoặc nằm giữa
2 chuỗi con tối thiểu phủ <ac> như sau:
SS1={<abc> PS_1 , <a3c> PS_2 , <ac> PS_4 , <aoc> PS_4 , <ca> PS_4 } với <ca> là không phủ <ac> nhưng nằm giữa 2 chuỗi con tối thiểu phủ <ac>
Từ các chuỗi con tối thiểu phủ <ac> đó, ta tính các khoảng thời gian để phân tách chuỗi ban đầu ra nhiều chuỗi con chứa <ac> nhất như sau:
Bảng 3.2 chuỗi con chứa <ac> và khoảng thời gian phân tách
Chuỗi gốc Chuỗi con Max slotTime Thời gian
phân tách
Số lượng chuỗi chứa
<ac>
9abcdef <abc> (time ab =12, time cb =9) = 12 t > 12 1
12a3cjdef <a3c> (time a3 =8, time 3c =90) = 90 t >90 1
0acaoc <ac> (time ac )=12 12 < t <= 44 1
<aoc> (time ao =23, time oc =44) =
44
44 < t <= 80 2
Như vậy, với thời gian phân tách 44 < t ≤ 80 sẽ phân tách được 3 chuỗi con
chứa <ac> Hoặc t > 90 sẽ có 3 chuỗi chứa <ac>
Đối với SP 2 ta sẽ có các tập chuỗi con phủ <df> hoặc nằm giữa 2 chuỗi con phủ <df> như Bảng 3.3 sau:
Trang 29Bảng 3.3 chuỗi con chứa <df> và khoảng thời gian phân tách
Thời gian phân tách
Số lượng chuỗi chứa
<df>
9abcdef <def> (time de =40, time ef =35) = 40 40 < t 1
12a3cjdef <def> (time de =39, time ef =20) = 39 39 < t 1
hỗ trợ tối thiểu? vấn đề cuối cùng là giải pháp đó có tối ưu không ?
Chúng ta đều biết rằng mỗi một người sử dụng đều dùng một số lượng phần mềm nhất định trên TBDĐ và hành vi đó thường được lặp đi lặp lại nhiều lần trong một khoảng thời gian vài ngày, vài tuần, thậm chí cả vài tháng Tuy nhiên, trong xã hội đa dạng người dùng, thì mỗi người lại sử dụng các phần mềm có thể không giống nhau, nếu sử dụng các phần mềm giống nhau thì có thể
ở những thời điểm khác nhau nên xuất phát từ yêu cầu của bài toán nên chúng tôi muốn đưa ra được các thói quen mang tính phổ biến (qua việc khai phá toàn
bộ chuỗi ban đầu) và có sự ràng buộc về thời gian (slotTime dùng để phân tách chuỗi không quá lớn) – đó chính là phương án đề xuất của chúng tôi
Việc tìm các mẫu chuỗi tuần tự vượt qua độ hỗ trợ tối thiểu vì:
- Chúng tôi dự đoán rằng nếu mẫu tuần tự A có độ hỗ trợ lớn hơn mẫu chuỗi tuần tự B thì việc phân tách chuỗi dài ban đầu thành các chuỗi con ngắn hơn theo thời gian có sự định hướng theo mẫu chuỗi tuần tự A đó sẽ được nhiều hơn các mẫu tuần tự B qua bước phân tách trên Vì, số lượng các chuỗi gốc có chứa mẫu tuần tự A lớn hơn số lượng chuỗi gốc có chứa mẫu chuỗi tuần tự B trong tập dữ liệu ban đầu
Trang 30- Do việc tìm ra số lượng mẫu chuỗi tuần tự của việc khai phá dữ liệu ban đầu là ít nên giảm số lượng tính toán thời gian phân tách vì vậy sẽ làm giảm thời gian cho việc tính toán cho thuật toán
Do vậy, khi dự đoán của chúng tôi là chính xác thì công việc tính thời gian như trên sẽ là tối ưu vì ta chỉ việc tính thời gian dựa trên một số lượng mẫu nhất định và những mẫu đó có xác suất phân tách được nhiều mẫu con hơn
Trang 31Chương 4 - THỰC NGHIỆM
Trong khóa luận này, chúng tôi sử dụng Sequential Pattern Mining Framework của các tác giả Philippe Fournier-Viger [14] Đây là công cụ mã nguồn mở được viết bằng java, công cụ đã cài đặt 51 thuật toán cho các mục sau:
sequential pattern mining,
association rule mining,
frequent itemset mining,
sequential rule mining,
clustering
Trong phần thực nghiệm này, chúng tôi tạo 2 bộ dữ liệu và lần lượt đưa vào thử nghiệm để so sánh giữa 2 phương pháp phân tách theo hành vi và
phương pháp phân tách theo thời gian mà cụ thể là n ngày Giao diện của
chương trình như Hình 4.1 sau:
Hình 4.1 Giao diện của chương trình
Trong việc so sánh giữa các phương pháp, chúng tôi giữ cố định một giá trị khoảng thời gian phân tách các ứng dụng trong cùng một phần tử (Element),
trên giao diện Hình 4.1 là ô Slot time cut off Element với giá trị mặc định là 60s Tức là ứng dụng thứ i và ứng dụng thứ i+1 được coi là sử dụng đồng thời nếu: startTime của ứng dụng thứ i+1 - stopTime của ứng dụng thứ i ≤ 60s Nếu khoảng cách trên > 60s thì 2 ứng dụng thứ i và thứ i+1 là 2 phần tử riêng biệt
trong chuỗi
Trang 32So sánh giữa các phương pháp phân tách là việc so sánh dựa trên kết quả khai phá dữ liệu của phương pháp khi cùng sử dụng giải thuật khai phá Kết quả của giải pháp nào chỉ ra được nhiều mẫu chuỗi tuần tự, đặc biệt là các mẫu chuỗi tuần tự có số lượng phần tử ≥ 2 thì giải pháp đó là tốt hơn Vì giải pháp chỉ ra được nhiều mẫu chuỗi tuần tự hơn chính là giải pháp giúp chúng ta phát hiện ra các thói quen sử dụng phần mềm tốt hơn
Trong ô lựa chọn Choice mining type có loại khai phá dữ liệu sau:
- Mining to get SlotTime dùng để khai phá tập dữ liệu gốc ra các mẫu chuỗi
tuần tự thỏa mãn điều kiện độ hỗ trợ tối thiểu minSup, sau đó từ các mẫu chuỗi tuần tự có số lượng phần tử lớn hơn hoặc bằng 2 ta sẽ tính ngược lại các khoảng thời gian tương ứng cho việc phân tách toàn bộ tập dữ liệu gốc thành tập dữ liệu con sao cho sinh ra được nhiều chuỗi con chứa mẫu chuỗi tuần tự nhất
- Mining all primary sequences: khai phá toàn bộ dữ liệu gốc và đưa ra tập
mẫu chuỗi tuần tự thỏa mãn điều kiện minSup
- MSS in N days (Mining Short Sequences in N Days): Khai phá dữ liệu cho tập dữ liệu mới được phân tách từ tập dữ liệu gốc ban đầy theo N ngày
- Mining all short sequences: Khai phá tập dữ liệu mới được phân tách từ tập dữ liệu gốc theo khoảng cách thời gian tại ô slotTime cut off sequences trên
Hình 4.1
4.1 Bộ dữ liệu thứ nhất
Bộ dữ liệu này thu được từ 200 thiết bị, mỗi thiết bị kích hoạt từ 1 đến 3 lần ứng dụng trong một ngày từ tập 98 ứng dụng Thời gian sử dụng là 50 ngày Chúng tôi thu được 39.817 hàng dữ liệu
Để so sánh giữa các phương pháp phân tách, chúng tôi lần lượt thử nghiệm trên cùng bộ dữ liệu gốc như trên Với sự so sánh giữa số lượng mẫu chuỗi tuần
tự giữa 2 phương pháp cho ta kết quả là giải pháp phân tách nào tốt hơn
- Trước hết, chúng tôi thực nghiệm theo phương pháp phân tách theo hành
vi sử dụng Áp dụng loại khai phá dữ liệu Mining to get SlotTime để tính khoảng
thời gian cho việc phân tách Kết quả khai phá mẫu tuần tự chỉ có 2 item trở lên
và khoảng thời gian phân tách, được chỉ ra tại Hình B.1 trong Phụ lục B của Luận văn này Để minh họa cho việc tìm ra các mẫu chuỗi tuần tự có độ lớn hơn
Trang 33hoặc bằng 2 và khoảng thời gian phân tách tương ứng, chúng tôi lấy 2 dòng dữ liệu từ Hình B.1 ra làm ví dụ như Bảng 4.1 sau:
Bảng 4.1 Một số mẫu trong Hình B.1 và ý nghĩa phân tách
LightBike,Ragdoll Blaster 3 Lite
count = 140 | time: 86181 86200
seconds
Mẫu chuỗi sử dụng 2 phần mềm: LightBike và
Ragdoll Blaster 3 Lite, nếu phân tách chuỗi dài ban đầu với slotTime nằm trong khoảng
86182…86200 seconds thì ta sẽ thu được 140
mẫu chuỗi hành vi này
Tiny Village,Big Win Soccer
count = 139 | time: 86260 86307
seconds
Mẫu chuỗi sử dụng 2 phần mềm: Tiny Village,
và Big Win Soccer, nếu phân tách chuỗi dài ban đầu với slotTime nằm trong khoảng
86261 86307 seconds thì ta sẽ thu được 139 mẫu chuỗi hành vi này
Từ dữ liệu thu được tại Hình B.1 chúng tôi lấy 2 giá trị slotTime để phân
tách (giá trị slotTime = 86182s là slotTime tối thiểu để phân tách chuỗi gốc
thành chuỗi con), ứng với các độ hỗ trợ tối thiểu, chúng ta có bảng kết quả 4.2 sau:
Bảng 4.2 Kết quả thử nghiệm trên bộ dữ liệu 1 phân tách theo hành vi
SlotTime minSup
(%) Pattern_1 Pattern ≥ 2
Tổng Pattern Hình vẽ
Trang 34Trên hình 4.2 trên, chúng ta thấy đường nét liền thể hiện kết quả khai phá
dữ liệu qua phương pháp phân tách theo slotTimex = 86182s
Đường nét đứt là kết quả khai phá với giải pháp phân tách theo ngày, N=25 ngày và N = 10 ngày
0 50 100 150 200 250 300 350 400
N=10 Days
65 60 55 50 45
Trang 35Để thấy rõ được sự khác biệt của 2 phương pháp trên, chúng tôi vẽ đồ thị tại Hình 4.3 với độ hỗ trợ minSup từ 65% xuống đến 35% giữa phương pháp phân tách theo giá trị slotTime = 86182s và tách theo ngày với N = 25 ngày
Hình 4.3 Đồ thị so sánh giữa 2 giải pháp phân tách bộ dữ liệu 1 với minSup
={35% - 65%}
Từ kết quả trên ta có nhận xét sau: Với độ hỗ trợ tối thiểu từ 50% trở lên thì kết quả khai phá của 2 phương pháp phân tách (theo số ngày = 25 ngày, theo khoảng thời gian phân tách slotTime = 86182s) là tương đương Tuy nhiên, khi
ta hạ độ hỗ trợ tối thiểu xuống đến 35% thì ta nhận thấy ngay phương pháp phân tách theo khoảng thời gian hiệu quả hơn hẳn so với phương pháp phân tách theo ngày, cụ thể là: tại độ hỗ trợ tối thiểu là 45%, 40%, 35% thì phương pháp phân tách theo ngày (25 ngày) không phát hiện ra được thói quen nào sử dụng 2 phần mềm Trong khi đó, kết quả khai phá cho phương án phân tách theo khoảng thời gian slotTime là rất khác biệt như tại minSup = 45% đã phát hiện được 259 thói quen sử dụng 2 phần mềm, tại minSup = 35% thì đã phát hiện được 7977 thói quen sử dụng 2 phần mềm
0 1000
65 60 55 50 45 40 35
Trang 36Như vậy, việc phân tách dữ liệu theo khoảng thời slotTime như trên có hiệu quả hơn so với việc phân tách theo ngày vì cùng một độ hỗ trợ tối thiểu như nhau thì giải pháp phân tách theo khoảng thời gian giúp ta tìm được nhiều mẫu tuần tự (thói quen) hơn
Trong bộ dữ liệu này, mỗi máy kích hoạt ứng dụng từ 1 đến 3 lần mỗi ngày việc phân tách theo thời gian quá nhỏ (slotTime = 36001s) sẽ không đem lại kết quả gì như Hình B.22 Cũng có kết quả tương tự khi chúng ta phân tích theo 1 ngày, 3 ngày như Hình B.20, Hình B.21
Từ những nhận xét trên, ta nhận thấy, mặc dù có những thói quen sử dụng các mẫu phần mềm trong một khoảng thời gian không dài và chỉ được phát hiện qua phương án phân tách theo thời gian (đủ lớn) mà không phát hiện được qua các phương án phân tách khác
1 ngày hơn, số lượng phần mềm cho bộ dữ liệu 2 này ít hơn
Để tìm khoảng thời gian phân tách các chuỗi gốc ban đầu thành các chuỗi
ngắn, chúng tôi sử dụng tùy chọn Mining to get SlotTime để tính khoảng thời
gian cho việc phân tách Kết quả khai phá mẫu tuần tự chỉ có 2 item trở lên và khoảng thời gian phân tách, được chỉ ra tại Hình B.23 trong Phụ lục B của Luận văn này Giả sử slotTime ngưỡng dùng để phân tách là 86001s (0.995 ngày), giá trị slotTime ngưỡng này nhỏ hơn nhiều so với giá trị slotTime nhỏ nhất trong Hình B.9 là 137180s (≈ 1 ngày 14 giờ) Với giá trị slotTime ngưỡng như vậy liệu có phân tách hiệu quả hơn so với phương án phân tách theo ngày không? Và hiệu quả hơn khi số ngày dùng để phân tách là bao nhiêu? Để lý giải điều này, chúng tôi lần lượt thử nghiệm trên bộ dữ liệu với các giá trị slotTime ngưỡng, số ngày phân tách là 5, 7, 10 và thu được một số kết quả như sau: