麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種針對MMORPGs游戲的異常檢測方法及裝置與流程

文檔序號:11240625閱讀:718來源:國知局
一種針對MMORPGs游戲的異常檢測方法及裝置與流程

本發(fā)明涉及計算機領(lǐng)域的外部技術(shù)數(shù)據(jù)處理,具體來講,包括機器學(xué)習(xí)里的特征變換和聚類技術(shù),并提出針對mmorpgs游戲的異常檢測方法和裝置。



背景技術(shù):

大型多人在線角色扮演游戲(multi-useronlinerole-playinggames—mmorpgs)為玩家提供一個完整的虛構(gòu)世界,并支持打怪、買裝備、交易等行為,擁有豐富的游戲體驗。然而隨著游戲玩家數(shù)量的擴大,也導(dǎo)致游戲外掛的泛濫。外掛通過程序代替人來玩游戲,以牟利為目的實現(xiàn)自動化賺錢、升級,和真人玩家發(fā)生交易。這些外掛通常能大批量模擬真人玩家的行為,

并且嚴重破壞游戲的經(jīng)濟系統(tǒng),進而造成游戲運營商的經(jīng)濟損失。

目前最常用的外掛檢測方法是客戶端檢測,比如在游戲客戶端嵌入一個監(jiān)聽異常線程的程序,一旦發(fā)現(xiàn)玩家有作弊現(xiàn)象,立刻采取諸如封停賬號等手段進行反外掛回應(yīng)。這種方法在游戲廠商之間應(yīng)用最為廣泛。也有采用在客戶端進行驗證碼驗證或者人機測試的方法進行外掛判定的,這種手段具有一定效果,但對用戶體驗和游戲流暢性影響很大。如今出現(xiàn)了很多的工作室外掛,它們具有大批量并行作弊,隱藏自身線程等功能,可以避開客戶端檢測。

隨著機器學(xué)習(xí)技術(shù)的日新月異和數(shù)據(jù)驅(qū)動業(yè)務(wù)的普及,通過日志在后臺對玩家行為進行數(shù)據(jù)挖掘,從而檢測出異常玩家的方法得到了更多的關(guān)注,也就是服務(wù)器端檢測。

這些研究的著眼點通常集中在三個方面:軌跡移動,社交屬性,以及行為特征。fps游戲擁有玩家軌跡日志,所以從熵的角度對軌跡點隨機性進行解釋,發(fā)現(xiàn)正常人類玩家的熵值要高于機器人,最后從基于軌跡序列的馬爾科夫模型上,把軌跡相異度構(gòu)造成特征來訓(xùn)練分類器。聊天、交易等社交行為往往可以在大型在線游戲里扮演重要的角色,因為多數(shù)外掛開發(fā)者的目的是為了自動高效地獲取金錢,不會在社交上花費過多精力,因此有研究人員從這個角度進行異常檢測的探索,比如將特征中心度定義為此節(jié)點在整個社交關(guān)系圖里的影響力,以此反映每個角色在游戲里的社交趨勢,以此作為分類器的訓(xùn)練依據(jù)。行為特征分析是研究人員關(guān)注最多的,所以有人提出過針對mmorpgs游戲,將不同的操作抽象為“戰(zhàn)斗”,“防守”等技能,從而構(gòu)造出特征向量。因為人的操作通常包含大量的不確定性,而外掛程序會顯示出一定的規(guī)律性,或是“趨向性”。于是,很多學(xué)者采用了“熵”來對玩家的操作特征進行分析,當熵值越小,代表操作的不純度越低,意味著此時玩家只對少數(shù)事件感興趣,那么機器人的檢測命中率較高。由于行為日志天然的時序特點,從時序數(shù)據(jù)的角度,對定長操作序列進行評分,序列在異常數(shù)據(jù)集里出現(xiàn)越多,評分越高,根據(jù)這個指標對每個角色的機器人概率進行評分,從而提取出可以反映主要特征的操作度量,然后依據(jù)這些度量進行非監(jiān)督式學(xué)習(xí)。

如上所述,現(xiàn)有的基于客戶端和服務(wù)器端的異常檢測手段都具有各自的弊端,或者因為識別不準而影響玩家操作體驗,或者針對具體游戲的具體行為進行定制化檢測,所以檢測模型的著眼點過于片面,當外掛或是游戲發(fā)生變化時則原先的檢測手段容易失效,或者需要手工對玩家行為進行標記,從而產(chǎn)生大量的人力工作,不能達到自動化檢測的效果。



技術(shù)實現(xiàn)要素:

本發(fā)明要解決現(xiàn)有mmorpgs外掛異常檢測識別不準,或者檢測過于片面,檢測手段容易失效,以及需要手工標記導(dǎo)致大量人力工作,不能達到自動化檢測的效果,為此提供本發(fā)明的一種針對mmorpgs游戲的異常檢測方法及裝置。本方法與裝置對所述檢測效果好。

本發(fā)明采用的技術(shù)方案為一種針對mmorpgs游戲的異常檢測方法及裝置。

所述一種對mmorpgs游戲的無監(jiān)督異常檢測方法由定長向量構(gòu)造和二次聚類構(gòu)成;

所述定長向量構(gòu)造為:

(1).采用四元組將玩家的每次事件映射到“玩家id-時間戳-操作id-參數(shù)”四維空間,一種對mmorpgs游戲的無監(jiān)督異常檢測方法表示為e=(u,t,m,p),其中u表示玩家id,t表示時間戳,m表示作為類別型變量的操作代碼,p表示操作參數(shù),以u為鍵把每個玩家的全量事件進行聚合,從而把之前的數(shù)據(jù)粒度從單個事件提升到用戶粒度,以升級為切分時間點,把玩家序列(u,seq)切分為等級序列(u,{seql}),對每個等級的序列seql統(tǒng)計操作頻率(u,{seql}={mij,cij});其中mij表示玩家u在第i個等級下,第j個操作的代碼,cij表示其的出現(xiàn)頻率;

(2).對所有用戶按同一等級提取事件mij的頻率,事件頻率集合表示為{cu},對每個事件的頻率進行歸一化變換,100(cu-cmin)/(cmax-cmin);

(3).按等級取所有玩家操作id并集,利用此并集對每名玩家的操作進行相同長度的擴展,使每名玩家的向量都被擴展為固定長度,對齊后在向量里拿掉操作id,得到數(shù)值型向量;

(4).以等級為單位按列聚類,并按照等級取聚類效果最好的k個事件,實現(xiàn)降維,按列聚類的簇數(shù)量不小于3;

所述二次聚類,第一次取簇數(shù)量大于3,把玩家分成一個外掛簇和多個正常簇,所有有關(guān)準確率和召回率的評價根據(jù)聚類里的監(jiān)督式評估獲得,通過外部標簽評價聚類效果;第二次是對第一次聚類召回率最高的簇進行k=2的聚類,對所述游戲異常日志數(shù)據(jù)作檢測。

所述檢測裝置,由以下部件構(gòu)成:

(1).日志離散化模塊,用于采集游戲服務(wù)器端的原始日志,并將數(shù)據(jù)轉(zhuǎn)換成玩家的操作序列頻率值,再按等級粒度進行時間序列離散化,獲得每名玩家的等級操作序列;

(2).meanshift模塊,以原始游戲日志作為輸入,將原始數(shù)據(jù)構(gòu)造為以操作為行,各級頻率為維度的特征集,采用meanshift算法對此特征集進行聚類,算法收斂后獲得的簇數(shù)目作為輸出;

(3).連接所述日志離散化模塊輸出端的歸一化模塊,該模塊用于對之前的操作序列按照等級縱向歸一化,把事件頻率值轉(zhuǎn)換為在當前等級下的操作水平,每個玩家在每個等級下保留的事件數(shù)量,根據(jù)meanshift模塊的輸出進行確定;

(4).連接所述歸一化模塊輸出端的降維模塊,將歸一化模塊產(chǎn)生的數(shù)據(jù)集按等級和操作取并集,把每個等級下的k個事件進行擴展,去掉日志離散化模塊里的操作代碼部分的特征,按列聚類,將聚類效果最好的k個維度作為當前等級區(qū)分度最好的k個事件,使所有玩家對齊;

(5).連接所述降維模塊輸出端的一次聚類模塊,使用kmeans算法對降維模塊處理過的數(shù)據(jù)集進行訓(xùn)練,其中有10%的外掛是被標記過的,把收斂后的結(jié)果按照有監(jiān)督的聚類評估方法,和之前投入的10%帶標簽數(shù)據(jù)進行評估,選擇召回率最高的簇進行二次聚類;

(6).二次聚類模塊,對所述一次聚類模塊的結(jié)果進行k=2的二次聚類,依然根據(jù)帶標簽的外掛進行有監(jiān)督評估,選擇召回率較高的簇作為異常檢測的結(jié)果返回;

(7).一次聚類模塊之前的模塊,負責(zé)對數(shù)據(jù)的特征變換。

本發(fā)明中,定長向量的構(gòu)造——

從rpg游戲里提取的玩家序列,可以表示為s={e1,e2,e3...},ei表示第i個時間點發(fā)生的事件。對于這類數(shù)據(jù)而言,最大的難點在于每名用戶的序列既無法按照時間對齊,也不是定長,所以不能直接進行模型訓(xùn)練。所以為了后面學(xué)習(xí)算法的需要,本方法主要將非結(jié)構(gòu)化、變長、不對齊的玩家日志數(shù)據(jù)變換為定長、對齊的向量,并在后續(xù)的聚類算法里達到了非常好的效果。

1.基于等級劃分的不定長事件頻率向量

原始日志采集于游戲服務(wù)器,混合著海量玩家的操作日志,以文本形式保存,所以需要進行數(shù)據(jù)結(jié)構(gòu)化的操作。基于后續(xù)建模的需要,這里采用一個四元組,將玩家的每次事件表示為e=(u,t,m,p),其中u表示玩家id,t表示時間戳,m表示操作代碼(一般作為類別型變量),p表示操作參數(shù)。

這種表示下的玩家序列依然存在時序不對齊等缺陷,所以需要對時間進行離散化。這里選擇了角色等級,因為在rpg游戲里這個屬于角色屬性一部分的概念廣泛存在,玩家通過參與打怪、做任務(wù)來積攢經(jīng)驗、金錢,獲得等級提升。以u為鍵可以把每個玩家的全量事件進行聚合,從而把之前的數(shù)據(jù)粒度從單個事件提升到用戶粒度。每條向量(u,seq)可以表示為用戶u和他不定長的操作序列seq。按照等級對seq進行切分,可以獲得(u,{seql})。

對于等級序列,為了進一步提取有效信息,采用事件頻率的方法進行變換,得到seql={mij,cij},mij表示玩家u在第i個等級下,第j個操作的代碼,cij則表示其的出現(xiàn)頻率。于是用戶-等級信息變換為(u,{seql}={mij,cij})。

2.按等級歸一后的不對齊定長向量(帶類別變量)

最為特征變換最常用的方法,歸一化可以有效地去量綱。這里對事件頻率cij進行基于等級的歸一化,即對某一等級下的所有用戶,提取事件mij的頻率。按照等級i提取的事件j可以表示為{cu},即用戶u被記錄的該事件頻率,cmin=min(cu),cmax=max(cu),歸一化采用

100(cu-cmin)/(cmax-cmin)

進行變換。因為同樣的事件在不同的等級下頻率變化范圍可能相差很大,所以針對k-means這種基于向量歐式距離的聚類方法而言,可能較高等級高頻出現(xiàn)的事件會對向量距離產(chǎn)生更大的影響,而一些低頻、偶然卻具有很好的異常區(qū)分度的事件,反而不易產(chǎn)生影響。所以列歸一化可以消除等級之間的量綱差,保留偶然事件對向量長度的影響,而進行100倍的縮放可以放大后續(xù)聚類降維時的評價指標。為了保留每個玩家-等級下最有代表性的事件,通過設(shè)定top值從每個等級的序列seql里選取歸一化指標從大到小的top個事件,這樣每名玩家的向量都由l*top個事件構(gòu)成。top值通過操作向量的meanshift均值漂移算法自動確定,無需人為給定。

3.按等級取并集后的對齊向量

經(jīng)過第二步的變換,每個人等級序列里的頻率經(jīng)過了歸一化縮放,但由于向量里依然帶著操作id,所以仍需要解決事件對齊的問題,從而可以在向量里去掉操作id這種類別型變量,以便使用基于歐式空間的聚類方法。這里采用按等級,縱向取所有玩家操作id并集的方法,利用此并集對每名玩家的操作進行相同長度的擴展。這樣每名玩家的向量都被擴展為固定長度,對齊后可以在向量里拿掉操作id,于是得到數(shù)值型向量。

4.按列聚類,以信息增益為降維指標

在之前得到的數(shù)值型向量的基礎(chǔ)上,已經(jīng)可以直接拿來進行聚類。假如每個等級取事件交集平均可以擴展為100個事件,那50個等級就需要5000維向量來對原始序列進行表示,而對這種稀疏、高維空間的向量,以往適用于普通集合的聚類算法,由于高維空間下的距離相似度和低維空間的定義并不相同,所以必須進行降維。基于這種考慮,本方法以事件為單位按列聚類,并在每個等級范圍內(nèi)取聚類效果最好(信息增益)的k個事件,實現(xiàn)降維。

這樣得到的向量,既通過玩家等級保留了量化的玩家時序操作信息,也實現(xiàn)了列的對齊,降維保證后續(xù)聚類不會在高維稀疏空間進行,同時降維后的向量保留了區(qū)分度盡量大(信息增益較大)的事件維度,盡可能確保判別外掛玩家信息的充分性。

無監(jiān)督的異常檢測——

外掛的生成通常由程序控制,所以不可避免這些玩家在操作頻率上容易產(chǎn)生相似性,即某一種外掛可以看做一類。而正常玩家則因為彼此之間天然的差異性,往往存在多個類別。這樣基于聚類的無監(jiān)督學(xué)習(xí)算法可以很好地對這些玩家進行區(qū)分。

1.第一次聚類

為了從混入外掛的數(shù)據(jù)里把異常檢測出來,并且盡量提高外掛簇的準確率,k均值算法里簇數(shù)量k>3。在針對一種外掛的前提下,這種方法能夠把玩家聚類成一個外掛簇和多個正常簇。這種區(qū)分結(jié)果的意義在于,前者對應(yīng)外掛玩家,后者則和現(xiàn)實中風(fēng)格不同的正常玩家對應(yīng)。

在玩家數(shù)據(jù)集中需要混入少量帶標簽的外掛用戶,用來對聚類效果進行指示和評價。對于訓(xùn)練結(jié)果,可以根據(jù)帶標簽用戶的分布計算各個簇的召回率,選擇召回率最高的簇作為第二次聚類的輸入。這種簇混合了已知外掛,未知外掛和正常用戶,二次聚類可以做進一步區(qū)分。

聚類算法如k均值的優(yōu)化目標函數(shù)并不能保證全局最優(yōu),所以一般不能一次性聚類出區(qū)分度最大的結(jié)果。

2.第二次聚類

二次聚類的目的是選出具有進一步區(qū)分潛力的簇,在原始數(shù)據(jù)的子集上再進行一次k=2的聚類,獲得準確率的大幅提升。k均值算法使用的目標函數(shù)為平方誤差和

sse是一個非凸函數(shù),所以不能保證找到全局最優(yōu)解,只能確保局部最優(yōu),所以直接用k=6進行聚類的結(jié)果和k=5+1進行聚類的結(jié)果不一定相同。

簇的選擇依據(jù)為第一次聚類后的各簇的召回率,對召回率最高的簇進行二次聚類,這類似于在k均值聚類的結(jié)果上進行一次二分聚類。這種做法本質(zhì)上是為了解決局部收斂的問題,通過一次監(jiān)督評價選擇有分離潛力的簇再進行一次聚類,效果往往好于直接使用較大的k進行聚類,在保證外掛召回率不會有太大損失的基礎(chǔ)上,也可以有效提升識別準確率。

之前混入的帶標簽外掛用戶的目的在于為聚類提供方向,最后結(jié)果通過帶標簽的外掛用戶進行指示,召回率較高的簇代表嫌疑度最高的簇,可以判定為外掛簇。

本發(fā)明一種針對mmorpgs游戲的異常檢測裝置——

包括:

日志離散化模塊,用于將游戲服務(wù)器端的原始日志按照給定的檢測時間范圍進行采集,通過文本處理方法將非結(jié)構(gòu)化的log數(shù)據(jù)轉(zhuǎn)換成玩家的操作序列頻率值,然后按照等級粒度進行時間序列離散化,獲得每名玩家的等級操作序列,每個操作包含(操作代碼,頻率)二元特征;

歸一化模塊,與所述日志離散化模塊輸出端連接,用于對之前的操作序列按照等級縱向歸一化,即把事件頻率值轉(zhuǎn)換為在當前等級下的操作水平。每個玩家在每個等級下保留的事件數(shù)量,根據(jù)meanshift模塊的輸出進行確定;

meanshift模塊,將原始數(shù)據(jù)構(gòu)造為以操作為行,各級頻率為維度的特征集,采用meanshift算法對此特征集進行聚類,算法收斂后獲得的簇數(shù)目作為輸出;

降維模塊,與所述歸一化模塊輸出端連接,將歸一化模塊產(chǎn)生的數(shù)據(jù)集按等級和操作取并集,把每個等級下的k個事件進行擴展,這樣每個玩家的序列都被擴展并可以按列對齊,去掉日志離散化模塊里的操作代碼部分的特征,按列聚類,根據(jù)信息增益指標在每個等級下保留k個事件,即聚類效果最好的k個維度作為當前等級區(qū)分度最好的k個事件,將所有玩家對齊;

一次聚類模塊,與所述降維模塊輸出端連接,使用kmeans算法對降維模塊處理過的數(shù)據(jù)集進行訓(xùn)練,其中有10%的外掛是被標記過的,把收斂后的結(jié)果按照有監(jiān)督的聚類評估方法,和之前投入的10%帶標簽數(shù)據(jù)進行評估,選擇召回率最高的簇進行二次聚類;

二次聚類模塊,對一次聚類的結(jié)果進行k=2的二次聚類,依然根據(jù)帶標簽的外掛進行有監(jiān)督評估,選擇召回率較高的簇作為異常檢測的結(jié)果返回;

一次聚類模塊之前的模塊,負責(zé)對數(shù)據(jù)的特征變換,這種變換方法并不針對具體的游戲,或者具體的操作,所以本質(zhì)上是一種在mmorpgs里較為通用的特征構(gòu)造方法,構(gòu)造過程充分符合其內(nèi)在規(guī)則,并且可以保證一次聚類的結(jié)果可以得到召回率較高的簇,二次聚類需要負責(zé)的就是對這個簇進行一次“提純”,最后獲得的外掛簇就是通過這個無監(jiān)督的異常檢測框架學(xué)習(xí)出來的。

附圖說明

圖1是k均值模型二次聚類的準確率;

圖2是二分k均值模型二次聚類的準確率;

圖3是k均值模型二次聚類的召回率;

圖4是二分k均值模型二次聚類的召回率;

圖5異常檢測方法流程圖;

圖6本發(fā)明的裝置結(jié)構(gòu)示意圖。

具體實施方式

一種針對mmorpgs游戲的異常檢測方法,具體為:

1.構(gòu)造定長時序向量

根據(jù)之前描述的向量構(gòu)造方法,原始日志經(jīng)過了事件級,用戶-等級,用戶級,列歸一化用戶級四個層次的離散化,實現(xiàn)把非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換成結(jié)構(gòu)化、對齊的定長時序向量。

階段1:原始日志離散化,事件ei=(u,t,m,p)。把玩家在游戲里的每次操作映射為“玩家id-時間戳-操作id-參數(shù)”四維空間里的一個點。原始日志中的數(shù)據(jù)以非結(jié)構(gòu)化文本的形式存在,引入四元組可以對玩家的最小動作進行結(jié)構(gòu)化的抽象。

階段2:按玩家聚合事件,得到玩家操作序列(uj,{ei}j),即玩家uj及其長度為i的事件軌跡{ei}j。由于原始日志不一定以時序進行排列,所以進行聚合后需要做額外的排序工作,以獲得沿時間軸分布的玩家操作序列。

玩家列表并不包含標簽信息,即待識別的玩家。根據(jù)目標外掛類型,需要混入少量(10%)的已知同類型外掛,來評估聚類結(jié)果,并對二次聚類的方向進行干預(yù)。

階段3:對玩家操作軌跡進行等級切分,得到玩家-等級序列(uj,{li}j),其中l(wèi)i表示玩家j的第i等級的操作序列。這里為了后續(xù)按列對齊,需要設(shè)定全局的等級范圍rl,即i=1,2,3...rl。這樣對于階段2得到的不定長、不對齊的事件序列,已經(jīng)在等級數(shù)量和次序上得到了對齊。

階段4:對玩家-等級序列提取操作頻率,即事件序列組成的{li}j變換為{mi,ci}j,即將之前的li={e1,e2,e3...}變換為{m1,c1,m2,c2,m3,c3...}。

階段5:按等級歸一化,得到(uj,{mi,ci}scaled)序列。歸一化時根據(jù)之前提到的方法,對按列提取的事件頻率fm={c1,c2,c3...},對于頻率ci,歸一化值為100(ci-cmin)/(cmax-cmin)。于是階段4得到的向量里的每個事件的頻率,都被轉(zhuǎn)換成了縮放后的歸一化值。為了去掉影響較小的事件,做初步的降維,每級保留歸一化值最高的c個事件。

對于cmax=cmin的情況,表示對于該事件,所有玩家出現(xiàn)的次數(shù)都一樣(比如升級),則按照100*1計算。按列歸一化保證了事件的頻率不受所在等級、事件類型(獲取金錢等高頻事件,或拜師等低頻事件)的影響,通過線性縮放量化玩家行為和其他玩家相比的權(quán)重。

c的確定需要對每個操作ek構(gòu)造其rl范圍內(nèi)的平均歸一值,然后對所有的操作輸入給meanshift算法進行學(xué)習(xí),收斂后簇的數(shù)量作為c的取值。

階段6:降維。由階段5提取的向量依然存在事件不對齊的問題,所以首先通過按等級取事件并集,并對每條向量進行擴展的方法,使不同玩家c*rl個事件無法對齊的問題得到解決。隨后按列并行聚類,每級保留簇信息增益最大的c列,降維后的向量依然為c*rl維。此時得到的(uj,{ci}scaled)aligned序列即降維后對齊的向量。這里選擇的列聚類的k值必須大于等于3,取并后的列向量至少存在三種簇,即正常玩家,異常玩家和因為并集擴展導(dǎo)致的0值。實驗證明k取5時,在目標樣本下可以收獲較好的訓(xùn)練效果。

聚類的信息增益可以表示為

δinfo=entropydata-entropyclusrer

其中m表示特征總數(shù),ml表示標簽為l的特征數(shù)量,mc表示第c個簇的特征數(shù)量。

由于階段6產(chǎn)生的向量全為數(shù)值型變量,所以除了可以用在k均值聚類,也可以用在其他的聚類算法上。降維之前階段5產(chǎn)生的歸一化向量,由于沒有對齊所以依然帶著類別型變量(操作id)。它雖然不能直接用于歐式空間的聚類,但可以進行支持自定義相似度/相異度的聚類模型,如凝聚層次聚類。在帶有標簽的情況下,則可以應(yīng)用在諸如決策樹、gbdt等支持類別變量的分類器上。

所以在本發(fā)明的構(gòu)造向量階段,除了最后產(chǎn)生的適用于二次聚類的向量,作為中間結(jié)果的向量也可用于其他的分類和聚類模型。

2.二次聚類及監(jiān)督式評估

在向量構(gòu)造完成后,進入模型訓(xùn)練和評估階段。本方法通過二次聚類,實現(xiàn)了召回率和準確率的層次性提升,在利用外部真值進行監(jiān)督式評估后,獲得了良好的異常檢測效果。

第一次聚類:此時訓(xùn)練集來自方法1階段6里構(gòu)造出的定長時序向量。為了檢測第一次聚類的效果,簇的數(shù)量選擇3到6。聚類監(jiān)督式評估的方法,通過外部標簽可以引入面向分類的度量,如熵、純度、準確率、召回率和f度量。簇i關(guān)于類j準確率

其中mi是簇i中對象的個數(shù),mij是簇i中類j的對象個數(shù)。簇i關(guān)于類j召回率

其中mj是類j的對象個數(shù)。

通過實驗可以看出,k從3到6變化時,不論是k均值算法還是二分k均值算法,總有一個簇的召回率能達到90%90%。這說明在之前向量變換的基礎(chǔ)上,初次聚類可以達到將大多數(shù)外掛用戶聚到一個簇里的目的。

第二次聚類:二次聚類選擇第一次聚類后召回率最高的簇進行。從實驗結(jié)果里看出,召回率最高的簇準確率并不高,意味著它還有進一步聚類的空間,所以此時單獨對這個簇進行聚類,可以在保證召回率穩(wěn)定的前提下,準確率得到大幅提升。

實驗數(shù)據(jù),等級數(shù)為1-40級,meanshift聚類結(jié)果為5個事件,總數(shù):外掛數(shù)=38793:5043,5043取10%作為已知外掛,兩次聚類模型一致(比如第一次采用k均值聚類,第二次也采用同一個模型)。圖1-圖4為第一次聚類簇數(shù)量從3到6的二次聚類監(jiān)督評估結(jié)果。

表1k=3時k均值和二分k均值二次聚類結(jié)果

表2k=4時k均值和二分k均值二次聚類結(jié)果

表3k=5時k均值和二分k均值二次聚類結(jié)果

表4k=6時k均值和二分k均值二次聚類結(jié)果

一種針對mmorpgs游戲的異常檢測裝置,參見圖6,其組成為:

日志離散化模塊,用于將游戲服務(wù)器端的原始日志按照給定的檢測時間范圍進行采集,通過文本處理方法將非結(jié)構(gòu)化的log數(shù)據(jù)轉(zhuǎn)換成玩家的操作序列頻率值,然后按照等級粒度進行時間序列離散化,獲得每名玩家的等級操作序列,每個操作包含(操作代碼,頻率)二元特征;

歸一化模塊,與所述日志離散化模塊輸出端連接,用于對之前的操作序列按照等級縱向歸一化,即把事件頻率值轉(zhuǎn)換為在當前等級下的操作水平。每個玩家在每個等級下保留的事件數(shù)量,根據(jù)meanshift模塊的輸出進行確定;

meanshift模塊,將原始數(shù)據(jù)構(gòu)造為以操作為行,各級頻率為維度的特征集,采用meanshift算法對此特征集進行聚類,算法收斂后獲得的簇數(shù)目作為輸出;

降維模塊,與所述歸一化模塊輸出端連接,將歸一化模塊產(chǎn)生的數(shù)據(jù)集按等級和操作取并集,把每個等級下的k個事件進行擴展,這樣每個玩家的序列都被擴展并可以按列對齊,去掉日志離散化模塊里的操作代碼部分的特征,按列聚類,根據(jù)信息增益指標在每個等級下保留k個事件,即聚類效果最好的k個維度作為當前等級區(qū)分度最好的k個事件,將所有玩家對齊;

一次聚類模塊,與所述降維模塊輸出端連接,使用kmeans算法對降維模塊處理過的數(shù)據(jù)集進行訓(xùn)練,其中有10%的外掛是被標記過的,把收斂后的結(jié)果按照有監(jiān)督的聚類評估方法,和之前投入的10%帶標簽數(shù)據(jù)進行評估,選擇召回率最高的簇進行二次聚類;

二次聚類模塊,對一次聚類的結(jié)果進行k=2的二次聚類,依然根據(jù)帶標簽的外掛進行有監(jiān)督評估,選擇召回率較高的簇作為異常檢測的結(jié)果返回;

一次聚類模塊之前的模塊,負責(zé)對數(shù)據(jù)的特征變換,這種變換方法并不針對具體的游戲,或者具體的操作,所以本質(zhì)上是一種在mmorpgs里較為通用的特征構(gòu)造方法,構(gòu)造過程充分符合其內(nèi)在規(guī)則,并且可以保證一次聚類的結(jié)果可以得到召回率較高的簇,二次聚類需要負責(zé)的就是對這個簇進行一次“提純”,最后獲得的外掛簇就是通過這個無監(jiān)督的異常檢測框架學(xué)習(xí)出來的。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 兴义市| 新巴尔虎左旗| 荥经县| 郸城县| 永登县| 荆州市| 手机| 新和县| 洪洞县| 高密市| 巩留县| 龙胜| 黄梅县| 泰宁县| 广宗县| 武城县| 乌什县| 清丰县| 红安县| 阿拉善盟| 新津县| 余江县| 上虞市| 临江市| 泰顺县| 靖远县| 墨竹工卡县| 柳州市| 阳信县| 大连市| 高台县| 旬阳县| 山西省| 海盐县| 临西县| 广汉市| 华池县| 务川| 嵩明县| 嘉兴市| 晋江市|