如何利用參數(shù)和非參數(shù)方法來檢測異常值(II)

在之前的文章中颗胡,我們討論了如何利用單變量和多變量分析的方法來檢測異常值们何。接下來我們將介紹如何利用聚類方法識別多變量情形中的異常值岩遗。
顧名思義扇商,聚類方法就是將特征相似的樣本聚集在同一個(gè)類別中,因此樣本間的相似性是一個(gè)非常重要的概念宿礁,我們需要考慮如何量化樣本間的相似情況案铺。通常情況下,我們用樣本之間的距離遠(yuǎn)近來衡量其相似度窘拯,不同的聚類方法采用不同的距離測度方式來實(shí)現(xiàn)聚類的目標(biāo)红且。我們應(yīng)該著重關(guān)注一個(gè)被廣泛使用的聚類方法——K均值聚類算法。
K均值聚類算法主要是基于兩兩樣本之間的歐式距離涤姊,歐式距離是兩點(diǎn)之間的直線距離。我們還可以采用其他方法——比如馬氏距離嗤放,閔式距離和切比雪夫距離——來度量樣板間的相似性思喊,但是這些方法的缺點(diǎn)是計(jì)算量大、收斂速度較慢次酌。
給定一組樣本x1,x2,…,xn恨课,其中每個(gè)觀測值都是一個(gè)d維的向量,K均值算法的目標(biāo)是在最小化類內(nèi)離差的前提下將這n個(gè)觀測值分成 k(<=n) 組(S={S1,S2,…,Sk})岳服。換句話說剂公,該算法的目標(biāo)函數(shù)如下所示:

其中μi表示第 i 組樣本的均值。
借助上面這個(gè)目標(biāo)函數(shù)吊宋,我們可以更加直觀地介紹K均值算法的計(jì)算過程纲辽。


K均值算法的基本步驟


步驟一:聚類數(shù)目


選擇類別數(shù)目k。這是一個(gè)循環(huán)迭代的過程璃搜,我們無法提前知道應(yīng)該選擇聚成幾個(gè)類別拖吼。我們將用一個(gè)例子來說明如何選擇類別數(shù)目。


步驟二:聚類中心


從樣本中隨機(jī)抽取出k個(gè)點(diǎn)这吻,并將其定義為k個(gè)組的中心吊档。


步驟三:計(jì)算距離


分別計(jì)算所有觀測值到聚類中心的歐式距離,并將其歸到距離最近的中心類別中唾糯。假設(shè)我們有一個(gè)包含100個(gè)觀測值的數(shù)據(jù)集怠硼,我們的目標(biāo)是將其聚成5類。首先我們需要計(jì)算每個(gè)觀測值到5個(gè)中心點(diǎn)的距離移怯,然后從5個(gè)距離中篩選出距離最小值香璃,并將該樣本歸到對應(yīng)的類別中。


步驟四:重新計(jì)算類中心


接下來我們需要重新計(jì)算各個(gè)類別的中心值芋酌。某個(gè)類的中心值等于該類別中所有樣本點(diǎn)的均值增显。因此,如果某個(gè)類別中的樣本點(diǎn)由于步驟三的計(jì)算導(dǎo)致了重分配,那么相應(yīng)的類中心也會隨之改變同云。


步驟五:迭代過程


重復(fù)步驟三和步驟四直到類別中心不再改變?yōu)橹埂?br>
擬合K均值算法前需要記住一個(gè)要點(diǎn)——對變量進(jìn)行標(biāo)準(zhǔn)化處理糖权。比如,你的數(shù)據(jù)集中包含年齡炸站、身高星澳、體重、收入等無法直接比擬的變量旱易,我們需要將其標(biāo)準(zhǔn)化到同一量綱中禁偎。如果數(shù)據(jù)集中的變量單位一致但方差不同,我們也需要事先將其標(biāo)準(zhǔn)化阀坏。數(shù)據(jù)集中的變量方差不相等如暖,這相當(dāng)于對方差小的變量賦予了一個(gè)更大的權(quán)重,因此該算法傾向于對方差大的變量進(jìn)行劃分忌堂。標(biāo)準(zhǔn)化處理可以保證K均值算法同等對待所有的變量盒至。一個(gè)常用的標(biāo)準(zhǔn)化方法是——所有的觀測值減去均值然后除以標(biāo)準(zhǔn)差。
接下來士修,讓我們利用K均值聚類算法來識別數(shù)據(jù)集中的異常值枷遂。假設(shè)數(shù)據(jù)集中某一個(gè)類別的特征完全不同于其他類別,如下表所示:

上表是某個(gè) app 的部分用戶數(shù)據(jù)棋嘲。表中有 5 個(gè)變量酒唉,其中 3 個(gè)數(shù)值變量,2 個(gè)分類變量沸移。分析過程中痪伦,我們將忽略第一列變量。通常情況下阔籽,我們將 OS 變量中的 Android 賦值為 0流妻,iOS 賦值為1。但是從理論上來說笆制,我們并不建議這樣做绅这,因?yàn)閿M合K均值模型需要計(jì)算樣本之間的歐式距離,我們無法很好地量化 Android 用戶和 iOS 用戶之間的距離在辆。
舉個(gè)例子证薇,如果點(diǎn) A 和點(diǎn) B 之間的歐式距離等于 30,點(diǎn) A 和點(diǎn) C 之間的歐式距離等于 8匆篓,那么我們可以推出點(diǎn) A 和點(diǎn) C 更相似浑度。但分類變量不是由數(shù)值構(gòu)成的,而是由枚舉的方式展現(xiàn)出來鸦概,比如“香蕉”箩张、“蘋果”和“橙子”,我們無法計(jì)算這些水果之間的歐式距離,所以我們無法判斷橙子和香蕉哪個(gè)與蘋果更相近先慷∫眩基于這個(gè)原因,我們應(yīng)該采用K眾數(shù)算法來處理分類變量問題论熙,而不是K均值算法福青。
獲取聚類數(shù)目是一個(gè)反復(fù)迭代的過程。為了獲取最佳類別數(shù)目脓诡,我們可以嘗試對所有的樣本分別擬合 2-20 個(gè)類別的模型无午,然后通過評估統(tǒng)計(jì)量的表現(xiàn)情況來選取最佳類別數(shù)目。作為一名分析師祝谚,擬合多少個(gè)類別的模型都是由你決定的宪迟。但需要注意的是,你必須在建模前標(biāo)準(zhǔn)化處理數(shù)據(jù)踊跟。
我們可以利用一些統(tǒng)計(jì)量來評估最佳類別數(shù)目踩验,比如類內(nèi)平方和,類間平方和商玫,方差貢獻(xiàn)比和統(tǒng)計(jì)差異值。本文中主要采用類內(nèi)平方和來選擇最佳類別數(shù)目牡借。


類內(nèi)平方和(wss)


類內(nèi)平方和主要反映同一類別中樣本的同質(zhì)性拳昌,該統(tǒng)計(jì)量通過計(jì)算類中所有點(diǎn)與類中心之間的距離平方和來刻畫聚類效果。加總所有類的類內(nèi)平方和得到所有樣本的總離差平方和(Total wss)钠龙。
上述指標(biāo)是個(gè)相對指標(biāo)而不是絕對指標(biāo)炬藤,也就是說我們需要結(jié)合類別數(shù)目來進(jìn)一步判斷最佳類別數(shù)目。如果我們的最佳類別數(shù)目在 2 和 20 之間碴里,那么我們傾向于選擇具有最小 twss 的類別數(shù)目沈矿。

上圖展現(xiàn)了 twss 隨類別數(shù)目變化的趨勢圖,從圖中可以看出:當(dāng)類別數(shù)目大于4時(shí)咬腋,twss的下降率大大降低羹膳。理論上來說,你會傾向于選擇最小twss所對應(yīng)的類別數(shù)目根竿,但在實(shí)際應(yīng)用中這并不是一個(gè)好的方案陵像;雖然將樣本聚成 19 類時(shí)具有最小的 twss,但是分析這么多類的數(shù)據(jù)非常麻煩寇壳,我們無法達(dá)到聚類的基本要求——類內(nèi)差異小醒颖,類間差異大。綜合多方面信息壳炎,本例中我們應(yīng)該選擇的最佳類別數(shù)目為 4泞歉。你甚至可以比較不同類別數(shù)目模型之間的差異,然后再選取出最佳類別數(shù)目。

上圖中不同顏色的點(diǎn)代表不同類別中的樣本腰耙。其中第 4 類不同于其他三個(gè)類榛丢,它的標(biāo)記顏色為藍(lán)色。


聚類特征



上表給出了每個(gè)類別中觀測值的數(shù)量沟优,其中類別 4 占比最小涕滋,僅為 3.7%。
接下來讓我們看看每個(gè)類別各自的一些特征:

上表不僅給出了每個(gè)類別中各個(gè)變量的均值以及樣本的總體均值和標(biāo)準(zhǔn)差挠阁,同時(shí)還提供了一個(gè)用于衡量類均值與總體均值之間差異的統(tǒng)計(jì)量 Z-score:

其中μ代表總體均值宾肺,σ代表總體標(biāo)準(zhǔn)差。
對每個(gè)數(shù)值型變量來說侵俗,標(biāo)準(zhǔn)差越小锨用,對應(yīng)的 Z-score 越大。Z-score 的符號代表類均值高于或低于總體均值隘谣。
第 4 類的變量值與其他三個(gè)類別相差甚遠(yuǎn)增拥,比如較低的樣本個(gè)數(shù),較高的訪問量寻歧、交易值和 Z-score掌栅。
讓我們也來看看不同類別中分類變量 OS 的差異情況:

從上表中可以看出,第 4 類中 iOS用戶的比例遠(yuǎn)高于其他三組码泛,因此我們可以認(rèn)為第 4 類為異常值猾封。作為一名分析師,我們需要進(jìn)一步探索第 4 類的詳細(xì)情況噪珊,以便于更好地了解異常值的情況晌缘。
總之,我們可以利用聚類方法來識別多變量情形中的異常值痢站。除了K均值算法外還有許多聚類算法可以用于檢測異常值磷箕,但這些已經(jīng)超出了本文的討論范圍。




原文作者: Jacob Joseph
原文鏈接:https://blog.clevertap.com/how-to-detect-outliers-using-parametric-and-non-parametric-methods-part-ii/
譯者:Fibears


?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阵难,一起剝皮案震驚了整個(gè)濱河市岳枷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌多望,老刑警劉巖嫩舟,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怀偷,居然都是意外死亡家厌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門椎工,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饭于,“玉大人蜀踏,你說我怎么就攤上這事£溃” “怎么了果覆?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長殖熟。 經(jīng)常有香客問我局待,道長,這世上最難降的妖魔是什么菱属? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任钳榨,我火速辦了婚禮,結(jié)果婚禮上纽门,老公的妹妹穿的比我還像新娘薛耻。我一直安慰自己,他們只是感情好赏陵,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布饼齿。 她就那樣靜靜地躺著,像睡著了一般蝙搔。 火紅的嫁衣襯著肌膚如雪缕溉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天吃型,我揣著相機(jī)與錄音倒淫,去河邊找鬼。 笑死败玉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镜硕。 我是一名探鬼主播运翼,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兴枯!你這毒婦竟也來了血淌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤财剖,失蹤者是張志新(化名)和其女友劉穎悠夯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躺坟,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沦补,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咪橙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夕膀。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡虚倒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出产舞,到底是詐尸還是另有隱情魂奥,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布易猫,位于F島的核電站耻煤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏准颓。R本人自食惡果不足惜哈蝇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞬场。 院中可真熱鬧买鸽,春花似錦、人聲如沸贯被。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彤灶。三九已至看幼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間幌陕,已是汗流浹背诵姜。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搏熄,地道東北人棚唆。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像心例,于是被迫代替她去往敵國和親宵凌。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容