Tải bản đầy đủ (.pdf) (73 trang)

Ứ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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.53 MB, 73 trang )

ĐẠ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
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. NGUYỄN HÀ NAM

HÀ NỘI - 2013


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

1


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 qt 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

2


DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT
Ký hiệu

Diễn giải

CSDL

Cơ sở dữ liệu

TBDĐ

Thiết bị di động

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


3


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

4


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
5


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.

6


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ề
7


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 ngồ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
8


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 tố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 tố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 tố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,

9


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 tố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 tố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

10


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 :
AppName: là tên ứng dụng.
Stop: thời điểm kết thúc ứng dụng
PID: ID của ứng dụng
PPID: ID của ứng dụng cha của ứng dụng PID
IMEI: mã máy
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à tồn bộ các ứng dụng con của nó
được kích hoạt qua mã ID và PID.

11


AppName
SystemApplication
Email
Launcher
Music
SystemApplication
LogInfo
SystemApplication
Search
SystemApplication
LogInfo
LogInfo
SystemApplication
Music

Package Access
Helper
SystemApplication
Clock
SystemApplication
SystemApplication
Pico TTS
SystemApplication
Pico TTS
Package Access
Helper
Maps
Search
SystemApplication
SystemApplication
Downloads
LogInfo
SystemApplication
Contacts Storage
Network Location
Terminal Emulator
Contract Killer
LogInfo
Market
SystemApplication
LogInfo

Stop
Nov 27 22:31:56 2012
Nov 27 22:31:57 2012

Nov 27 22:31:57 2012
Nov 27 22:31:57 2012
Nov 27 22:31:58 2012
Nov 27 22:31:08 2012
Nov 27 22:31:56 2012
Nov 27 22:31:57 2012
Nov 27 22:31:58 2012
Nov 27 22:31:06 2012
Nov 27 22:31:51 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012

PID
90
247
132
180
52
341
79
187
137
339
395
152
256

IMEI
0
0

0
0
0
0
0
0
0
0
0
0
0

PPID
59
244
118
179
32
289
59
33
59
289
289
126
252

Start
Nov 27 22:30:19 2012
Nov 27 22:30:29 2012

Nov 27 22:30:22 2012
Nov 27 22:30:24 2012
Nov 27 22:30:19 2012
Nov 27 22:31:07 2012
Nov 27 22:30:19 2012
Nov 27 22:30:24 2012
Nov 27 22:30:19 2012
Nov 27 22:31:05 2012
Nov 27 22:31:50 2012
Nov 28 19:13:47 2012
Nov 28 19:13:58 2012

Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012

355
132
235
8
188
372
33
374


0
0
0
0
0
0
0
0

240
124
232
2
124
33
1
372

Nov 28 19:13:57 2012
Nov 28 19:13:47 2012
Nov 28 19:13:54 2012
Nov 28 19:13:43 2012
Nov 28 19:13:47 2012
Nov 28 19:14:10 2012
Nov 28 19:13:43 2012
Nov 28 19:14:10 2012

Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Nov 28 19:14:24 2012

Nov 28 19:14:24 2012
Nov 28 19:14:24 2012
Jan 02 13:57:11 2012
Jan 02 13:55:54 2012
Jan 02 13:57:11 2012
Jan 02 13:57:11 2012
Jan 02 13:57:11 2012
Jan 02 13:57:11 2012
Jan 02 13:57:11 2012
Jan 02 13:55:52 2012
Jan 02 13:57:11 2012
Jan 02 13:57:11 2012
Jan 02 13:55:38 2012

241
357
274
192
30
207
24528
14601
354
857
25545
24031
24522
18214
35
24476


0
0
0
0
0
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F
A000002470B55F

240
33
268
124
1
203
24429
117
272
222
25543
24022

24429
18208
2
24429

Nov 28 19:13:56 2012
Nov 28 19:14:09 2012
Nov 28 19:14:01 2012
Nov 28 19:13:47 2012
Nov 28 19:13:43 2012
Jan 02 13:55:04 2012
Jan 02 13:55:53 2012
Jan 02 13:55:03 2012
Jan 02 13:55:11 2012
Jan 02 13:55:10 2012
Jan 02 13:55:35 2012
Jan 02 13:55:30 2012
Jan 02 13:55:51 2012
Jan 02 13:55:16 2012
Jan 02 13:55:03 2012
Jan 02 13:55:37 2012

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 đó:
- Si là thiết bị cầm tay thứ i
- appj với 1≤ j ≤ n là ứng dụng được kích hoạt bởi người dùng trong thiết bị
cầm tay Si
- appj được kích hoạt trước appj+1 và được kích hoạt sau ứng dụng app j-1.
Tức là:


12


tstartappj 1  tstartappj  tstartappj 1

(1)

Với t start appi là thời điểm bắt đầu kích hoạt ứng dụng appi
Đặ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 = s i)
AppName

Stop

PID

IMEI

PPID

Email

Nov 27 22:31:57 2012

247

0


244

Start
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.

13


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
tố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 khố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
14


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ự đố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 tố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.

15


Gọi D là cơ sở dữ liệu của các giao dịch khách hàng, I  {i1, i2 ,..., in } 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}, si 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ự <s1, s2, ..., sn>. 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ờiGianGiaoDịch. Ví dụ như bảng dưới đây
Bảng 2.1 Danh sách khách mua hàng
Mã_KháchHàng

ThờiGian_GiaoDịch

Mua_MãHàng

1
1
2
2
2
3
4
4
4
5

03/3/2013
05/3/2103
12/3/2013
14/3/2013

20/3/2013
01/3/2103
09/3/2013
16/3/2013
26/3/2013
22/3/2013

40
100
20, 30
40
50, 70, 80
40, 60, 80
40
50, 80
100
100

Bảng 2.1 lưu các thông tin giao dịch của khách hàng đã được sắp xếp theo
Mã_KháchHàng. Với mỗi khách hàng có bao nhiêu dòng sẽ tương ứng với bấy
nhiêu giao dịch, các giao dịch khác nhau sẽ có thời gian khác nhau. Ví dụ, với
Mã_KháchHàng = 1 có 2 giao dịch tại 2 thời điểm khác nhau là 2 ngày
03/3/2013 và 05/3/2013.
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
Mã-KháchHàng

Chuỗi Tập mục của khách hàng


1
2
3
4

<(40)(100)>
<(20,30)(40)(50,70,80)>
<(40)(60)(80)>
<(40)(50,80)(100)>

5

<(100)>

16


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%
Tập mục
Ánh xạ
(40)
(50)
(80)
(50, 80)
100


1
2
3
4
5

Trong Bảng 2.2 thì 20, 30, 40,. .. là các mục (mã sản phẩm). (20, 30), (50,
70, 80) được gọi là 2 tập mục (itemset). Tập mã sản phẩm trong cùng dấu () là
các mã sản phẩm được mua tại cùng một thời điểm cho nên tứ tự các mục trong
đó là khơng quan trọng. <(40)(100)> là một chuỗi tuần tự các giao dịch nên phải
tuân theo trình tự.
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 < i2 <… < in và ta có a1  bi1 , a2  bi 2 ,...an  bin . Ví dụ
<(3)(6,7,9)(7,9)>

được

chứa

trong

<(1)(3)(5,6,7,9)(8)(2,7,9)>




(3)  (3), (6,7,9)  (5,6,7,9), (7,9)  (2,7,9) tuy nhiên <(2)(3)> lại khơng được chứa

trong <(2,3)> vì trong chuỗi đầu tiên thì 2 được mua trước 3 trong khi tại chuỗi
thứ 2 thì 2 và 3 được mua đồng thời. Chuỗi được gọi là tối đa (maximal) nếu nó
khơng bị chứa trong bất kỳ chuỗi nào.
Đợ hỡ trợ ( Support):

Support ( s) 

Cs
TN

(2)

Trong đó:
- Support(s): là độ hỗ trợ cho chuỗi s
17


- Cs: 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 tố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 tốn độ hỗ trợ của các ứng
18


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 tố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.
DFS-Pruning(node n  (s1 , s2 ,..., sk ), S n , I n ) )
(1)

Stemp  

I temp  
For each ( i  S n )
if (( s1 , s2 ,..., sk ,{i} ) is frequent)
Stemp  Stemp  {i}
(5)
(6)
For each ( i  Stemp )
(7)
DFS-Pruning(( s1 , s2 ,..., sk , {i} ), Stemp , all elements in Stemp greater then i)
(8)
For each ( i  I n )
(9)
if (( s1 , s2 ,..., sk  {i} ) is frequent)
I temp  I temp  {i}
(10)
(11)
For each ( i  I temp )
(12) DFS-Pruning(( s1 , s2 ,..., sk {i} ), Stemp , all elements in I temp greater then i)
(2)
(3)
(4)


Hình 2.3. Giải thuật DFS với Kỹ thuật cắt tỉa

19


Chương 3 - MƠ HÌNH ĐỀ XUẤT
3.1. Mơ hình đề xuất tổng thể
Mơ hình khai phá dữ liệu thơng thường được mơ tả trong Hình vẽ
Tạo kho
dữ liệu
Tiền xử lý
dữ liệu
Khai phá dữ
liệu
Phân tích
kết quả

Hình 3.1 Mơ hình tổng qt 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
Thu thập dữ liệu là
các logfile từ các
thiết bị di động

CSDL

Xử lý dữ liệu


Khai phá
dữ liệu

So sánh, phân
tích Kết quả

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


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
21


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
o

Buổi chiều ví dụ từ 12h01 đến 19h00;

Buổi tối từ ví dụ 19h01 đến 06h59 ngày hơm sau.
Chiều

Sáng

Tối

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, ...)
Start Sequence
00:00:00

Stop Sequence
23:59:00

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 (appn) trong chuỗi thứ i (Sequencei ) có thời
điểm kết thú thực thi stopTimei,appn cá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:

startTimei 1,app1  stopTimei,appn  t

(3)

22



Sequencei

Sequencei+1
appn
app1

stopTimei,appn

time

startTimei1,app1

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

của phương án tách 2.
- Vì những lý do trên, nên tần suất của các mẫu khai phá được trong
phương án tách 2 sẽ tốt hơn tần suất của các mẫu trong phương án tách 1.
Với những nhận xét trên thì, tại các mục so sánh giữa các phương án phân
tách dữ liệu chúng tôi chỉ so sánh giữa phương án 2 và phương án 3.
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 (tngưỡng). Khi 02
ứng dụng appj và appj+1 mà có thời gian kích hoạt startTimeapp_j+1 của appj+1 và
thời gian kết thúc timeStopapp_j của appj cách nhau khoảng thời gian ∆t, tùy
thuộc vào giá trị của ∆t so với tngưỡng mà ta xác định được 1 trong 2 trường hợp:
- Cả 2 item appj và appj+1 cùng trong một itemset
- appj và appj+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) tḥc 2 itemset khác nhau
o

Có dạng: t  startTimei,appj1  stopTimei,appj  t nguong; j, i  1

23


Trong đó startTimei,app , stopTimei,app tương ứng là thời điểm kích hoạt ứng
j1

j

dụng thứ j+1 và thời điểm kết thúc ứng ựng thứ j trong sequence i.
Sequencei
Itemsetk+1

Itemsetk

time

stopTimei, appj


startTimei,appj 1

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) tḥc cùng 1 itemset.
Dạng 1. ∆t>0
o

dạng: t  startTimei,appj1  stopTimei,appj  t nguong; j, i  1

Trong đó startTimei,app là thời điểm kích hoạt ứng dụng thứ j+1 trong chuỗi
j1

thứ i. stopTimei,app là thời điểm stop ứng dụng thứ j trong chuỗi thứ i.
j

Sequencei
Itemsetk
appj

time

appj+1

stopTimei, appjstartTimei,appj 1
Hình 3.7. Trường hợp 1, 2 ứng dụng trong cùng một Itemset

o

Dạng 2: ∆t <=0
Ứng dụng j được gọi là trong cùng Itemset i với ứng dụng x nếu thời điểm
kích hoạt ứng dụng j nằm trong khoảng thời gian từ startTime đến stopTime của
một ứng dụng x trong Itemset i.

24


×