1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứ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

73 637 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 1,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

DANH 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 4

DANH 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 5

DANH 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 6

MỞ ĐẦ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 7

quan 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 8

Chươ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 9

cá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 10

tiê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 11

chú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 12

Chươ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 13

AppName 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 14

j 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 15

khai 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 16

sử 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 17

Gọ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 18

Khi 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ó a1b i1,a2 b i2, a nb 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 20

viê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 tempI 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 21

Chươ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 22

Mô 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 23

3.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 startTimei1,app1 một khoảng

thời gian tối thiểu là t:

Trang 24

Hì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

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 25

Trong đó startTimei,appj1, 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 26

Hì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 27

Trong đ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 28

Nế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 29

Bả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 31

Chươ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 32

So 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 33

hoặ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

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 34

Trê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 36

Như 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:

Ngày đăng: 25/03/2015, 10:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hermersdorf, M. Nyholm, H. Perkio, J. Tuulos, V. “Sensing in Rich Bluetooth Environments”- Workshop on WorldSensorWeb, in Proc.SenSys, 2006 - sensorplanet.org Sách, tạp chí
Tiêu đề: Sensing in Rich Bluetooth Environments
[2] Eagle, N. Pentland, A. “Reality mining: sensing complex social systems”. Personal and Ubiquitous Computing 2006 – Springer, Vol. 10, # 4, 255- 268 Sách, tạp chí
Tiêu đề: Reality mining: sensing complex social systems
[3] Farrahi, K. Gatica-Perez, D. “Daily Routine Classification from Mobile Phone Data”. In: Popescu-Belis, A., Stiefelhagen, R. (eds.) MLMI 2008.LNCS, vol. 5237, pp. 173–184. Springer, Heidelberg (2008) Sách, tạp chí
Tiêu đề: Daily Routine Classification from Mobile Phone Data
[4] Farrahi, K. Gatica-Perez, D. “What did you do today? Discovering daily routines from Large-Scale Mobile Data”.In: MM 2008: Proceeding of the 16th ACM International Conference on Multimedia, pp. 849–852. ACM, New York (2008) Sách, tạp chí
Tiêu đề: What did you do today? Discovering daily routines from Large-Scale Mobile Data
[6] Hara, K. Omori, T. Ueno, R. “Detection of unusual human behaviour in intelligent house”; Proceedings of the 2002 12th IEEE workshop on Neural Networks for Signal Processing, pp. 697-706, 2002 Sách, tạp chí
Tiêu đề: Detection of unusual human behaviour in intelligent house
[7] Yiping, T. Zhiying, Z. Hui, G.Huiqiang, L. Wei, W. Gang, X. “Elder Abnormal Activity Detection by Data Mining”, SICE Annual Conference in Sapporo, August 4-6, 2004, vol. 1, pp. 837–840 (2004) Japan Sách, tạp chí
Tiêu đề: Elder Abnormal Activity Detection by Data Mining
[8] Wren, C. Ivanov, Y. Kaur, I. Leigh, D. Westhues, J. “SocialMotion: Measuring the Hidden Social Life of a Building”. In: J. Hightower, B.Schiele, and T. Strang, (eds.) LoCA 2007. LNCS, vol. 4718, pp. 85–102.Springer, Heidelberg (2007) Sách, tạp chí
Tiêu đề: SocialMotion: Measuring the Hidden Social Life of a Building
[9] McCowan, I. Gatica-Perez, D. Bengio, S. Lathoud, G. “Automatic Analysis of Multimodal Group Actions in Meetings”.IEEE Transactions on Pattern Analysis and Machine Intelligence (T-PAMI) 27(3), 305–317 (2005) Sách, tạp chí
Tiêu đề: Automatic Analysis of Multimodal Group Actions in Meetings
[10] Vukovic, M. Lovrek, I. Jevtic, D. “Predicting user movement for advanced location-aware services”.In 15th International Conference on Software, Telecommunications and Computer Networks, pp. 1–5. SoftCOM 2007, 2007 Sách, tạp chí
Tiêu đề: Predicting user movement for advanced location-aware services
[11] Azam, M. A. Tokarchuk, L. Adeel, M. “Human Behaviour detection Using GSM Location Patterns and Bluetooth Proximity Data”. The Fourth International Conference on Mobile Ubiquitous Computing,Services and Technologies, pp. 428-433, Florence, Italy, 2010 Sách, tạp chí
Tiêu đề: Human Behaviour detection Using GSM Location Patterns and Bluetooth Proximity Data
[5] Human Behaviour Analysis Using DataCollected from Mobile Devices International Journal on Advances in Life Sciences, vol 4 no 1 &amp; 2, year 2012 Khác

HÌNH ẢNH LIÊN QUAN

Bảng 2.1 Danh sách khách mua hàng - Ứ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
Bảng 2.1 Danh sách khách mua hàng (Trang 17)
Hình 2.3. Giải thuật DFS với Kỹ thuật cắt tỉa - Ứ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
Hình 2.3. Giải thuật DFS với Kỹ thuật cắt tỉa (Trang 20)
Hình 3.1 Mô hình tổng quát khai phá dữ liệu - Ứ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
Hình 3.1 Mô hình tổng quát khai phá dữ liệu (Trang 21)
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Đ - Ứ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
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Đ (Trang 21)
Hình 3.5. Phân tách dữ liệu theo khoảng thời gian sử dụng - Ứ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
Hình 3.5. Phân tách dữ liệu theo khoảng thời gian sử dụng (Trang 24)
Hình 3.7. Trường hợp 1, 2 ứng dụng trong cùng một Itemset - Ứ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
Hình 3.7. Trường hợp 1, 2 ứng dụng trong cùng một Itemset (Trang 25)
Hình 3.6. Phân tách dữ liệu theo thời gian trong cùng một Itemset - Ứ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
Hình 3.6. Phân tách dữ liệu theo thời gian trong cùng một Itemset (Trang 25)
Hình 3.8. Trường hợp 2, 2 ứng dụng trong cùng một Itemset - Ứ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
Hình 3.8. Trường hợp 2, 2 ứng dụng trong cùng một Itemset (Trang 26)
Bảng 3.2 chuỗi con chứa &lt;ac&gt; và khoảng thời gian phân tách - Ứ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
Bảng 3.2 chuỗi con chứa &lt;ac&gt; và khoảng thời gian phân tách (Trang 28)
Bảng 3.3 chuỗi con chứa &lt;df&gt; và khoảng thời gian phân tách - Ứ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
Bảng 3.3 chuỗi con chứa &lt;df&gt; và khoảng thời gian phân tách (Trang 29)
Hình 4.1 Giao diện của chương trình - Ứ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
Hình 4.1 Giao diện của chương trình (Trang 31)
Bảng 4.1 Một số mẫu trong Hình B.1 và ý nghĩa phân tách - Ứ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
Bảng 4.1 Một số mẫu trong Hình B.1 và ý nghĩa phân tách (Trang 33)
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 - Ứ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
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 (Trang 34)
Để  so  sánh,  chúng  tôi  lấy  kết quả  tại  2  bảng  là  Bảng  4.2  và  Bảng  4.3  để  cùng vẽ đồ thị với độ hỗ trợ từ 65% giảm xuống còn 45% như Hình 4.2 sau - Ứ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
so sánh, chúng tôi lấy kết quả tại 2 bảng là Bảng 4.2 và Bảng 4.3 để cùng vẽ đồ thị với độ hỗ trợ từ 65% giảm xuống còn 45% như Hình 4.2 sau (Trang 34)
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 - Ứ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
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 (Trang 35)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm