異常數據自動識別方法、設備和可讀存儲介質與流程
2023-07-26 19:44:26 2
本發明涉及計算機技術,具體涉及異常數據自動識別方法、設備和可讀存儲介質。
背景技術:
隨著科技的日新月異,存儲設備的普及和性能提升,加上網際網路和物聯網的快速發展,大量的數據被儲存了起來,如工業設備數據、傳感器數據、行動裝置數據和金融數據等。從這些大量的數值型數據中找到異常點是獲得數據價值的一種重要方法。
現有技術中的異常點識別方法需要通過人為的幹涉,例如通過人工識別確定異常點的發生邊界,或確定異常發生的區間。另外,對於不同的數據來源需要設定不同異常點的識別區間;由於異常區間是人為產生和設置的,而對於不同批次、不同來源的數據需要分別設置異常區間,使得尋找異常點的工作量是很大的,而這也導致了現有方式是低效的。
技術實現要素:
鑑於上述問題,本發明提出了克服上述問題或者至少部分地解決上述問題的異常數據自動識別方法、設備和可讀存儲介質。
為此目的,第一方面,本發明提供一種異常數據自動識別方法,包括:
獲取待識別數據,若判斷獲知所述待識別數據為一維數據且非均勻分布,則獲取所述待識別數據對應的累積分布函數;
將所述待識別數據劃分為多個數據組;其中,各數據組的區間範圍根據所述累積分布函數確定;
獲取各個數據組包括數據的個數與所述待識別數據的總個數之間的比值,將小於第一預設閾值的比值所對應的數據組識別為異常數據組。
可選的,所述將所述待識別數據劃分為多個數據組包括:
在所述待識別數據對應的累積分布函數上,設置若干個折點,相鄰的兩個所述折點的連線形成一擬合折線段,相鄰的兩個所述折點之間所包括的數據形成一個數據組;
計算各擬合折線段與所述累積分布函數之間的誤差總和,若所述誤差總和在預設的誤差範圍內,則根據所述累積分布函數上設置的所述折點確定各數據組的區間範圍。
可選的,所述計算各擬合折線段與所述累積分布函數之間的誤差總和包括:
根據公式計算各擬合折線段與所述累積分布函數之間的誤差總和;其中,i為每個折點位置,d(i)為各擬合折線段與所述累積分布函數的誤差平法和,ni為i和i+1折點之間的數據個數,j為i和i+1折點之間的數據,s為各擬合折線段對應的折線函數,t為所述累積分布函數。
可選的,所述第一預設閾值為1%。
可選的,所述方法還包括:
若判斷獲知所述待識別數據為多維數據,則根據第一預設算法將多維數據處理為一維數據。
可選的,所述判斷獲知所述待識別數據為一維數據且非均勻分布包括:
根據公式計算所述待識別數據對應的kurtosis值,若所述kurtosis值大不小於第二預設閾值則確定所述一維數據為非均勻分布;其中,xi為所述待識別數據中的各個數據,為所述待識別數據的平均值,n為所述待識別數據的總個數,s為所述待識別數據對應的總體標準差。
可選的,所述第二預設閾值為2。
可選的,所述方法還包括:
獲取識別出的異常數據組和非異常數據組,根據第二預設算法確定所述異常數據組中所包括的異常數據和非異常數據區間。
第二方面,本發明提供一種計算機可讀存儲介質,其上存儲有電腦程式,該程序被處理器執行時實現上述任一所述方法的步驟。
第三方面,本發明提供一種計算機設備,包括存儲器、處理器以及存儲在所述存儲器上並可在所述處理器上執行的電腦程式,所述處理器執行所述程序時實現上述任一所述方法的步驟。
本方法對於不同批次、不同來源的數據不再需要分別設置異常區間,而是通過上述方法直接計算出異常區間,以及根據異常區間識別出異常數據點,因此可以高效的識別工業設備數據、傳感器數據、行動裝置數據和金融數據中的數值數據的異常。
前面是提供對本發明一些方面的理解的簡要發明內容。這個部分既不是本發明及其各種實施例的詳盡表述也不是窮舉的表述。它既不用於識別本發明的重要或關鍵特徵也不限定本發明的範圍,而是以一種簡化形式給出本發明的所選原理,作為對下面給出的更具體的描述的簡介。應當理解,單獨地或者組合地利用上面闡述或下面具體描述的一個或多個特徵,本發明的其它實施例也是可能的。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明的一個實施例中的方法流程圖;
圖2為本發明的一個具體實施例中獲得累積分布函數t和對應的線性函數s的示意圖。
具體實施方式
下面將結合示例性的通信系統描述本發明。
參見圖1,本發明提供一種異常數據自動識別方法,用於對接收的海量數值型數據,自動識別其中的異常點,該方法包括:
s101、獲取待識別數據,若判斷獲知所述待識別數據為一維數據且非均勻分布,則獲取所述待識別數據對應的累積分布函數;
s102、將所述待識別數據劃分為多個數據組;其中,各數據組的區間範圍根據所述累積分布函數確定;
s103、獲取各個數據組包括數據的個數與所述取待識別數據的總個數之間的比值,將小於第一預設閾值的比值所對應的數據組識別為異常數據組。所述待識別數據為數值型數據,可以理解,對於可以表示為數值型數據的待識別數據,也可使用上述方法。一維數據指的是數據是一維,可以用一維的數組表示。均勻分布(uniformdistribution)是概率統計中的術語,表示可能性相等的分布。
若判斷獲知所述待識別數據為均勻分布的,則表示該組數據中沒有異常點。
所述將所述待識別數據劃分為多個數據組,即將待識別數據分組,分組有多個;根據分組中數據的個數和總數據量,計算分組中數據佔總數據量的比值,若比值小於第一預設值,則該數組內的數據點為異常數據點,該數據組為異常數據組。第一預設值的取值是預設的,例如可以設置為1%。
本方法對於不同批次、不同來源的數據不再需要分別設置異常區間,而是通過上述方法直接計算出異常區間,以及根據異常區間識別出異常數據點,因此可以高效的識別工業設備數據、傳感器數據、行動裝置數據和金融數據中的數值數據的異常。
在本發明的一個實施例中,所述將所述待識別數據劃分為多個數據組包括:
在所述待識別數據對應的累積分布函數上,設置若干個折點,相鄰的兩個所述折點的連線形成一擬合折線段,相鄰的兩個所述折點之間所包括的數據形成一個數據組;
計算各擬合折線段與所述累積分布函數之間的誤差總和,若所述誤差總和在預設的誤差範圍內,則根據所述累積分布函數上設置的所述折點確定各數據組的區間範圍。
即在設置若干個折點時,折點要滿足的前提是使擬合折線段與所述累積分布函數之間的誤差總和在預設的誤差範圍內。設置的折點包括累計分布函數的首位兩個點。
在本發明的一個實施例中,誤差總和通過下述方法獲得:
其中,s為累計分布函數,t為擬合折線段函數(也稱為分段一次函數,本文中也簡稱為分段函數),xi為待識別數據中的數據點,待識別數據共n個。
在本發明的一些實施例中,所述計算各擬合折線段與所述累積分布函數之間的誤差總和包括:
根據誤差平方和公式(sumofthesquareddifferences,ssd),也叫差方和算法)計算各擬合折線段與所述累積分布函數之間的誤差總和e,其中,i為每個折點位置,d(i)為各擬合折線段與所述累積分布函數的誤差平方和,ni為i和i+1折點之間的數據個數,j為i和i+1折點之間的數據,s為各擬合折線段對應的折線函數,t為所述累積分布函數。
可以理解的是,若對於輸入的待識別數據為n維的數據,可選用對應的算法對輸入的n維數據進行降維,降維的方法不限於:先通過特定的算法對於每一條數據記錄進行評分,該特定的算法可為分類算法、相似度算法或似然率算法等不同的算法,計算出相應的數值(如似然率的似然度l(x|h0),從而達到將n維數據降維至一維的目的。
在本發明的一個實施例中,判斷獲知所述待識別數據為一維數據且非均勻分布包括:
根據公式計算所述待識別數據對應的kurtosis值,若所述kurtosis值不小於第二預設閾值則確定所述一維數據為非均勻分布;其中,xi為所述待識別數據中的各個數據,為所述待識別數據的平均值,n為所述待識別數據的總個數,s為所述待識別數據對應的總體標準差。在一些實施例中,第二預設閾值為2。
可以理解的是,本發明不限於使用kurtosis值判斷待識別數據是均勻分布的。
在根據上述方法獲取識別出的異常數據組和非異常數據組後,根據第二預設算法確定所述異常數據組中所包括的異常數據和非異常數據區間。第二預測算法不限於向量機、決策樹或神經網絡模型相關的算法。
在本發明的一個實施例中,方法包括:
接收n個數據點x1-xn,,x1-xn即為待識別數據;
簡化x1-xn的累積分布函數t獲得對應的線性函數s;線性函數s為分段連續函數(即擬合折線函數),且其定義區間的個數小於第四預設閾值b4;
線性函數s滿足該線性函數s與累積分布函數t之間的誤差平方總和e恰好小於第三預設閾值b3;
或線性函數s滿足:在定義區間的個數k固定的情況下,該線性函數s與累積分布函數t之間的誤差平方總和e最小。
選取線性函數s的一段函數a,函數a所對應的區間[p1,p2]內數據點即為異常數據點;
函數a滿足條件:函數a所屬的區間內,其數據點的個數與總體待識別數據的個數的比值小於第一預設閾值b1。
根據接收的數據x1-xn獲得累積分布函數t,線性函數s是對累積分布函數t的簡化(也稱為擬合),簡化後的線性函數s與累積分布函數t的誤差平方總和e,e小於第三預設閾值b3(b3即擬合折線段與所述累積分布函數之間的誤差總和在誤差範圍內)。
對於一組具體的x1-xn,其概率密度函數t和線性函數s如圖2所示。其中豎軸為概率值,橫軸代表x1-xn的取值。在一些實施例中是利用douglas-peucker線性簡化方法(douglas-peuckerlinesimplification)將累積分布函數t(圖2中的曲線),簡化為若干段線性函數(即線性函數s,也即圖2中的折線,其為連接圖2中各點的直線)。
可以理解的是,所述線性函數s滿足該線性函數s與累積分布函數t之間的誤差平方總和e恰好小於第三預設閾值b3;或線性函數s滿足與在定義區間的個數k固定的情況下,該線性函數s與累積分布函數t之間的誤差平方總和e最小。因理解的是不同算法就求解出的線性簡化函數是不同的,同一算法的不同計算機實現所求解出的線性簡化函數也可能是不同的;本文中求解累積分布函數t對應的線性函數s,為使用一段計算機實現求解累積分布函數t對應的線性函數s,在求解的過程中,當線性函數s滿足該線性函數s與累積分布函數t之間的誤差平方總和e恰好小於第三預設閾值b3,該線性函數s的求解過程結束,獲得線性函數s;或者在求解的過程中,先設定了定義區間的個數k的值,在此前提下,求解累計分布函數t對應的線性函數s,單線性函數s與累積分布函數t之間的誤差平方總和e最小時,確定求解過程結束,獲得線性函數s。
由於線性函數s是密度函數t的簡化,在圖2上它們的形狀互有重疊。在圖2中,顯示有6個折點和兩個端點,6個折點分別是線性函數s中每段函數的分界點,也即線性函數s具有7個分段區間,分別對應一段函數。即兩個相鄰點之間的區間即線性函數s的定義區間。若某一定義區間內數據點的個數小於預設值,例如第一預設閾值為5%,預設值=第一預設閾值*n,則該區間為異常區間,該區間內的點標定為數據異常點。
上述方法中第一預設閾值b1、第二預設閾值b2、第三預設閾值b3和第四預設閾值b4可以是根據經驗預設的,例如所述第四預設閾值b4為10,即對應的最多有10個定義區間,第二預設閾值b2設置為固定值,也可以是通過其他算法預測出的值,所述第一預設閾值b1為1%。
在設定上述第一預設閾值b1、第二預測閾值b2、第三預測閾值b3、第四預測閾值b4之後,在本發明的一實施例中,在步驟簡化x1-xn的累積分布函數t獲得對應的線性函數s之前,還包括:
計算x1-xn的kurtosis值,當kurtosis值大於等於第一預設閾值b1時,執行下一步。
其中xi為x1-xn中的數據,為x1-xn共n個數據的平均值,n為數據
的總個數,s為總體標準差,s的自由度為n。
第二預設閾值b2根據經驗值設置為2,通常kurtosis的值小於1.8時,即認為數據是均值分布的。
若kurtosis值大於b2時,則表示x1-xn不是均值分布的,則可能存在異常點,則執行下一步,即步驟簡化x1-xn的累積分布函數t獲得對應的線性函數s;若kurtosis值不大於b2時,則表示x1-xn是均值分布的,則不存在異常點,則不進一步計算異常點。
在對異常點的識別之前,先使用上述方法對整體數據是否是均值分布進行預判,從而降低了本方法識別異常數據的整體的計算量。
為了更準確的獲得異常數據點和正常數據點的區間,在所述選取線性函數s的函數a,函數a所對應的區間[p1,p2]內數據點即為異常數據點之後,還包括:
計算異常數據點與x1-xn中除了異常數據點之外的其他數據點之間的距離,
根據獲得的距離計算異常點與正常點之間的分界線,分界線通過擬合曲線或邊界向量點集合表示;上述正常點即x1-xn中除了異常數據點之外的其他數據點。
另一種準確識別異常數據點和正常數據點的方法是,在所述選取線性函數s的函數a,函數a所對應的區間[p1,p2]內數據點即為異常數據點之後,還包括:
接收異常數據點和x1-xn中除了異常數據點之外的其他數據點作為訓練數據,獲得用於區分異常點的向量機或決策樹或神經網絡;通過所。
在本發明的一個實施例中,累積分布函數之間的誤差平方總和為:
其中線性函數s具有k個分段,可以理解的是k是小於b4的。
i的取值為1到k;
d(i)是線性函數s與累計分布函數t在線性函數s的第i個分段對應的區間內的誤差平方和;
在線性函數s的第i個分段內(即第i個折點到第i+1個折點之間的分段),具有ni個數據點,j依次取值為ni個數據點中的一個。
可以理解的是,對於上述x1-xn是一維數據的,若對於輸入的待檢測數據為n維的數據,可選用對應的算法對輸入的n維數據進行降維,降維的方法不限於:先通過特定的算法對於每一條數據記錄進行評分,該特定的算法可為分類算法、相似度算法或似然率算法等不同的算法,計算出相應的數值(如似然率的似然度l(x|h0),從而達到將n維數據降維至一維的目的。
本文中使用的術語「確定」、「運算」和「計算」及其變型可以互換使用,並且包括任何類型的方法、處理、數學運算或技術。更具體地,這樣的術語可以包括諸如bpel的解釋規則或規則語言,其中邏輯不是硬編碼的而是在可以被讀、解釋、編譯和執行的規則文件中表示。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句「包括……」或「包含……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的要素。
儘管已經對上述各實施例進行了描述,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改,所以以上所述僅為本發明的實施例,並非因此限制本發明的專利保護範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護範圍之內。