本發明涉及一種騷擾號碼的識別方法,屬于網絡通信技術領域。
背景技術:
騷擾電話以推廣廣告內容、詐騙信息為主,已經成為擾亂社會安定的非法職業。通過綜合分析,騷擾電話普遍具有以下特點:
1、被叫分散,騷擾號碼在單位時間內呼出多個號碼,頻率高,而且各被叫號碼間的相關性較小;
2、騷擾電話與被叫間通常相關性較弱,即歷史通話關系很少,而且騷擾號碼通常作為主叫發起呼叫的數量遠遠大于其作為被叫的數量;
3、騷擾電話的通話時長通常較短,而且被叫掛機的概率較大;
4、騷擾電話通常具有呼叫頻次高、且集中分布于某一時間段的特點。
專利申請CN200910079707.5(申請名稱:一種騷擾電話的識別方法及裝置,申請日:2009-03-06,申請人:中興通訊股份有限公司)公開了一種騷擾電話的識別方法及裝置,在移動電話中引入了對陌生電話號碼的識別處理,通過對陌生來電號碼的呼叫時間區間、呼叫持續的時間長度、以及呼入次數的統計,與用戶的判斷規則進行自動比較,識別出騷擾電話。該技術方案僅涉及到呼叫時間區間、呼叫持續的時間長度、以及呼入次數的統計來識別騷擾號碼,判斷方法非常簡單,并未充分利用主、被叫號碼的呼叫特征來從現網的海量話務數據中有效識別騷擾號碼。
因此,如何充分利用主、被叫號碼的呼叫特征,從現網的海量話務數據中有效識別騷擾號碼,仍是一個值得深入研究的技術問題。
技術實現要素:
有鑒于此,本發明的目的是提供一種騷擾號碼的識別方法,能充分利用主、被叫號碼的呼叫特征,從現網的海量話務數據中有效識別騷擾號碼。
為了達到上述目的,本發明提供了一種騷擾號碼的識別方法,包括有:
步驟一、選取若干已確認的騷擾和非騷擾號碼,計算所述騷擾和非騷擾號碼在一段時間內的通信行為指標,然后將所述騷擾和非騷擾號碼及其通信行為指標形成訓練樣本集來構建隨機森林分類模型,所述隨機森林分類模型的輸入是每個用戶號碼的通信行為指標,輸出是所有決策樹判定其為騷擾號碼和非騷擾號碼的預測概率;
步驟二、將待識別號碼在一段時間內的通信行為指標輸入隨機森林分類模型,并計算隨機森林分類模型中所有決策樹判定其為騷擾號碼和非騷擾號碼的預測概率,以據此來判定所述待識別號碼是否是騷擾號碼。
與現有技術相比,本發明的有益效果是:呼叫離散度、被叫關系圈、呼出呼入比、呼叫時間分布等通信行為指標可以有效地體現出騷擾號碼的行為特點,本發明采用隨機森林分類模型,以呼叫頻次、被叫個數、通話時長、振鈴時長、主動釋放次數、被動釋放次數、被叫離散度、同一主叫的被叫號碼間相關系數、呼叫相同萬號段最大頻次、主叫占比、呼叫時間間隔標準差等多個通信行為指標作為輸入,并根據所有決策樹判定為騷擾號碼和非騷擾號碼的概率來識別騷擾號碼,從而能利用主、被叫號碼的呼叫特征,充分挖掘大量訓練樣本中的數據特征,從現網的海量話務數據中有效識別騷擾號碼,并且通信行為指標還可以根據實際需要而靈活調整;由于騷擾電話具有呼叫頻次高且集中分布于某一時間段的特點,本發明還進一步將全天的話單數據劃分成以多個時間粒度為時長的通信時段,并基于不同時間粒度下的高頻通信時段來計算用戶號碼的各種通信行為指標,從而能進一步提高騷擾號碼識別的準實時和高效性;本發明還可以構建多個隨機森林分類模型,并根據測試后獲得的隨機森林分類模型的識別率來從中選擇一個最優的隨機森林分類模型。
附圖說明
圖1是本發明一種騷擾號碼的識別方法流程圖。
圖2是步驟A的具體操作流程圖。
圖3是步驟11中,對于第k棵決策樹,k=1、2、...、K,其生成過程的具體操作流程圖。
圖4是圖1步驟二的具體操作流程圖。
圖5是本發明構建一個測試樣本集分別對多個隨機森林分類模型進行測試,并根據測試結果從中選擇一個最優的隨機森林分類模型的具體操作流程圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步的詳細描述。
如圖1所示,本發明一種騷擾號碼的識別方法,包括有:
步驟一、選取若干已確認的騷擾和非騷擾號碼,計算所述騷擾和非騷擾號碼在一段時間內的通信行為指標,然后將所述騷擾和非騷擾號碼及其通信行為指標形成訓練樣本集來構建隨機森林分類模型,所述隨機森林分類模型的輸入是每個用戶號碼的通信行為指標,輸出是所有決策樹判定其為騷擾號碼和非騷擾號碼的預測概率;
步驟二、將待識別號碼在一段時間內的通信行為指標輸入隨機森林分類模型,并計算隨機森林分類模型中所有決策樹判定其為騷擾號碼和非騷擾號碼的預測概率,以據此來判定所述待識別號碼是否是騷擾號碼。
步驟一中,可以通過歷史已經確認的騷擾號碼(比如通過互聯網公司獲取、或通過運營商舉報投訴系統標注的騷擾號碼等)黑名單、和白名單操作手冊來選取已確認的騷擾和非騷擾號碼,然后通過信令采集的方式從信令監測系統或A口等設備來采集呼叫事件信令話單數據、或者從BOSS采集歷史話單數據,從而獲得上述選取號碼在一段時間內的通信信息,并將其中關鍵字段數據格式有誤或關鍵字段數據存在空缺值的通信記錄進行剔除。
由于騷擾電話具有呼叫頻次高且集中分布于某一時間段的特點,同時為了進一步提高騷擾號碼識別的準實時和高效性,本發明還可以基于不同的時間粒度來分別計算用戶號碼的通信行為指標,所述時間粒度可以取值但不限于:1分鐘、5分鐘、15分鐘、30分鐘、60分鐘、180分鐘、360分鐘、720分鐘、1440分鐘,這樣,用戶號碼在一段時間內的通信行為指標可以包括有用戶在每個時間粒度下的通信行為指標、用戶號碼和用戶標識等,其中,用戶標識用于標識用戶號碼是否是騷擾號碼(例如將從黑名單中選取的號碼標識為騷擾號碼,從白名單中選取的號碼標識為非騷擾號碼)。本發明中,基于時間粒度來計算用戶號碼(包括騷擾和非騷擾號碼、以及待識別號碼)在一段時間內的通信行為指標,還可以進一步包括有:
步驟A、采集用戶連續多天的歷史話單數據,選取多個時間粒度,然后尋找用戶在每個時間粒度下的高頻通話時段,最后根據用戶在每個時間粒度下的高頻通話時段內的通信行為指標來計算用戶在每個時間粒度下的通信行為指標。
如圖2所示,步驟A還可以進一步包括有:
步驟A1、逐一提取用戶每天的話單數據;
步驟A2、讀取該天話單數據的起止時間,并計算所述起止時間所覆蓋的最大時間粒度Tmax,即從選取的多個時間粒度中挑選出其值小于所述起止時間的對應時長的最大時間粒度;
如果采集的話單數據由于丟失或其他原因而存在缺失,例如只采集到12:00---24:00之間的歷史話單數據,則本發明僅保留話單數據的起止時間內的最長時間粒度Tmax內的所有時間粒度;
步驟A3、逐一提取每個時間粒度,并判斷所提取的時間粒度是否小于或等于Tmax,如果是,則將該天話單數據的起止時間的對應時長劃分成多個連續的、并以所提取的時間粒度為時長的通信時段,然后計算用戶在每個通信時段內的通話頻次,所述用戶在每個通信時段內的通話頻次也即是所提取的時間粒度在該天的每個通信時段的通話頻次,繼續提取下一個時間粒度,直至提取完所有時間粒度;如果否,則繼續提取下一個時間粒度,直至提取完所有時間粒度;
所提取的時間粒度須小于或等于Tmax,比如Tmax=30分鐘時,則所提取的時間粒度分別為1分鐘、5分鐘、15分鐘、30分鐘,而大于Tmax的時間粒度則不再作進一步計算,當一天話單數據的起止時間為0:00--24:00,所提取的時間粒度T為30分鐘時,所劃分成的通信時段分別為:0:00--0:30、0:31--1:00、....、23:01--23:30、23:31--24:00,且按時間粒度劃分的通信時段均從本通信時段的00秒開始,至下一通信時段的前1分鐘第59秒結束;
步驟A4、判斷是否提取完所有天的話單數據?如果是,則繼續下一步;如果否,則繼續提取用戶下一天的話單數據,然后轉向步驟A2;
步驟A5、從每個時間粒度在所有天的所有通信時段的通話頻次中挑選最大值,所述最大值對應的通信時段即是用戶在該時間粒度下的高頻通信時段,也就是用戶在連續多天內呼叫頻次最高且集中的通信時段;
步驟A6、計算用戶在每個時間粒度下的通信行為指標,也即是用戶在每個時間粒度下的高頻通話時段內的通信行為指標,所述通信行為指標可以包括但不限于:呼叫頻次、被叫個數、通話時長、振鈴時長、主動釋放次數、被動釋放次數、被叫離散度、同一主叫的被叫號碼間相關系數、呼叫相同萬號段最大頻次、主叫占比(即呼出次數/呼出呼入總次數)、呼叫時間間隔標準差(計算該指標被叫號碼需3個或3個以上)等。其中,同一主叫的被叫號碼間相關系數是用戶呼叫過的所有被叫號碼相互之間存在有通話行為的個數和用戶呼叫過的所有被叫號碼總數的比值,例如,用戶A在時間粒度T的高頻通話時段內呼叫了100個被叫號碼,被叫號碼在指定時間段內(如在第1-5天的訓練期內)有4個被叫號碼B、C、D、E之間存在有通話行為(例如共存在5次有通話時長>=0的呼叫:B->C,D->E,C->B,C->D,D->C),則同一主叫(即用戶A)的被叫號碼間相關系數為:4/100;呼叫相同萬號段最大頻次是用戶呼叫過的、且屬于相同萬號段的被叫號碼最大數,萬號段是被叫號碼被去掉后4位之后的剩余號段,例如,用戶呼叫的被叫號碼的萬號段有:1395193、1395193、1390123、1390438,相同萬號段的被叫號碼數量分別為2、1、1,則呼叫相同萬號段最大頻次為2。
步驟A6中,當用戶在每個時間粒度下的通信行為指標個數為a,選取的時間粒度個數為b,則隨機森林分類模型的訓練樣本集中每個用戶的特征(即通信行為指標)數可以為:M=a*b+2。
隨機森林分類模型具有能夠處理高維屬性數據、無需做特征選擇、訓練速度快、訓練過程中可以檢測到屬性間的相互影響、可實現并行化、可輸出屬性重要程度以及分類概率和預測類別等優點,因此可以選取隨機森林分類模型用于識別騷擾號碼。
本發明中,隨機森林分類模型的基本思想是:首先,利用有放回的隨機抽樣方法從原始訓練集(N個樣本M維屬性)中抽取k組樣本,且每組樣本的樣本容量都與原始訓練集相同,均為N;其次,隨機選取m維屬性,m值小于等于總屬性維數M;然后,每次對N個樣本m維屬性生成一棵決策樹,共建立K個決策樹模型,得到K種分類結果;最后,根據K種分類結果對每個記錄進行投票表決,決定其最終分類。因此,隨機森林分類模型的構建主要有兩部分,一部分是決策樹的構建,形成決策樹森林,本發明中決策樹可以采用Gini不純度的方法,不純度越小,屬性越重要;另一部分是決策過程,采用投票表決方式輸出最優分類結果。這樣,步驟一中,將所述騷擾和非騷擾號碼及其通信行為指標形成訓練樣本集來構建隨機森林分類模型,還可以進一步包括有:
步驟11、采用隨機森林分類模型,從訓練樣本集中每個訓練樣本的M個通信行為指標中隨機選取m個通信行為指標來產生K個特征子集進行訓練,從而生成K棵決策樹,每棵決策樹包含有自身對輸入號碼所屬類別的預測概率。其中,決策樹可以采用Gini不純度的方法,不純度越小,則特征越重要。
如圖3所示,所述步驟11中,對于第k棵決策樹,k=1、2、...、K,其生成過程還可以進一步包括有:
步驟111、采用bootstrap方法從訓練樣本集S中有放回的抽取N個樣本來構成第k棵決策樹的根節點的樣本集s(k),并設定分支覆蓋樣本的最小個數為d,其中,N是訓練樣本集S的樣本數,訓練樣本集S中每個訓練樣本的特征維數(即通信行為指標個數)為M;
每顆決策樹的根節點的樣本集s(k)和訓練樣本集S的樣本數均相同;
步驟112、從M維特征中隨機提取m維指標作為第k棵決策樹的特征集,其中,m的計算公式可以是:
步驟113、從第k棵決策樹的根節點開始,根據Gini不純度最小原則,分別計算m維特征的Gini不純度:其中,IG(jk)是第k棵決策樹的第j維特征的Gini不純度,Z1是根節點的樣本集s(k)在j的特征條件下經最優二叉分隔后所產生的左節點的樣本集,Z2是根節點的樣本集s(k)在j的特征條件下經最優二叉分隔后所產生的右節點的樣本集,N(Z1)、N(Z2)分別是Z1、Z2的樣本量,Gini(Z1)、Gini(Z2)分別是Z1、Z2的Gini不純度,且Gini(Z1)(I=1或2)的計算公式還可以進一步是:i=0或1,當i=0則表示非騷擾號碼,當i=1則表示騷擾號碼,是第k棵決策樹中第j個特征條件下的Z1對應分支中,所識別的騷擾號碼或非騷擾號碼的概率;
步驟114、從m維特征的Gini不純度中選取最小值,并將最小值對應的特征作為根節點,再將該根節點分裂為左節點和右節點,然后以根節點作為限制條件,繼續計算所述根節點的m維特征的Gini不純度,并選擇其中最小值對應的特征作為根節點繼續生長,以此類推,從而形成決策樹,如果其中有一分支覆蓋樣本的個數小于d時,則設置所述分支的當前節點為葉子節點,即該節點停止生長,繼續訓練其他節點,直到所有節點都訓練過了或者被標記為葉子節點。
如圖4所示,圖1步驟二還可以進一步包括有:
步驟21、將待識別號碼在一段時間內的通信行為指標輸入隨機森林分類模型,計算每棵決策樹的每個葉子節點對待識別號碼所屬類別的預測概率:其中,i=0或1,當i=0則表示為非騷擾號碼,當i=1則表示為騷擾號碼,是第k棵決策樹的第r個葉子節點對待識別號碼屬于第i個類別的預測概率,是第k棵決策樹的第r個葉子節點中屬于第i個類別的號碼數,是第k棵決策樹的第r個葉子節點包含的號碼總數;
步驟22、計算每棵決策樹判定待識別號碼所屬類別的預測概率:其中,Pk(i)是第k棵決策樹判定待識別號碼屬于第i個類別的預測概率,Rk是第k棵決策樹的葉子節點總數;
步驟23、計算所有決策樹判定待識別號碼所屬類別的預測概率之和:其中,w(i)是所有決策樹判定待識別號碼屬于第i個類別的預測概率之和,然后從中挑選最大值,待識別號碼所屬類別即是最大值對應的類別,即當w(0)>w(1)時,則待識別號碼所屬類別為0(即非騷擾號碼),當w(0)<w(1)時,則待識別號碼所屬類別為1(即騷擾號碼)。
隨機森林分類模型隨機生成K棵決策樹,每顆決策樹包含有多個葉子節點。對于每個輸入的用戶號碼來說,通常其中有的葉子節點會判定用戶號碼為騷擾號碼,有的葉子節點會判定用戶號碼為非騷擾號碼,根據所有葉子節點對用戶號碼所屬類別的預測概率,可以獲得每棵決策樹判定用戶號碼為騷擾號碼和非騷擾號碼的概率,且每棵決策樹判定用戶號碼為騷擾號碼和非騷擾號碼的概率之和為1,例如,第1棵決策樹判定用戶號碼為騷擾號碼的概率為5/6,為非騷擾號碼的概率則是1/6,第2課決策樹判定用戶號碼為騷擾號碼的概率為2/7,非騷擾號碼的概率為5/7,.......,第K棵決策樹判定用戶號碼為騷擾號碼的概率為=3/5,非騷擾號碼的概率為2/5,那么K棵決策樹判定其為騷擾號碼的概率之和(即5/6+2/7+...+3/5)、和判定其為非騷擾號碼的概率之和(即1/6+5/7+...+2/5),如果其為騷擾號碼的概率之和大于非騷擾號碼的概率之和,則輸入號碼是騷擾號碼,反之則是非騷擾號碼。
在構建隨機森林分類模型時,決策樹個數、特征維數(即通信行為指標個數)以及決策樹的深度等值的設置都會影響到隨機森林分類模型的識別效果,為了進一步提升識別效果,本發明還可以構建多個隨機森林分類模型(決策樹個數、特征維數以及決策樹的深度的取值不同),同時還構建一個測試樣本集分別對多個隨機森林分類模型進行測試,并根據測試結果從中選擇一個最優的隨機森林分類模型。如圖5所示,本發明還可以包括有:
步驟B1、從測試樣本集中逐一提取每個測試樣本的通信行為指標,并將提取出的所有通信行為指標輸入到每個隨機森林分類模型中,從而獲得每個隨機森林分類模型對測試樣本是否是騷擾號碼的判定結果;
步驟B2、將每個隨機森林分類模型識別出的騷擾號碼與已確認的騷擾號碼(例如互聯網公司標識的騷擾號碼、運營商舉報投訴系統標注的騷擾號碼等)進行匹配,分別計算每個隨機森林分類模型的準確率和召回率;
步驟B3、根據準確率和召回率,計算每個隨機森林分類模型的識別率:其中Precision是準確率,Recall是召回率,并從所有隨機森林分類模型的識別率中挑選F最大值,所述最大值對應的隨機森林分類模型即是最優隨機森林分類模型。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的范圍之內。