(浙江工業大學 計算機學院,浙江 杭州 310023)
近年來學生整體的體質狀況呈現下降的趨勢。為改善學生體質,高校陸續開始實行“陽光跑步”計劃,要求學生開展課外鍛煉。為了對學生課外健身跑的情況進行監督,傳統方法是在校園內設置一些檢查點,學生跑步通過這些檢查點時以刷卡或者指紋識別的方式來進行身份識別,按時完成規定的行程,以此保證鍛煉的質量。該做法的局限性也是明顯的,首先是所有檢查點需要有專門人員負責看管,耗費人力與財力;其次,由于專門人員的監管不是全天的,學生只能在特定的時間進行跑步,無法選擇自己最合適的鍛煉時間;最重要的是監管具有被動性,只獲取到每個學生抵達檢查點的時間信息,無法深入地分析學生的鍛煉狀況,更無法進行個性化運動指導。
隨著穿戴技術的發展,以上問題可以得到有效解決。采用運動心率腕表是其中一種方法:一則通過腕表實時監控學生課外鍛煉狀況,學生運動時間不再受監管人員的約束;二則通過采集心率數據了解鍛煉強度,由此開展運動效果的分析,進行個性化運動指導;此外,還可以減少監管人力投入。當然也存在一些技術問題需要克服,比如由于缺少直接監督,可能會出現一人佩戴多個腕表替他人代跑的情形,筆者稱此為“多表代跑”。為了避免該情況,非常需要一種合適的方案對其進行檢測,進而達到有效的監督,保證學生的課外鍛煉質量。
多表代跑的檢測本質上屬于分類問題,但它又區別于時間序列的分類,并不針對單條序列,而是面向序列對的分類問題。該問題主要涉及三個方面:時間序列表示方法、時間序列相似性度量和時間序列分類。
在時間序列的表示上,有基于時域和基于轉換域的兩類方法。基于時域方法有分段累積近似法(PAA)[1]、適應性分段常數近似(APCA)[3]、符號化聚合近似法(SAX)[4]、感知要點(PIP)[5]、分段線性表示(PLR)法[6]還有旋轉門(SDT)[7]?;陬l域的方法有離散傅里葉變換(DFT)[8]和離散小波變換(DWT)[9]。在第4節將會針對多表代跑問題對所有這些方法進行充分討論。
在時間序列的相似性度量上,主要有基于Lp-范數[10]的曼哈頓距離、歐氏距離和切比雪夫距離,還有動態時間規整[11]和短時間序列(STS)距離[12]。與表示方法一樣,第4節將對它們進行充分討論。
時間序列分類的研究主要有兩個關注點。首先有許多研究關注數據自身的性質并對其進行特殊處理。Geurts[13]提出基于時間序列中局部模式的分類方法。Zhang等[14]提出一種使用小波分解并且能夠自適應選擇參數的表示方法用于分類?;谠摫硎就茖С龊线m的度量并使用最近鄰算法進行分類。Kadous等[15]使用元特征途徑(比如時間序列中的局部最大值)來生成分類器。類似地,Yang等[16]使用基于公共主成分的特征子集選擇來保留在原始特征集中的關聯信息。然后根據分類的有效性對這些選擇的特征子集進行評價。另一方面,研究者們關注定制或開發專門用于時間序列數據的分類器。比如,Povinelli等[17]提出一種基于對系統動態建模的信號分類方法。這些動態信息是從使用高斯混合模型對時域特征重建后的階段中捕獲得到的。Rodríguez等[18]研究能較好地對時間序列數據進行分類的區間決策樹和基于DTW的決策樹,然后使用集成方法將所有基分類器結合起來。此外,Xi等[19]提出一種半監督的時間序列分類器,適用于只有少量帶標簽樣本的情況。由于時間序列分類的研究都是針對單條序列,更適用于解決分次代跑問題。而本研究要解決的多表代跑問題中需要分類的是序列對,這些方法并不適用。
當前有許多研究工作通過移動終端對數據進行采集[20-22]。筆者將使用某公司生產的運動腕表采集學生的跑步心率數據。圖1為一同學在986 s的跑步過程中采集到的心率序列(采樣間隔為每秒一次,采集時間精確到秒,心率值精確到整數)。
筆者分別對兩種類型的數據進行采集:代跑序列和正常序列。代跑序列指的是一位同學替其他同學代跑產生的心率序列,有兩種情形:1) 同時戴多個心率腕表代替其他同學跑產生的序列;2) 多次替他人跑步產生的心率序列。筆者聚焦“多表代跑”的情形,通過機器學習算法自動分辨代跑,分次代跑問題留到后續研究解決。正常序列指的是學生運動中只戴一只腕表采集得到的自身心率序列。
完成了心率序列的采集,所有的序列還需要先經過適當的處理才能被使用。此外,互為代跑關系的兩條序列在完成采集后,它們各自采集起始時間的偏移都會被記錄下來。因為在后面的實驗部分,所有的心率序列會被分配在一個限定的時間域中進行現實場景的模擬,兩條代跑序列的采集起始時間偏移仍應該在模擬環境中保留。
Si=
例如,在一段時間內采集到的4條時間序列A,B,C,D,如圖2所示。橫軸代表時間,序列的高低與心率值無關,僅為互相區分。序列A與B的采集時間存在重疊,它們由多表代跑產生,屬于代跑序列對;序列A與C存在時間重疊,但它們心率波動趨勢不同,不屬于多表代跑產生序列,屬于正常序列對。圖2中屬于正常序列對的還有A與D,B與D。

圖1 學生跑步過程中采集到的心率序列Fig.1 Heart rate series gathered when student is running

圖2 正常序列對和代跑序列對Fig.2 Normal series pair and fake running series pair
由此可知:當兩段序列存在時間重疊,它們將組成一個序列對(正常序列對或代跑序列對)。在給定的一段采集時間內,會存在大量這樣的序列對。本研究的任務是提出一套代跑檢測方案識別其中的多表代跑序列對。
本節討論表示方法和相似性度量的選擇,這兩方面是開展時間序列分析的關鍵。講述筆者選擇PAA、差值序列、斜率序列和百分比序列作為潛在的表示方法(當然還包括原始序列),以及選擇曼哈頓距離、歐氏距離、短時間序列距離、堪培拉距離還有Bray-Curtis距離作為潛在的相似性度量方法的考慮與理由。所有這些潛在的表示方法和相似性度量將組合在一起,在進行特征抽取時每個組合對應的距離值都作為特征集合的一部分。
時間序列通常被轉換成合適的表示形式,在轉換后的序列上進行相應的分析[1]。目前時間序列表示方法主要可分為兩類:基于時域的表示方法和基于轉換域的表示方法。下面將針對當前的研究對一些主要的方法進行討論。
基于時域的時間序列表示法之一是對原始時間序列進行分段處理,將其分成等長的片段,計算出每個片段中數據點的平均值,該方法被稱為分段累積近似法(PAA)[1]。該表示雖然壓縮了原有信息,但可能抽取出具有代表性的片段進而提升檢測效果,因此將在實驗方案中嘗試。另一種表示方法是適應性分段常數近似(APCA)[3],APCA作為分段累積近似法的擴展版本被提了出來,該方法中各片段的長度不固定,隨時間序列的形狀自適應變化,不能合理地在相應時間匹配序列對,將不納入實驗方案。
另一種通用類型的時間序列表示方法的思路是將數值化的時間序列轉換為符號化的表示。這類方法先將原始的時間序列離散化為一個個片段,然后再把每個片段映射到不同字符上。在這類方法中,最有代表性的是由Lin等[4]提出的符號化聚合近似法(SAX)。SAX本質上是對PAA表示的進一步壓縮。使用PAA已經損失掉大量原始序列的信息,如果效果不佳,那么使用SAX只會讓最終的效果更差。所以將先在實驗中對PAA方法的效果進行觀察,根據情況決定是否在后續研究中將SAX納入實驗方案。
此外,通過僅保留那些關鍵數據點來降低時間序列的維度也是一種很有前景的方法。這些關鍵點被稱作感知要點(PIP)[5]。對于一條時間序列P={p1,p2,…,pn},通過PIP鑒別過程,對序列P中所有的數據點根據其重要性進行排序,從而發現那些最重要的數據點。該表示找出的關鍵點很容易受到序列中噪聲的影響,比如一些由于噪聲帶來的極值點也會被選為關鍵數據點,進而偏離了原始序列的信息。同時當序列對重疊區域的兩片段被轉換之后,各自得到的關鍵點的時間戳往往是不一致的,無法匹配進行距離計算。此外PIP需要通過特定算法對每條序列進行一個關鍵點的尋找過程,這會帶來過多的計算消耗。
使用線段來擬合時間序列是另一種表示法,稱為分段表示法。其中的一個典型方法是分段線性表示(PLR)法[6]。設S(pi,…,pj)為一個子序列片段,其中pi,pj表示該序列中的數據點,該方法用連接pi和pj的線段作為該子序列的近似表示,該方法將這些連續片段的端點對齊,得到一個前后連接的線段組成的分段近似表示。具體地說,PLR是一個自底向上的算法,它先將時間序列中前后直接相鄰的兩個點作為片段創建一個最細粒度的近似;之后不斷地合并所需代價最低的相鄰片段對,直到當前的片段數達到所需的數量。當兩個相鄰的片段合并之后,該算法將會分別計算這個新片段與其前后相鄰片段合并所需的代價。與PLR類似,旋轉門(SDT)[7]算法也用于原始時間序列的線性分段表示,該算法在一定誤差范圍內用起點和終點確定的直線來代替兩點之間其他的數據點,并保存起點和終點的時間及數值大小,且前一壓縮區間的終點即為后一壓縮區間的起點。這兩種表示與PIP的問題類似,無法對轉換后表示中的線段進行匹配,因為這些線段是根據各自原始序列的波動特征而生成的,它們所覆蓋的時間范圍并不一致。
前面提到的方法主要都是直接在時域對時間序列進行表示,然而也可以在轉換域中表示它們。離散傅里葉變換(DFT)是另一種表示法[8]。傅里葉變換可以視為一個基變換,把一個向量從無窮維的時域空間變換到另一個無窮維的頻域空間中;離散傅里葉變換也是一個基變換,它把原來一個n維的點變成了k維,因此,它也可以對時間序列數據進行降維處理。在DFT之后,Chan等[9]發現離散小波變換(DWT)可以很好地代替離散傅里葉變換。不同于傅里葉變換,其變量只有頻率,小波變換有兩個變量:尺度(scale)和平移量(translation)。尺度控制小波函數的伸縮,平移量控制小波函數的平移。尺度就對應于頻率(反比),平移量就對應于時間。傅里葉變換只能得到一個頻譜,而小波變換卻可以得到一個時頻譜,小波變換可對非穩定信號進行時頻分析。這兩種方法雖常被用于時間序列的研究,但并不適用于當前工作。首先,代跑鑒別是基于兩條序列在重疊區域里片段的比較展開的,在這個區域內可能只有少量的對齊數據點,這樣貧乏的信息不足以讓頻域表示方法捕捉到心率序列信號的波動特征;其次,將心率序列轉換為頻率上的系數后,時域中時間戳的對應關系將會丟失,頻域中兩條序列很可能對應不一樣的頻譜,此時不能再通過比較兩序列在重疊區域里對齊數據點的差值來進行度量。
此外,除了前面提到的PAA,筆者還考慮了差值序列(前后時間戳對應心率值的差值)、斜率序列(前后時間戳對應心率值的差值/前后時間戳的差值)、百分比變化序列(前后時間戳對應心率值的差值/前一時間戳對應的心率值)這些基本的轉換作為后面實驗中嘗試的表示方法,其優點有:1) 操作方便;2) 能從不同的角度去表示原始心率序列中蘊含的信息;3) 使用它們進行表示依然可以保留兩條序列在時間戳上的對應關系,這為后面距離的度量帶來了極大的便利。
對于多表代跑檢測問題,需要度量的是兩序列在重疊時間范圍內片段之間的相似性。由于兩片段中數據點的對應關系是可以由時間戳準確鎖定的,所以不必考慮局部時間位移的問題,只需將所有數據點配對的偏差累加起來即可。另外采集過程中如果個體的運動強度過大,獲取的心率值很可能受到汗水或者腕表脫落的影響導致不夠精確。因此可考慮在度量中加上一定的權值,盡可能減少這種現象帶來的影響。
更全面的時間序列相似性度量方法可參考文獻[1],本節講述典型的幾類方法。相似性度量在時間序列分析中是非常關鍵的一步。時間序列相似性度量是基于近似匹配的方式定義的。基于Lp-范數[10]的歐氏距離[23]和它的變種是度量時間序列相似性最直接的方法。Lp-范數也被稱作閔可夫斯基距離。對于兩條長度相等的時間序列x和y,Lp-范數通過計算它們之間所有兩兩對應時間點的距離之和來衡量兩條序列的近似程度。該距離和越小,相似程度越高。計算該距離和的公式為
(1)
式中:p取1時為曼哈頓距離;p取2時為歐氏距離;p取無窮大時為切比雪夫距離。歐氏距離和它的變種含義清晰、容易理解,它們還具有線性時間復雜度、易于實現、不需要設定額外的參數等特性。Ding等[1]嘗試通過實驗對各種不同的相似性度量方法進行比較,發現歐氏距離相比于其他更復雜的相似性度量方法更有競爭力,尤其是在數據庫/訓練集相對比較大的時候。曼哈頓距離和歐氏距離都是通過累加兩條序列對齊數據點的差值作為距離的度量結果。該思路原理簡單,相對于其他度量方法具有更低的時間復雜度,將會在后續的檢測方案中使用。切比雪夫距離以兩序列對齊數據點中最大的偏差作為最終距離,可以看出該方法很容易受到局部噪聲的影響,兩條序列之間只要有一對偏差較大的數據點,它們就被認為是高度不相似的。該方法至多只能作為初步的篩選,無法準確度量兩條序列之間的相似度,不納入實驗方案。
Lp-范數也有局限性,由于該度量對于兩時間序列內點的對應是固定的,其對噪聲和錯誤的對齊非常敏感,且沒有辦法解決局部時間位移的問題(Local time shifting),比如兩個時間序列片段相似但在位移上有一定的偏差。
為了對存在一定程度變形的時間序列進行相似性度量,Berndt等[11]提出了動態時間規整(Dynamic time warping)。該技術可以通過一種非線性的方式對齊,計算相似但局部存在偏移的兩序列之間的相似性。在本研究中,由于已經能夠獲得序列中每個時間戳確定的時間,將重疊區域時間戳相同的數據點對齊,然后進行距離的度量,所以并不需要該方法的特性。而且使用該方法很可能會因為它的彎曲對齊使得相似性的度量結果更不準確。
為了對具有相同但不均勻采樣率的兩條時間序列進行相似性度量,M?llerlevet等[12]提出了短時間序列(STS)距離,計算公式為
(2)
式中:x,y表示兩條不同的序列;n為兩條時間序列的長度。
雖然當前使用序列采樣率均勻,但這種基于斜率偏差的距離度量是一種新思路,值得在實驗中嘗試。
除了曼哈頓距離、歐式距離和短時間序列距離外,筆者還考慮了另外兩種方法??芭嗬?canberra)距離本質上是權重化的曼哈頓距離。權重是指會給不同對齊數據點的差值分配不同的權重,這個權重由兩個數據點對應值的絕對大小來決定。假設有兩條時間序列x=
(3)
在本研究中該度量方法可以理解為對心率絕對水平較高情況的差值給予更多的懲罰。因為在實際心率數據采集過程中,當采集人的運動狀態越來越劇烈,他的心率就會不斷上升,這時更容易出現手環松動、汗水干擾的情況,進而影響心率采集的精確度。若對這種情況的心率給予更多的懲罰,那么最終的度量結果有可能也會更接近于真實的序列相似情況。
此外還考慮將Bray-Curtis距離加入到檢測方案中。假設有兩段時間序列x和y,它們的Bray-Curtis距離為
(4)
本質上該方法相當于是曼哈頓距離的調整。當使用曼哈頓距離,得到距離值后,將除上對齊點的個數,作為最終度量結果。而這里,除的值與序列本身的數值有關。由于心率值都是正的,不用考慮負數的情況,該方法便包含這樣的含義:如果兩序列心率值的總體水平比較高,那么它們之間的曼哈頓距離就會得到更多的懲罰。
已獲得的原始心率數據集需要先轉換為對應的樣本集才能供分類器訓練和測試。為了對分類器檢測效果進行合理的評價,樣本集將劃分為訓練集和測試集兩部分,分別用于分類器訓練和代跑檢測。訓練分類器時,將依次經歷特征縮放、特征選擇還有模型訓練的環節。代跑檢測時,前面兩環節與訓練時一致,最后將針對代跑檢測問題確定合理的指標對檢測結果進行評價。
本方案主要包含3個部分:樣本集生成、分類器訓練還有代跑檢測。代跑檢測方案為
名稱:代跑檢測方案。
輸入:原始心率數據集(包含標簽和采集時間)。
重疊閾值:兩條序列的重疊部分需要有多長的時間才能被認為是合法序列對。
輸出:代跑檢測分類結果。
1) 樣本集生成。樣本集生成:根據心率數據集中的所有序列對生成樣本集;訓練集和測試集劃分:根據指定的比例將數據集劃分為訓練集和測試集兩部分。
2) 分類器訓練。對訓練集中的特征進行縮放;對訓練集中的特征進行選擇;調整SVM的模型參數并根據訓練數據進行訓練。
3) 代跑檢測。對測試集中的特征進行縮放;對測試集中的特征進行選擇;使用訓練好的SVM對測試集中的數據進行代跑檢測。
4) 分析最終得到的代跑檢測結果。
筆者將根據學生跑步時采集到的心率序列生成對應的樣本集。對于采集到的心率序列:ξ1,ξ2,…,ξn,若序列ξi.[start, end]∩ξj·[start, end]≠φ,則依據ξi與ξj在重疊時間區間上的片段生成特征集。提取的特征,除兩條序列之間的距離度量外,還包括各種統計特征。根據兩條序列在采集時的實際關系賦予當前樣本對應的標簽(戴多表采集的代跑關系為1,獨立采集的正常關系為0)。由此,得到樣本集。為了序列對提取特征時能夠獲得更充分的信息,要求重疊的時間區間達到一定長度,提升代跑鑒別的效果。若對該區間限制過大將導致一些重疊范圍較小的代跑序列對被忽略,這種序列歸入多次代跑問題中去解決。重疊區間大小對檢測效果的影響將在后續的實驗中作進一步分析。
下面講述特征序列的生成。
4.2.1 距離度量特征
距離度量可以用來直接表示兩條序列之間的相似程度[1],也可以用某種相似性度量計算兩條序列在特定表示下的距離作為該序列對的一個特征。筆者將對前面所選的表示方法和相似性度量進行組合,由此得到的距離值作為樣本特征集的一部分。


圖3 序列對在重疊區域的距離度量Fig.3 Distance measurement of series pair within overlapping area
Bray-Curtis距離的度量值已經消除了數據點個數的影響,使用上文提到的其他度量方法計算兩序列間的距離時都需除以對齊數據點的個數。
4.2.2 統計相關特征
為表征代跑序列的相似性,除距離度量之外,還可引入許多統計相關的特征:均值、平均絕對誤差、最大值、最小值、標準差、平均標準誤差、傾斜度、峰度、協方差、關聯性、絕對能量、絕對變化和、復雜不變距離、高于均值計數、低于均值計數、最大值首次出現位置、最小值首次出現位置、有無重復數值、最大值是否重復、最小值是否重復、最大值最后出現位置、最小值最后出現位置、高于均值的最長連續子串長度、低于均值的最長連續子串長度、平均絕對變化、變化和的平均、二級導數的中心近似、中位數、重復出現數據點的比例、唯一數據點的比例、樣本熵、重復出現數據點之和、重復出現數值之和、所有數值之和、方差是否大于標準差。
這些特征對應的特征值都是基于序列對在重疊時間區域上的片段計算得到的;特征抽取時,將為兩條序列重疊區域上的片段分別計算出某個特征的值,然后計算兩者之間的差值的絕對值;布爾值特征不需計算差值,只需比較兩片段的布爾結果,根據是否相同賦值0或1;大部分特征都可以在文獻[24]中找到詳細的說明。
對于本研究中提到的二分類問題,需要選擇一個合適的分類器從訓練數據中學習并對測試數據進行檢測。支持向量機(SVM)非常適合解決本研究中的分類問題。給定一組訓練樣本,其中每個樣本都屬于兩個類別中的一個。SVM訓練算法可以在被輸入新的樣本后將其分類到兩個類別中的一個,使自身成為非概率二進制線性分類器。SVM將訓練樣本表示為空間中的點,它們被映射到一幅圖中,由一條明確的、盡可能寬的間隔分開以區分兩個類別。隨后新的樣本會被映射到同一空間中,并基于它們落在間隔的哪一側來預測它屬于的類別。
SVM有許多優點:首先,它背后的理論基礎十分完善;其次,相對于其他分類器,SVM盡量保持與樣本間距離的性質使其抗攻擊的能力較強;此外,SVM除了能夠處理線性分類問題還可以通過核函數來高效地解決非線性分類問題,即隱含地將SVM的輸入映射到高維的特征空間當中;最后,在實際的應用效果上,SVM在很多數據集上都有優秀的表現[25]。
在訓練SVM前,需要對生成樣本集的所有特征進行縮放。文獻[26]中提到使用支持向量機分類任務前進行特征的縮放非常重要。特征縮放可避免數值范圍較大的特征主導數值范圍較小的特征,同時還能避免一些數值計算問題。具體地,該文推薦將特征縮放到[-1, +1]或者[0, 1]的區間,即使用0-1標準化的方法進行特征的縮放,筆者將參照該建議進行后續的實驗。
完成了特征的縮放,還需要對現有的特征集進行特征選擇。筆者挑選了以下3 種較常用的特征選擇方法:
1) 方差法:預先設定一個方差閾值,如果某個特征的方差小于閾值,則將該特征刪除。
2)F檢驗:可以被用來估計兩個隨機變量之間的線性相關程度。進而可以通過該方法篩選掉高度線性相關的冗余特征。
3) 互信息:兩個隨機變量之間的互信息是一個非負值。通過它可以度量兩個變量之間的依賴程度。當該值為0表示兩個隨機變量是相互獨立的,如果值更高說明兩者依賴更強。
實驗前,不存在足以選出最合適的特征選擇方法的依據,因此將對這3 種方法進行實驗評估,根據每種方法對應實驗結果的優劣進行選擇。具體的方案設計與結果會在實驗部分詳細說明。
選擇支持向量機作為本研究使用的分類器后,仍需對核函數的類型進行選擇,線性核和徑向基內(RBF)核是最常用的兩種。線性核主要用于線性可分的情形。線性核參數少、速度快,對于大部分數據集的分類效果都比較理想。RBF核主要用于線性不可分的情形。RBF核參數多,分類結果非常依賴于參數。由于缺少充分的選擇依據,與特征選擇方法類似,將通過實驗進行詳細比較。
除了核函數之外,SVM還有兩個重要的參數γ和C需要確定。γ是針對RBF這種非線性核函數的。直觀上而言,它決定了模型對于特征向量之間區別的敏感度。較高的γ值會使訓練后的SVM偏差較高,方差較小,反之亦然。參數C又稱為懲罰項,指的是SVM里拉格朗日乘數的約束程度。C的大小決定了SVM對于outlier的忍受程度。較低的C值會使得決策平面更光滑,而較高的C值將會讓模型去選擇更多的樣本作為支持向量,進而能夠對所有訓練樣本進行更準確的分類。對任意特征選擇方法與核函數組合,將對這兩個參數進行網格搜索,即對兩個參數在特定范圍內進行遍歷,然后以最優實驗結果代表當前特征選擇方法與核函數組合的效果。
代跑序列對只占所有序列對的小部分,由這些序列對產生的樣本集會存在類別不平衡的問題,所以在訓練SVM時需要考慮類別權重。權重值將與γ,C一起在限定范圍內進行網格搜索,具體細節將在實驗章節說明。
在代跑檢測環節,訓練得到的分類器會對測試樣本集的數據進行分類,根據分類結果對分類器進行相應評價。
在對特征集的處理上(特征選擇和特征縮放),只要和前面訓練時的處理方式保持一致即可。處理完特征集之后,這些樣本將交給分類器去判斷,并和實際的標簽進行比較。關于分類的評價指標,這里主要考慮分類器對于代跑序列對(正例)的鑒別情況,即針對正例的精準度、召回率。僅僅是分類的準確度不能較好地反映代跑檢測的分類效果,因為整個樣本集中包含了大量的負例和少量的負例,一個把所有樣本都認為是負例的分類器都可以取得較高的準確度。同時經過大量的實驗后發現,針對負例的精準度,召回率基本都是接近1的,有時可能會因為分類器把一些正例誤認為是負例使得針對負例的精準度略微降低。而針對正例的精準度反映了正例的判別能力,將負例判別為正例(正常跑步同學判定為代跑同學)是急需避免發生的情況,因此該指標的理想值應為1。針對正例的召回率反映了正例的回收情況,該值越高表示分類器鑒別出代跑的能力就越強。綜上,在正例的精準度控制在1的前提下,希望針對正例的召回率越高越好。
本節通過實驗驗證所提代跑檢測方案的有效性。首先介紹實驗數據,然后比較不同SVM內核與不同特征選擇方法組合下的檢測效果,最后通過實驗分析序列對重疊時間限制對代跑檢測效果的影響。
本實驗使用的所有數據都是由學生跑步時佩戴運動腕表所采集得到。目前共有代跑序列508 對(1 016 條)和正常序列800 條,數據具體情況見表1。

表1 數據概要Table 1 Data summary
由于本研究中使用的心率序列并不是在特定時間段內一并采集的,而為了對筆者提出的代跑檢測方案進行合理評估,需要將所有心率序列都分配在一個特定的時間域中。這樣可以使所有序列之間存在更多的重疊,產生更多區別于代跑序列對的正常序列對,使得最終的評價結果更有說服力。
為了構建這樣一個模擬的測試環境,需要預先給定一個時間域的范圍,即開始時間與結束時間。然后便可以在這個時間域中為所有序列隨機分配新的采集開始時間。當每條序列都被分配好新的采集開始時間后,模擬測試環境的構建便已完成,然后進行樣本集的生成。
考慮到本實驗使用的心率序列數量和長度,時間域將設為4 h,即所有的心率序列的起點都會被分配于該時間范圍中的任意秒上。雖然該選擇并沒有足夠的依據支撐,但主要考慮了如下幾點:1) 使重疊的序列對更多,能對代跑序列對的鑒別產生干擾;2) 該范圍相當于一個下午內適宜鍛煉的時間長度,可以使實驗更接近真實的場景;3) 只要保證時間域中存在充分數量的重疊序列,該時間域的范圍是可以自由調整的。
本實驗分別使用方差法、F檢驗和互信息這3 種特征選擇算法對SVM的線性核和RBF核進行實驗比較,用以判定哪種特征選擇算法與內核的組合最適用于解決代跑檢測問題。4.4節已對代跑檢測的目標進行說明,下面的實驗中將不對負例(正常序列對產生的樣本)的精準度和召回率進行討論。具體地,每一種組合都將對SVM參數γ(只針對RBF核)、C還有類別權重這3 個參數進行網格搜索。這3 個參數都以指數增長的序列作為搜索范圍,其中γ=10-3,10-2,…,103,C=10-3,10-2,…,103,類別權重(正例與負例權重之比)=20,21,22,23,24,25,26,27。
圖4,5是使用F檢驗作為特征選擇算法的實驗結果,分別顯示了正例精準度和召回率隨特征選擇個數變化的情況。F檢驗將高度線性相關的特征刪除。所選特征的個數由5到55,間隔為5。從圖中可以看出:只有RBF核選擇5 個特征可以達到100%的精準度。正例召回率隨著特征選擇個數的增多有上升的趨勢,而正例精準度并沒有呈現出明顯的趨勢。

圖4 通過F檢驗進行特征選擇時的正例精準度Fig.4 Positive sample precision using F test

圖5 通過F檢驗進行特征選擇時的正例召回率Fig.5 Positive sample recall using F test
圖6,7是使用互信息作為特征選擇算法的實驗結果,類似前一實驗,分別顯示了正例精準度和召回率隨特征選擇個數變化的情況?;バ畔⒏叨认嗷ヒ蕾嚨奶卣鲃h除。所選特征范圍與前一實驗相同。從圖6中可以看出:使用互信息作為特征選擇算法時,精準度最高只能到95%左右。正例召回率和正例精準度和前一實驗情況相同。

圖6 通過互信息進行特征選擇時的正例精準度Fig.6 Positive sample precision using mutual-info

圖7 通過互信息進行特征選擇時的正例召回率Fig.7 Positive sample recall using mutual-info
圖8,9是使用方差法作為特征選擇算法的實驗結果,顯示內容與前面實驗一致。方差法將方差小于設定閾值的特征刪除。其中,當方差從0到0.02按0.002遞增時(預先對不同方差閾值進行實驗后確定的范圍),剩余的特征個數分別為:54,53,50,46,41,37,36,34,31,26,24。從圖8,9中可以看出:此時線性核不論是在精準度還是召回率上都明顯優于RBF核。其中方差閾值設為0.01,0.012和0.014時線性核能在最高的精準度下達到的最高召回率??紤]到0.01和0.014為這個最優范圍的邊界,實際效果可能會存在一定的波動,因此選擇0.012作為最終選擇的閾值。綜上,通過方差法以0.012閾值篩選出的特征集通過線性核SVM進行訓練能夠達到最優的檢測效果。后面將以該組合進行實驗。

圖8 通過方差法進行特征選擇時的正例精準度Fig.8 Positive sample precision using variance

圖9 通過方差法進行特征選擇時的正例召回率Fig.9 Positive sample recall using variance
圖10是使用不同重疊時間限制生成樣本集后,使用5.2節選出的最優方案組合的實驗結果,顯示了檢測結果隨重疊時間限制變化的情況。其中,重疊時間限制從100 s到500 s按50 s遞增。從圖10中可以看出:隨著該參數增大,精準度并未有明顯改變,而召回率雖然有波動但總體呈現出上升的趨勢。召回率這樣變化的原因很可能是由于重疊時間限制增大后,正常序列對便會減少,使得代跑序列對的相對比率更高,分類器也能更側重正例的辨別。

圖10 序列對重疊時間限制對檢測效果的影響Fig.10 Effect of limit overlapping time to detection
由學生的跑步監測提出了多表代跑的問題,并根據該問題提出了一套基于SVM的代跑檢測方案。該方案先由大量序列對生成樣本集,再基于部分樣本集訓練SVM,最后使用訓練得到的分類器進行剩余樣本的代跑檢測。筆者也對當前最有效的幾種特征選擇算法進行了比較,確定方差法為最適合本類型問題的方法。實驗對所提方案進行了充分的比較和驗證,結果表明所提方案能夠在精準度為100%的情況下取得較高的召回率。