第四章 實驗
4.2 資料集
國
立 政 治 大 學
‧
N a
tio na
l C h engchi U ni ve rs it y
34
4.2 資料集
本實驗所使用的資料,由政治大學資訊科學學系 XMIND Team18所提供的[57],該研 究開發了一個實驗平台,可以記錄和分析使用者在智慧型手機上的所有操作。資料以側錄 的方式,將使用者實際操作手機應用程式的狀況記錄下來。表 3 為本研究所使用的部分資 料紀錄,包含 ID、使用者、使用時間及應用程式。本資料集蒐集了從 2010 年 9 月至 2011 年 3 月的使用紀錄,共 26 萬多筆資料,共有 30 個使用者、1125 個手機應用程式,圖 19 為各使用者在紀錄中使用應用程式的數量,X 軸代表使用者,Y 軸呈現該使用者有使用的 應用程式數量,其中有 5 位使用者 User_001、User_008、User_012、User_014、User_026 在 1125 個應用程式中,沒有任何紀錄。紀錄包含使用者 ID、應用程式(App)、使用時間等 資訊。在 1125 個手機應用程式中,根據 Google Play 分類,將他們分為 30 大類,在表 6 中欄位 Android Market Category 說明,圖 19 的 X 軸為 Google Play 分類,Y 軸表示各分類 的數量,另外有 429 個未被分類的 App 沒有在圖 19 中呈現。
表 3 使用者操作行為紀錄(範例)
ID 使用者 使用時間 應用程式
1 User_002 2010-11-18 20:30:15 com.whatsApp 2 User_002 2011-02-08 21:55:20 com.android.browser 3 User_003 2011-02-09 22:42:05 com.facebook.katana 4 User_003 2010-10-01 09:50:29 com.google.android.location
18 參考網址:http://x-mind.km.nccu.edu.tw/
‧
ID Name Android Market Category Package Name
App0033 Angry Birds Arcade & Action com.rovio.angrybirds App0160 Kobo eBooks Books & Reference com.kobobooks.android App0061 Unblock Me FREE Brain & Puzzle com.kiragames.unblockmefree
App0014 Adao File Manager Business com.adao.android.afm
App0389 WeWeWeb Bridge (Free) Cards & Casino net.weweweb.android.free.bridge
App0081 Penguin I - Classic Casual com.hz.game.penguin
App0252 Droid Comic Viewer Comics net.androidcomics.acv
App0024 Gmail Communication com.google.android.gm
App0554 Kids Connect the Dots Lite Education zok.android.dots
App0082 Talking Roby Celik Free Entertainment com.outfit7.talkingrobyfree
App1056 Daily Money Finance com.bottleworks.dailymoney
App0117 Self-Hypnosis for Sound Sleep Health & Fitness imoblife.soundSleep App0084 SpeechSynthesis Data Installer Libraries & Demo com.svox.langpack.installer
App0045 Koe Fusen Lifestyle com.google.android.voicesearch
App0037 Music Player Lock Screen Media & Video com.android.music
App0059 Shazam Music & Audio com.shazam.android
App0076 gReader (Google Reader | RSS) News & Magazines com.noinnion.android.greader.reader App0079 Beautiful Widgets Personalization com.levelup.beautifulwidgets App0013 Root Explorer (File Manager) Productivity com.speedsoftware.rootexplorer
App0093 FxCamera Photography ymst.android.fxcamera
App0457 Finger Race Racing com.hz.game.finger
App0468 Key Ring Reward Cards Shopping com.froogloid.kring.google.zxing.client.android App0921 LED Scroller 3 - FREE Social no.dkit.android.ledscrollerfull
App0995 MySwimmingTimes Sports com.my
App0092 SmartMonitor Lite Tools com.smart.SmartMonitorLite
App0098 HOMERUN BATTLE 3D FREE Sports Games com.com2us.HB3DLITE App0288 Taipei Bus Situation Alert Transportation lbs.ebus
App0341 NZRoadInfo Travel & Local com.android.email
App0842 The Weather Channel Weather com.weather.Weather
App0007 Uncategorized com.htc.album
‧ 國
立 政 治 大 學
‧
N a
tio na
l C h engchi U ni ve rs it y
36
圖 16 應用程式在各分類的分布
我們將資料整理如表 5,分別進行實驗。資料型態(Data Type)分為使用者是否使用應 用程式、使用的次數以及使用頻率三種,另外也依照使用的時段分為前段和後段,前段時 間為 2010 年 9 月 27 日至 2011 年 1 月 31 日,後段時間為 2011 年 2 月 1 日至 2011 年 3 月 22 日;以及全部時間,2010 年 9 月 27 日至 2011 年 3 月 22 日。
在 4.3 的實驗中,我們針對每種資料型態(Data Type)和前/後時段的組合,使用 Co-Clustering 跑三個演算法,做三種不同的推薦方式。並以前段時間的資料集作為基礎來進 行推薦,再以後段時間的資料集做比對,驗證推薦的應用程式是否真的被使用。4.3.1 小 節的推薦結果所使用的資料集中,記錄了每位使用者在前段時間中,是否使用過應用程式,
若使用者有使用該應用程式,其值以 1 表示,若使用者未使用該應用程式,其值以 0 表示,
此資料集中,每位使用者平均使用了 117 個應用程式,我們以這個資料集,來對使用者做 推薦;4.3.2 小節的推薦結果使用的資料集,是使用者在前段時間內使用應用程式的次數。
4.3.3 小節則是將資料集轉換為使用頻率來做推薦,舉例說明,使用者 User_002 使用所有
‧ 國
立 政 治 大 學
‧
N a
tio na
l C h engchi U ni ve rs it y
37
應用程式的次數為 1537 次,對於應用程式 App0017 則會被記錄為 0.23(使用次數 346 佔總 使用次數 1537 的比例),而使用者 User_005 對於應用程式 App0017 則會被記錄為 0.41。
在 4.4 實驗中,我們不將資料分為前後段時間,以整個資料集的紀錄做實驗,分成 4.4.1 是否使用應用程式的資料集,4.4.2 使用者使用應用程式次數的資料集,以及 4.4.3 使 用者使用應用程式頻率的資料集,探討使用三種演算法分群的結果。
實驗以三種方式整理資料集,比較每個資料集的實驗結果。一開始,我們只對每位使 用者有或沒有使用應用程式的角度做整理,資料集一、四,“是否使用應用程式”中,無 法看出使用者對應用程式的依賴程度。我們的一個想法是,以使用者的使用每個應用程式 的次數來觀察,或許更能推薦流行及熱門的應用程式給使用者,所以我們用這個方法整理 資料集二、四,進而做推薦。接著我們思考,每位使用者操作手機的次數不同,每個人每 天使用手機的次數可能很極端,因此我們的另一個想法是,或許將使用者使用應用程式的 次數轉換成使用頻率,更能代表使用者操作手機的狀況,資料集三、六就是以此方式做整 理,做貼近個人化推薦。
表 5 實驗使用之資料集及其結果說明
Data Type 時段 資料集 實驗說明與結果
是否使用應用程式 前段 資料集一 4.3.1
使用次數 前段 資料集二 4.3.2
使用頻率 前段 資料集三 4.3.3
是否使用應用程式 全部 資料集四 4.4.1
使用次數 全部 資料集五 4.4.2
使用頻率 全部 資料集六 4.4.3
‧ 國
立 政 治 大 學
‧
N a
tio na
l C h engchi U ni ve rs it y
38
圖 17 各使用者使用應用程式的總次數
我們將資料以矩陣的方式儲存,因為使用的資料集中,多數的元素並沒有資料,為稀 疏矩陣(Sparse Matrix),由於矩陣在程式中常使用二維陣列表示,二維陣列的大小與使用 的記憶體空間成正比,如果多數的元素沒有資料,則會造成記憶體空間的浪費,為此,必 須設計稀疏矩陣的陣列儲存方式,利用較少的記憶體空間儲存完整的矩陣資訊。
在 Co-Clustering Software 的使用上,我們將原始資料轉換為 CCS 格式。CCS 格式的檔 案包含四個部分,*_dim、*_col_ccs、*_row_ccs、*_tfn_nz。*_dim 為一個一維矩陣,包 含了列的數量、行的數量以及陣列中非 0 值的數量。*_col_ccs 這個檔案將矩陣每列 (Column)非 0 值開始的指標(Point)位置,並在最後再加上一個指標位置(Length+1)。
*_row_ccs 記錄了矩陣中,每列(Column)非 0 數值在行(Row)的位置,其值從 0 開始。
*_tfn_nz 此檔案將矩陣中,所有非 0 的值記錄下來。
假設實際的資料為下列矩陣,則整理後的 CCS 檔案為表 6: