控制模塊則執(zhí)行最后的決策結果。
[0043] 移動終端給本發(fā)明提供了很多系統和用戶的情景信息,圖2列出了本發(fā)明需要獲 取的情景信息的屬性。主要有四種情景類型,包括時間類型、空間類型、設備類型和目標。
[0044] 時間類型是具有重大意義的屬性,可W體現用戶在不同時間的行為特征??臻g類 型代表了移動終端和用戶所處的空間地點和環(huán)境,不同的空間地點和環(huán)境往往也會有不同 的用戶使用情況。設備類型主要反映當前移動終端的使用情況,包括電量大小、電池狀態(tài)、 屏幕狀態(tài)、移動網絡狀態(tài)、WiFi狀態(tài)和CPU使用率。目標信息是當前是否需要網絡接口,本 發(fā)明通過判斷當前正在運行的前臺應用的訪問權限是否申請網絡連接來確定。
[0045] 情景信息預處理。為了提高決策算法Kr^N的準確度,本發(fā)明需要對一些初始數據 進行預處理,主要是針對經締度的地理位置。Amlroid提供的定位方法可W獲取到經締度 數字小數后7位甚至更多位,取舍不同的精確度可W使經締度數據產生不同個數的地理位 置。另外,本發(fā)明可W通過設置一些條件來進行篩選和處理,比如刪除那些用戶所處時間少 于10分鐘的位置數據,來減少經締度數據量。
[0046] 根據圖2列出的情景信息數據,本發(fā)明記錄了一個真實用戶在一周內的情景數 據,其中包括經締度位置數據。最后得到了不同精度下位置的時間分布情況,如圖3所示, 每一種顏色對應唯一的位置,扇葉的大小代表了用戶在對應位置所處時間的占比。經過數 據的處理和分析,本發(fā)明確定采用精確度等于4的方案,它可W提供比較合適的位置分布。
[0047] 獲取定位數據的優(yōu)化。為了減少定位帶來的損耗,本發(fā)明可W在必要的情況下才 進行定位,運樣可W大大減少獲取位置數據的次數。具體來說,本發(fā)明可W通過判斷用戶設 備是否移動到另外一個地方來選擇是否需要重新定位,另外,由于同一個WiFi環(huán)境的地理 位置一般來說是固定的,所W本發(fā)明可W保存每一個WiFi對應的位置信息,后面只需要通 過WiFi信息來查詢對應的位置即可。
[0048] 獲取定位數據的具體步驟如下:
[0049](1)判斷設備是否處于移動狀態(tài),如果設備不移動則轉步驟(2),如果設備移動, 則等待其停止移動后轉步驟(3)。
[0050] (2)當前地理位置不變,采用最近的位置信息作為。等待固定周期后轉(1)。
[0051] (3)需要重新定位,若當前網絡斷開則打開網絡接口。判斷當前的網絡環(huán)境,如果 處于移動網絡環(huán)境下則轉(4);如果是WiFi環(huán)境則轉巧)。
[0052] (4)當前是移動網絡環(huán)境,通過移動基站定位方法來獲取位置信息。等待固定周期 后轉(1)。
[0053] (5)當前是WiFi網絡環(huán)境,判斷是否保存過此WiFi對應位置信息。如果保存有當 前WiFi對應的經締度數據,直接獲取對應位置信息,否則WiFi網絡定位獲取位置,并保存 WiFi信息和對應位置。等待固定周期后轉(1)。
[0054] 決策算法中的K最近鄰算法。K最近鄰算法(KNN)是機器學習十大算法之一,它的 基本思想是如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數屬于某一個類別, 則該樣本也屬于運個類別。實現步驟如下:假設有一個含有m個樣本的訓練集合X,每個 樣本由n個屬性組成,目標類別有W個,對于每一個訓練樣本表示為Xi=狂ii,Xi2,Xi3,…… ,XJ,其中i= (1,2,3,……,m)?,F有一個待分類樣本Y,表示為Y=化,Yz,Ys,……,Y。)。
[0055] (1)計算待分類樣本Y和每一個訓練樣本Xi的距離,下面是加權的歐式距離公式
(1) 陽057]其中Aj是屬性j的權重。
[0058] (2)對所有的距離結果進行升序排序,選取前k個距離最近的樣本集合Z,表示為 Zi= (Z。,Z。,Z。,......,ZJ,其中i= (1,2, 3,......,m)。
[0059] (3)統計k個最近樣本集合Z中每個類別C的個數N(C)
似 減
[0062] 其中C狂1)表示樣本Zi的類別。
[0063] (4)待分類的樣本的類別C(Y)為k個最近樣本集合中N(C)最多的那個類別C
[0064]C(Y) =argmax〇<c《W(N(C)) (4) 陽0化]決策算法中的Kr^N算法的基礎是計算樣本間的距離,如果選取的屬性信息對分類 結果關聯性不大將會影響分類的結果,因此本發(fā)明需要對屬性進行選取。信息增益可W反 映屬性區(qū)分訓練樣本集合的能力,本發(fā)明可W用它來作為衡量屬性對樣本類別的相關性。
[0066] 假設有一個樣本集合S,其目標類別屬性含有C個不同的值,那么集合S相對于C 個類別屬性值的賭定義如下:
[0067] E間二S;=i-P/l〇g2P, 巧)
[0068] 其中Pi表示樣本集合S中類別為i所占的比例。 W例樣本集合S中的一個屬性A相對于S的信息增益可W表示為G(S,A),定義如下:
巧:)
[0071] 其中V(A)是屬性A里面所有取值的集合,Sy是樣本集合S里面屬性A的值等于V的所有子樣本集合,IS」表示Sy子樣本集合的大小,
即為Sy子樣本集合在S樣本集合所 占的比例,E(Sy)是子樣本集合Sy的賭。
[00巧按照公式(6)本發(fā)明對所有屬性進行了信息增益值的計算,結果如圖4所示。經 過實驗和分析,本發(fā)明把信息增益值大于0. 04的屬性作為最終Kr^N算法的特征屬性,對小 于0. 04的屬性則舍棄不用。最終表格里面的前九個屬性將作為Kr^N算法中樣本的特征屬 性。
[0073] 屬性的權重直接影響樣本之間的距離,權重越大則對應屬性的差別就會越放大, 分類結果將會有很大的變化。因此,屬性的權重應該和屬性區(qū)分類別的能力成正比,也就 是屬性的信息增益越大,其分配的權重就越大,用公式表達屬性A的權重Aa和信息增益 G(S,A)的關系如下:
[0074] G^A) (7)
[00巧]根據W上分析,本發(fā)明提出了一種基于信息增益來確定歐式距離的屬性權重的方 法。假設訓練樣本集合S中的樣本有n個屬性,記為Ai(i= 1,2, 3,…,n),根據上述信息增 益的公式計算n個屬性的信息增益值G(S,Al)(i= 1,2, 3,…,n),則每個屬性權重系數入1 由下面的公式來確定:
巧) 陽077] 最終確定的屬性權重值如圖5所示。
[0078] 樣本裁剪。K最近鄰算法的其中一個不足就是決策時需要計算樣本和每個訓練樣 本的距離,計算量很大導致算法決策效率低下。如何提高效率主要有兩種方式:一種是減少 計算的時間W123;另外一種是減少樣本的數量。本發(fā)明提出了一種基于最大屬性值域的樣 本裁剪方法,來減少KNN決策時的計算樣本數量,從而提高算法的執(zhí)行效率。具體來說,本 發(fā)明基于時間屬性來確定K個最近樣本的可能范圍,從而排除不可能成為K個最近的其他 樣本。
[0079] 假設訓練集合X含有m個樣本,每個樣本有n個不同的屬性,對于每一個訓練樣本 則表示為Xi= (X…Xn,Xn,......,xj,其中i= (1,2, 3,......,m),設時間屬性為第C個屬 性(0《C《n)?,F有一個待分類樣本Y,表示為Y=柄,72, 73,......。
[0080] (1)樣本Y的第1個最近樣本的范圍
[0081] 如果訓練集合X中存在一個樣本P,它的時間屬性值和樣本Y的相同,其他屬性值 都不同且差值為最大,則樣本Y和樣本P的距離為:
滅:
[0083] D(Y,巧代表了除了時間屬性外,兩個樣本距離的最大值,記為Dm。,燈。二XJ,其值 為一常量。
[0084] 如果訓練集合X存在另外一個樣本Q,它的時間屬性值和樣本Y的不同,其他屬性 值都相同,則樣本Y和樣本Q的距離為: