Tính thời gian cho phương án tách chuỗi

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứ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 (Trang 26 - 32)

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 tốn này, chúng tơi thử xác định một khoảng [tngưỡng_mintngưỡ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 tngưỡng_min = 8h, tngưỡng_max = 48h, ứng với tngưỡng_max đĩ sẽ phân tách được n1 chuỗi con đưa vào khai phá ra tập kết quả sp1. Bước tiếp theo là tngưỡng = tngưỡng_maxdelta (delta > 0 được gọi là bước giảm) và tính số

chuỗi con được phân tách n2 chuỗi con đưa vào khai phá ra tập kết quả sp2 sau đĩ so sánh sp1 với sp2 để 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 tngưỡng <= tngưỡ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ị tngưỡng = tngưỡ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ị tngưỡng khơng phải là nhỏ nhất. Ví dụ, giả sử tại giá trị

tngưỡng = tngưỡ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ị tngưỡ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ả tngương=20h sẽ cho kết quả tốt nhất.

time Itemseti appj j app i, startTime appx

Trong đa số các trường hợp tngưỡng < tngưỡng_max thì số lượng các thĩi quen được phát hiện đều nằm trong trường hợp tngưỡng_max và số lượng các chuỗi con được sinh ra (trường hợp tngưỡng) lớn hơn số lượng chuỗi con được sinh ra ở trường hợp tngưỡng_max. Do đĩ, nếu áp dụng giá trị [tngưỡng_mintngưỡng_max] thì ta chỉ cần lấy trường hợp tngưỡ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á tồ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à PS1, PS2, …, PSn. 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: FSP1, FSP2, …, FSPk.

Với mỗi FSPi ta tính khoảng thời gian để phân tách tập chuỗi gốc PS1, PS2, …, PSn được nhiều chuỗi con chứa FSPi 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:

S1 = 9abcdef / 10,12,9,120,40,35

S2 = 12a3cjdef / 5,15,8,90,30,7,12,39,20 S3 = 4dfxt5d6f / 9,74,20,50,21,33,14 S4 = 0acaoc / 32,12,80,23,44

Với, dữ liệu tại hàng 1 là chuỗi dài cĩ 7 sự kiện <9,a,b,c,d,e,f > và khoảng cách thời gian tương ứng với các sự kiện như sau:

Bảng 3.1 Khoảng cách thời gian giữa các sự kiện

Chuỗi sự kiện Sự kiện Khoảng cách

thời gian

Trước Sau

a,b a b 12 b,c b c 9 c,d c d 120 d,e d e 40 e,f e f 35 Các hàng dữ liệu khác cũng tương tự

Ta cĩ tập chuỗi dữ liệu chưa phân tách PS = {PS1 = <9abcdef>, PS2 = <12a3cjkef>, PS3 = <4dfxt5d6f>, PS4 = <0acaoc>}

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ự FSP1 = <ac>, FSP2 = <df>.

Đối với FSP1 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> (timeab=12, timecb=9) = 12 t > 12 1

12a3cjdef <a3c> (timea3=8, time3c=90) = 90 t >90 1

0acaoc <ac> (timeac)=12 12 < t <= 44 1

<ca> (timeac=80) = 80 t > 80 1

<aoc> (timeao=23, timeoc=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 SP2 ta sẽ cĩ các tập chuỗi con phủ <df> hoặc nằm giữa 2 chuỗi

Bảng 3.3 chuỗi con chứa <df> 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 <df>

9abcdef <def> (timede=40, timeef=35) = 40 40 < t 1

12a3cjdef <def> (timede=39, timeef=20) = 39 39 < t 1

4dfxt5d6f <df> (timedf)=74 74 < t 1

<fxt5d> (20,50,21,33) = 50

<d6f> (33,14) = 33 33 < t 1

Như vậy, với thời gian phân tách t > 40 sẽ phân tách được 3 chuỗi con chứa <df>.

Đối với dữ liệu ở ví dụ trên thì chúng ta cĩ thể nhận thấy việc phân tách chuỗi dữ liệu dài thành các chuỗi dữ liệu ngắn theo đề xuất của chúng tơi là tương đối hiệu quả. Tuy nhiên, cĩ một số vấn đề cần phải giải quyết trước khi đi vào áp dụng phương án đĩ. Đầu tiên là tại sao chúng tơi lại đề xuất ra phương pháp đĩ, tại sao phải tìm các mẫu chuỗi tuần tự cĩ độ hỗ trợ lớn thoản mãn độ 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 tố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á tồ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ự đố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.

- 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 tốn thời gian phân tách vì vậy sẽ làm giảm thời gian cho việc tính tốn cho thuật tốn.

Do vậy, khi dự đố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.

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

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 tồ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á tồ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.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứ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 (Trang 26 - 32)

Tải bản đầy đủ (PDF)

(73 trang)