R語言數據挖掘實戰系列(5)

R語言數據挖掘實戰系列(5)——挖掘建模

一、分類與預測

分類和預測是預測問題的兩種主要類型,分類主要是預測分類標號(離散屬性),而預測主要是建立連續值函數模型,預測給定自變量對應的因變量的值。

1.實現過程

(1)分類

分類是構造一個分類模型,輸入樣本的屬性值,輸出對應的類別,將每個樣本映射到預先定義好的類別。分類模型建立在已有類標記的數據集上,模型在已有樣本上的準確率可以方便地計算,所以分類屬於有監督的學習。

(2)預測

預測是建立兩種或兩種以上變量間相互依賴的函數模型,然後進行預測或控制。

(3)實現過程

分類模型分爲兩步:第一步是學習步,通過歸納分析訓練樣本集來建立分類模型得到分類規則;第二步是分類步,先用已知的測試樣本集評估分類規則的準確率,如果準確率是可以接受的,則使用該模型對未知類標號的待測樣本集進行預測。

預測模型的實現也分爲兩步:第一步是通過訓練集建立預測屬性(數值型的)的函數模型,第二步在模型通過檢驗後進行預測或控制。

2.常用的分類與預測算法

表5-1 常用分類與預測算法簡介

算法名稱算法描述
迴歸分析迴歸分析是確定預測屬性(數值型)與其他變量間相互依賴的定量關係最常用的統計學方法。包括線性迴歸、非線性迴歸,Logistic迴歸、嶺迴歸、主成分迴歸、偏最小二乘迴歸等模型
決策樹決策樹採用自頂向下的遞歸方式,在內部節點進行屬性值的比較,並根據不同的屬性值從該節點向下分支,最終得到的葉節點是學習劃分的類
人工神經網絡人工神經網絡是一種模仿大腦神經網絡結構和功能而建立的信息處理系統,表示神經網絡的輸入與輸出變量之間的模型
貝葉斯網絡貝葉斯網絡又稱信度網絡,是Bayes方法的擴展,是目前不確定知識表達和推理領域最有效的理論模型之一
支持向量機支持向量機是一種通過某種非線性映射,把低維的非線性可分轉化爲高維的線性可分,在高維空間進行線性分析的算法

3.迴歸分析


表5-2 常用的迴歸模型分類


迴歸模型名稱使用條件算法描述
線性迴歸因變量與自變量是線性關係對一個或多個自變量和因變量之間的線性關係進行建模,可用最小二乘法求解模型係數
非線性迴歸因變量與自變量之間不都是線性關係對一個或多個自變量和因變量之間的非線性關係進行建模。如果非線性關係可以通過簡單的函數變換轉化爲線性關係,用線性迴歸的思想求解;如果不能轉化,用非線性最小二乘方法求解
Logistic迴歸因變量一般有1和0(是否)兩種取值是廣義線性迴歸模型的特例,利用logistic函數將因變量的取值範圍控制在0和1之間,表示取值爲1的概率
嶺迴歸參與建模的自變量之間具有多重共線性是一種改進最小二乘估計的方法
主成分分析參與建模的自變量之間具有多重共線性主成分迴歸是根據主成分分析的思想提出來的,是對最小二乘法的一種改進,它是參數估計的一種有偏估計。可以消除自變量之間的多重共線性

4.決策樹


決策樹是一種樹狀結構,它的每一個葉節點對應着一個分類,非葉節點對應着在某個屬性上的劃分,根據樣本在該屬性上的不同取值將其劃分爲若干個子集。對於非純的葉節點,多數類的標號給出到達這個節點的樣本所屬的類。構造決策樹的核心問題是在每一步如何選擇適當的屬性對樣本做拆分。對於一個分類問題,從已知類標記的訓練樣本中學習並構造出決策樹是一個自上而下、分而治之的過程。

表5-3 決策樹算法分類


決策樹算法算法描述
ID3算法其核心是在決策樹的各級節點上,使用信息增益方法作爲屬性的選擇標準,來幫助確定生成每個節點時所採用的合適屬性
C4.5算法C4.5決策樹生成算法相對於ID3算法的重要改進是使用信息增益率來選擇節點屬性。C4.5算法可以克服ID3算法存在的不足:ID3算法只適用於離散的描述屬性,而C4.5算法既能夠處理離散的描述屬性,也可以處理連續的描述屬性
CART算法CART決策樹是一種十分有效的非參數分類和迴歸方法,通過構建樹、修剪樹、評估樹來構建一個二叉樹。當終節點是連續變量時,該樹爲迴歸樹;當終節點是分類變量時,該樹爲分類樹


5.人工神經網絡

人工神經網絡(ANN)是模擬生物神經網絡進行信息處理的一種數學模型。人工神經元是人工神經網絡操作的基本信息處理單位。人工神經網絡的學習也稱爲訓練,指的是神經網絡在受到外部肩頸的刺激下調整神經網絡的參數,使神經網絡以一種新的方式對外部環境做出反應的一個過程。在分類與預測中,人工神經網絡主要使用有指導的學習方式,即根據給定的訓練樣本,調整人工神經網絡的參數以使網絡輸出接近於已知的樣本類標記或其他形式的因變量。

神經網絡訓練是否完成常用誤差函數(也稱目標函數)E來衡量。當誤差函數小於某一個設定的值時即停止神經網絡的訓練。

使用人工神經網絡模型需要確定網絡連接的拓撲結構、神經元的特徵和學習規則等。常用的實現分類和預測的人工神經網絡算法如下:

表5-4 人工神經網絡算法


算法名稱算法描述
BP神經網絡
BP神經網絡是一種按誤差逆傳播算法訓練的多層前饋網絡,學習算法是δ學習規則,是目前應用最廣泛的神經網絡模型之一
LM神經網絡LM神經網絡是基於梯度下降法和牛頓法結合的多層前饋網絡,特點:迭代次數少,收斂速度快,精確度高
RBF徑向基神經網絡RBF徑向基神經網絡能夠以任意精度逼近任意連續函數,從輸入層到隱含層的變換是非線性的,而從隱含層到輸出層的變換是線性的,特別適合於解決分類問題
FNN模糊神經網絡FNN模糊神經網絡是具有模糊權係數或者輸入信號是模糊量的神經網絡,是模糊系統與神經網絡相結合的產物,它匯聚了神經網絡與模糊系統的有點,集聯想、識別、自適應及模糊信息處理於一體
GMDH神經網絡GMDH網絡也稱爲多項式網絡,它是前饋神經網絡中常用的一種用於預測的神經網絡。它的特點是網絡結構不固定,而且在訓練過程中不斷改變
ANFIS自適應神經網絡神經網絡鑲嵌在一個全部模糊的結構之中,在不知不覺中向訓練數據學習,自動產生、修正並高度概括出最佳的輸入與輸出變量的隸屬函數以及模糊規則;另外,神經網絡的各層結構與參數也都具有了明確的、易於理解的物理意義

BP(Back Propagation,反向傳播)算法的特徵是利用輸出後的誤差來估計傳輸層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反向傳播下去,就獲得了所有其他各層的誤差估計。這樣就形成了將輸出層表現出的誤差沿着與輸入傳送相反的方向逐級向網絡的輸入層傳遞的過程。


BP算法只用到均方誤差函數對權值和閾值的一階導數(梯度)的信息,使得算法存在收斂速度緩慢、易陷入局部極小等缺陷。

6.分類與預測算法評價

爲了有效判斷一個預測模型的性能表現,需要一組沒有參與預測模型建立的數據集,並在該數據集上評價預測模型的準確率,這組獨立的數據集叫測試集。模型預測效果評價,通常用絕對誤差與相對誤差、平均絕對誤差、均方誤差、均方根誤差等指標來衡量。

(1)絕對誤差與相對誤差

設Y爲實際值,Y^表示預測值,則稱E爲絕對誤差,計算公式如下:E=Y-Y^;e爲相對誤差,計算公式爲:e=E/Y

(2)平均絕對誤差(MAE)

(3)均方誤差(MSE),是預測誤差平方之和的平均數,它避免了正負誤差不能相加的問題。

(4)均方根誤差(RMSE),是均方誤差的平方根,代表了預測值的離散程度,也叫標準誤差,最佳擬合情況爲RMSE=0.

(5)平均絕對百分誤差(MAPE),一般認爲MAPE小於10時,預測精度較高。

(6)Kappa統計

Kappa統計是比較兩個或多個觀測者對同一事物,或觀測者對同一事物的兩次或多次觀測結果是否一致,以由機遇造成的一致性和實際觀測的一致性之間的差別大小作爲評價基礎的統計指標。Kappa統計量和加權Kappa統計量不僅可以用於無序和有序分類變量資料的一致性、重現性檢驗,而且能給出一個反映一致性大小的“量”值。

Kappa取值在[-1,1]之間,其值的大小均有不同意義:

  • Kappa=1:說明兩次判斷的結果完全一致

  • Kappa=-1:說明兩次判斷的結果完全不一致

  • Kappa=0:說明兩次判斷的結果是機遇造成

  • Kappa<0:說明一致程度比機遇造成的還差,兩次檢驗結果很不一致,在實際應用中無意義

  • Kappa>0:此時說明有意義,Kappa愈大,說明一致性愈好

  • Kappa≥0.75:說明已經取得相當滿意的一致程度

  • Kappa<0.4:說明一致程度不夠

(7)識別準確度(Accuracy)

(8)識別精確率(Precision)

(9)反饋率(Recall)

(10)ROC曲線

受試者工作特性(Receiver Operating Characteristic,ROC)曲線是一種非常有效的模型評價方法,可爲選定臨界值給出定量提示。將靈敏度(Sensitivity)設在縱軸,1-特異性(1-Specificity)設在橫軸,就可得出ROC曲線圖。該曲線下的積分面積(Area)大小與每種方法的優劣密切相關,反映分類器正確分類的統計概率,其值越接近1說明該算法效率越好。

(11)混淆矩陣

混淆矩陣(Confusion Matrix)是模式識別領域中一種常用的表達形式。它描繪樣本數據的真實屬性與識別結果類型之間的關係,是評價分類器性能的一種常用方法。。

7.R語言主要分類與預測算法函數

表5-5 R語言主要分類與預測函數


函數名函數功能軟件包
lda()構建一個線性判別分析模型MASS
NaiveBayes()構建一個樸素貝葉斯分類器klaR
knn()構建一個K最近鄰分類模型class
rpart()構建一個分類迴歸樹模型rpart、maptree
bagging()構建一個集成學習分類器adabag
randomForest()構建一個隨機森林模型randomForest
svm()構建一個支持向量機模型e1071
nnet()構建一個人工識別神經網絡nnet

二、聚類分析


1.常用聚類分析算法

聚類分析是在沒有給定劃分類別的情況下,根據數據相似度進行樣本分組的一種方法。聚類模型可以建立在無類標記的數據上,是一種非監督的學習算法。聚類的輸入是一組未被標記的樣本,聚類根據數據自身的距離或相似度將它們劃分爲若干組,劃分的原則是組內距離最小化而組間(外部)距離最大化。

表5-6 常用聚類方法


類別包括的主要算法
劃分(分裂)方法K-Means算法(K-平均)、K-MEDOIDS算法(K-中心點)、CLARANS算法(基於選擇的算法)
層次分析方法BIRCH算法(平衡迭代規約和聚類)、CURE算法(代表點聚類)、CHAMELEON算法(動態模型)
基於密度的方法DBSCAN算法(基於高密度連接區域)、DENCLUE算法(密度分佈函數)、OPTICS算法(對象排序識別)
基於網格的方法STING算法(統計信息網絡)、CLIOUE算法(聚類高維空間)、WAVE-CLUSTER算法(小波變換)
基於模型的方法統計學方法、神經網絡方法

表5-7 常用聚類分析算法


算法名稱算法描述
K-MeansK-均值聚類也叫快速聚類法,在最小化誤差函數的基礎上將數據劃分爲預定的類數K。該算法原理簡單並便於處理大量數據
K-中心點K-均值算法對孤立點的敏感性,K-中心點算法不採用簇中對象的平均值作爲簇中心,而選中簇中離平均值最近的對象作爲簇中心
系統聚類系統聚類也叫多層次聚類,分類的範圍由高到低呈樹形結構,且所處的位置越低,其所包含的對象就越少,但這些對象間的共同特徵越多。該聚類方法只適合在小數據量時使用,數據量大時速度會非常慢

2.K-Means聚類算法


K-Means算法是典型的基於距離的非層次聚類算法,在最小化誤差函數的基礎上將數據劃分爲預定的類數K,採用距離作爲相似性的評價指標,即認爲兩個對象的距離越近,其相似度就越大。

(1)算法過程

  • 從N個樣本數據中隨機選取K個對象作爲初始的聚類中心

  • 分別計算每個樣本到各個聚類中心的距離,將對象分配到距離最近的聚類中

  • 所有對象分配完成後,重新計算K個聚類的中心

  • 與前一次計算得到的K個聚類中心比較,如果聚類中心發生變化,轉第二步,否則轉第五步

  • 當質心不發生變化時停止並輸出聚類結果

在實踐中,爲了得到較好的結果,通常以不同的初始聚類爲中心,多次運行K-Means算法。在所有對象分配完成後,重新計算K個聚類的中心時,對於連續數據,聚類中心取該簇的均值,但是當樣本的某些屬性是分類變量是,均值可能無定義,可以使用K-衆數方法。

(2)數據類型與相似性的度量

  • 連續屬性

    對於連續屬性,要先對各屬性值進行零-均值規範化,再進行距離的計算。K-Means聚類算法中,一般需要度量樣本之間的距離、樣本與簇之間的距離以及簇與簇之間的距離。

    度量樣本之間的相似性最常用的是歐幾里得距離、曼哈頓距離和閔可夫斯基距離;樣本與簇之間的距離可以用樣本到簇中心的距離d(ei,x);簇與簇之間的距離可以用簇中心的距離d(ei,ej)。

  • 文檔數據

    對於文檔數據使用餘弦相似性度量,先將文檔數據整理成文檔-詞矩陣格式。

(3)目標函數

使用誤差平方和SSE作爲度量聚類質量的目標函數,對於兩種不同的聚類結果,選擇誤差平方和較小的分類結果。

3.聚類分析算法評價

聚類分析僅根據樣本數據本身將樣本分組。其目標是,組內的對象相互之間是相似的(相關的),而不同組中的對象是不同的(不相關的)。組內的相似性越大,組間差別越大,聚類效果就越好。

  • purity評價法:只需計算正確聚類數佔總數的比例

  • RI評價法

    這是一種用排列組合原理對聚類進行評價的手段,RI評價公式爲:RI=(R+W)/(R+M+D+W),其中,R是指被聚在一類的兩個對象唄正確分類了,W指不應該被聚在一類的兩個對象被正確分類了,M指不應該放在一類的對象被錯誤地放在了一類,D指不應該分開的對象被錯誤地分開了。

  • F評價法

    這是基於RI方法衍生出的一個方法。

4.R語言主要聚類分析算法函數

R語言裏面實現的聚類主要包括:K-均值聚類、K-中心點聚類、密度聚類以及EM聚類。

表5-8 聚類主要函數列表


函數名函數功能軟件包
kmeans()構建一個K-均值聚類模型stats
pam()構建一個K-中心點聚類模型cluster
dbscan()構建一個密度聚類模型fpc
Mclust()構建一個EM聚類模型mclust

三、關聯規則


關聯規則分析是數據挖掘中最活躍的研究方法之一,目的是在一個數據集中找出各項之間的關聯關係,而這種關係並沒有在數據中直接表示出來。

  1. 常用關聯規則算法

表5-9 常用關聯規則算法

算法名稱算法描述
Apriori關聯規則最常用也是最經典的挖掘頻繁項集的算法,其核心思想是通過連接產生候選項及其支持度然後通過剪枝生成頻繁項集
FP-Tree針對Apriori算法固有的多次掃描事物數據集的缺陷,提出的不產生候選頻繁項集的方法。Apriori和FP-Tree都是尋找頻繁項集的算法
Eclat算法Eclat算法是一種深度優先算法,採用垂直數據表示形式,在概念格理論的基礎上利用基於前綴的等價關係將搜索空間劃分爲較小的子空間
灰色關聯法分析和確定各因素之間的影響程度或是若干個子因素(子序列)對主因素(母序列)的貢獻度而進行的一種分析方法

2.Apriori算法

Apriori算法是最經典的挖掘頻繁項集的算法,第一次實現了在大數據集上可行的關聯規則提取,其核心思想是通過連接產生候選項與其支持度然後通過剪枝生成頻繁項集。

(1)關聯規則和頻繁項集

  • 關聯規則的一般形式

    項集A、B同時發生的概率稱爲關聯規則的支持度(也稱爲相對支持度):

    Support(A =>B)=P(A∩B)

    項集A發生,則項集B發生的概率爲關聯規則的置信度:

    Confidence(A => B)=P(B|A)

  • 最小支持度和最小置信度

    最小支持度是用戶或專家定義的衡量支持度的一個閾值,表示項目集在統計意義上的最低重要性;最小置信度是用戶或專家定義的衡量置信度的一個閾值,表示關聯規則的最低可靠性。同時滿足最小支持度閾值和最小置信度閾值的規則稱作強規則。

  • 項集

    項集是項的集合。包括k個項的項集稱爲k項集。項集的出現概率是所有包含項集的事務計數,又稱作絕對支持度或支持度計數。如果項集I的相對支持度滿足預定義的最小支持度閾值,則I是頻繁項集。頻繁k項集通常記作Lk.

  • 支持度計數

    項集A的支持度計數是事務數據集中包含項集A的事務個數,簡稱爲項集的頻率或計數。

    已知項集的支持度計數,則規則A=>B的支持度和置信度很容易從所有事務計數、項集A和項集A∩B的支持度計數推出。

    Support(A=>B)=(A,B同時發生的事務個數)/(所有事務個數)=(Support_count(A∩B))/(Total_count(A))

    Confidence(A=>B)=P(A|B)=(Support(A∩B))/(Support(A))=Support_count(A∩B)/Support_count(A)

    也就是說,一旦得到所有事務個數,A、B和A∩B的支持度計數,就可以導出對應的關聯規則A=>B和B=>A,並可以檢查該規則是否是強規則。

(2)Apriori算法:使用候選產生頻繁項集

Apriori算法的主要思想是超出存在於事務數據集中最大的頻繁項集,在利用得到的最大頻繁項集與預先設定的最小置信度閾值生成強關聯規則。

  • Apriori的性質

    頻繁項集的所有非空子集也必須是頻繁項集。根據該性質可以得出:向不是頻繁項集I的項集中添加事務A,新的項集I∩A一定也不是頻繁項集。

  • Apriori算法實現的兩個過程

    a.找出所有的頻繁項集(支持度必須大於等於給定的最小支持度閾值),在這個過程中連接步和剪枝步互相融合,最終得到最大的頻繁項集Lk。

    連接步:連接步的目的是找到k項集。

    剪枝步:緊接着連接步,在產生候選項Ck的過程中起到減小搜索空間的目的。

    b.由頻繁項集產生強關聯規則:由過程a可知,未超過預定的最小值尺度閾值的項集已被剔除,如果剩下這些規則又滿足了預定的最小置信度閾值,那麼就挖掘出了強關聯規則。

四、時序模式

常用按時間順序排列的一組隨機變量X1,X2,...,Xt來表示一個隨機事件的時間序列,簡記爲{Xt};用x1,x2,...,xn或{xt,t=1,2,...,n}表示該隨機序列的n個有序觀察值。稱之爲序列長度爲n的觀察值序列。

  1. 時間序列算法

表5-10 常用時間序列模型

模型名稱描述
平滑法平滑法常用於趨勢分析和預測,利用修勻技術,削弱短期隨機波動對序列的影響,使序列平滑化。根據所用平滑技術的不同,可具體分爲移動平均法和指數平滑法。
趨勢擬合法趨勢擬合法把時間作爲自變量,相應的序列觀察值作爲因變量,建立迴歸模型。根據序列的特徵,可具體分爲線性擬合和曲線擬合。
組合模型

時間序列的變化主要受到長期趨勢(T)、季節變動(S)、週期變動(C)和不規則變動(ε)這四個因素的影響。根據序列的特點,可以構建加法模型和乘法模型。

加法模型:x1=Tt+St+Ct+εt

乘法模型:xt=Tt+St+Ct+εt

AR模型

x1=φ0+φ1x(t-1)+φ2x(t-2)+...+φpx(t-p)+εt

以前p期的序列值xt-1,xt-2,...xt-p爲自變量、隨機變量Xt的取值xt爲因變量建立線性迴歸模型。

MA模型

xt=μ+εt-θ1ε(t-1)-θ2ε(t-2)-...-θqε(t-q)

隨機變量Xt的取值xt與以前各期的序列值無關,建立xt與前q期的隨機擾動ε(t-1),ε(t-2),...,ε(t-q)的線性迴歸模型。

ARMA模型xt=φ0+φ1x(t-1)+φ2x(t-2)+...+φpx(t-p)+εt-θ1ε(t-1)-θ2ε(t-2)-...-θqε(t-q)隨機變量Xt的取值xt不僅與以前p期的序列值相關,還與前p期的隨機擾動有關。
ARIMA模型許多非平穩序列差分後會顯示出平穩序列的性質,稱這個非平穩序列爲差分平穩序列。對差分平穩序列可以使用ARIMA模型進行擬合。
ARCH模型ARCH模型能準確地模擬時間序列變量的波動性變化,適用於序列具有異方差性並且異方差函數短期自相關。
GARCH模型以及衍生模型GARCH模型稱爲廣義ARCH模型,是ARCH模型的拓展。相比於ARCH模型,GARCH模型及其衍生模型更能反映實際序列中的長期記憶性、信息的非對稱性等性質。
2.時間序列的預處理

拿到一個觀察值序列後,首先要對它的純隨機性和平穩性進行檢驗,這兩個重要的檢驗成爲序列的預處理。

對於純隨機序列,又叫白噪聲序列,序列的各項之間沒有任何相關關係,序列在進行完全無序的隨機波動,可以終止對該序列的分析。

對於平穩非白噪聲序列,它的均值和方差是常數,現已有一套非常成熟的平穩序列的建模方法。通常是建立一個線性模型來擬合該序列的發展。ARMA模型是最常用的平穩序列擬合模型。

對於非平衡序列,由於它的均值和方差不確定,處理方法一般是將其轉變爲平穩序列,這樣就可以應用有關平穩時間序列的分析方法。如果一個時間序列經差分運算後具有平穩性,稱該序列爲差分平穩序列,可以使用ARIMA模型進行分析。

3.平穩時間序列分析

ARMA模型的全稱是自迴歸移動平均模型,它是目前最常用的擬合平穩序列的模型,它又可細分爲AR模型、MA模型和ARMA三大類,都可以看做是多元線性迴歸模型。

4.非平穩時間序列分析

對非平穩時間序列的分析方法可以分爲確定性因素分解的時序分析和隨機時序分析兩大類。

5.R語言主要時序模式算法函數

R語言實現的時序模式算法主要是ARIMA模型,在使用該模型進行建模時,需要進行一系列判別操作,主要包含平穩性檢驗、白噪聲檢驗、是否差分、AIC和BIC指標值、模型定階,最後再做預測。

表5-11 時序模式算法函數列表

函數名函數功能所屬程序包
acf()計算自相關係數,畫自相關係數圖R語言通用函數
pacf()計算偏相關係數,畫偏相關係數圖R語言通用函數
unitrootTest()
對觀測值序列進行單位根檢驗fUnitRoots
diff()對觀測值序列進行差分計算R語言通用函數
armasubsets()模型定階,確定時序模式的建模參數,創建迴歸時序模型TSA
arima()設置時序模式的建模參數,創建ARIMA時序模型或者把迴歸時序模型轉換爲ARIMAX模型R語言通用函數
Box test()檢測ARIMA模型是否符合白噪聲檢驗R語言通用函數
forecast()應用構建的時序模型進行預測forecast
五、離羣點檢測

離羣點檢測的任務是發現與大部分其他對象顯著不同的對象。

(1)離羣點的成因:數據來源與不同的類、自然變異、數據測量和收集誤差。

(2)離羣點的類型

表5-12離羣點的大致分類

分類標準分類名稱分類描述
從數據範圍全局離羣點和局部離羣點從整體來看,某些對象沒有利羣特徵,但是從局部來看,卻顯示了一定的離羣性。
從數據類型數值型離羣點和分類型離羣點這是以數據集的屬性類型進行劃分的
從屬性的個數一維離羣點和多維離羣點一個對象可能有一個或多個屬性
1.離羣點檢測方法

表5-13常用離羣點檢測方法

離羣點檢測方法方法描述方法評估
基於統計大部分基於統計的離羣點檢測方法是構建一個概率分佈模型、並計算對象符合該模型的概率,把具有低概率的對象視爲離羣點基於統計模型的離羣點檢測方法的前提是必須知道數據集服從什麼分佈;對於高維數據,檢驗效果可能很差
基於鄰近度通常可以在數據對象之間定義鄰近性度量,把遠離大部分點的對象視爲離羣點簡單、二維或三維的數據可以做散點圖觀察;大數據集不適用;對參數選擇敏感;具有全局閾值,不能處理具有不同密度區域的數據集
基於密度考慮數據集可能存在不同密度區域這一事實,從基於密度的觀點分析,離羣點是在低密度區域中的對象。一個對象的離羣點得分是該對象周圍密度的逆給出了對象是離羣點的定量度量,並且即使數據具有不同的區域也能夠很好的處理;大數據集不適用;參數選擇是困難的
基於聚類一種利用聚類檢測離羣點的方法是丟棄遠離其他簇的小簇;另一種更系統的方法,首先聚類所有對象,然後評估對象屬於簇的程度(離羣點得分)基於聚類技術來發現離羣點可能是高度有效的;聚類算法產生的簇的質量對該算法產生的離羣點的質量影響非常大
基於密度的離羣點檢測與基於鄰近度的離羣點檢測密切相關,因爲密度常用鄰近度定義:一種是定義密度爲到K個最鄰近的平均距離的倒數,如果該距離小,則密度高;另一種是使用DBSCAN算法,一個對象周圍的密度等於該對象指定距離d內對象的個數。

2.基於模型的離羣點檢測算法

通過估計概率分佈的參數來建立一個數據模型,如果一個數據對象不能很好地跟該模型擬合,即如果它很可能不服從該分佈,則它是一個離羣點。

(1)一元正態分佈中的離羣點檢測

(2)混合模型的離羣點檢測

混合是一種特殊的統計模型,它使用若干統計分佈對數據建模。每一個分佈對應一個簇,而每個分佈的參數提供對應簇的描述,通常用中心和發散描述。

混合模型將數據看做不同的概率分佈得到的觀測值的集合。概率分佈可以是任何分佈,但是通常是多元正態的。

總體來講,混合模型數據產生過程爲:給定幾個類型相同但參數不同的分佈,隨機地選取一個分佈並由它產生一個對象。重複該過程m次,其中m是對象的個數。

聚類時,混合模型方法假定數據來自混合概率分佈,並且每個簇可以用這些分佈之一識別。同樣,對於離羣點檢測,數據用兩個分佈的混合模型建模,一個分佈爲正常數據,而另一個爲離羣點。

聚類和離羣點檢測的目標都是估計分佈的參數,以最大化數據的總似然。

這裏提供一種離羣點檢測常用的簡單方法:先將所有數據對象放入正常數據集,這時離羣點集爲空集;再用一個迭代過程將數據對象從正常數據集轉移到離羣點集,只要該轉移能提高數據的總似然。

(3)基於聚類的離羣點檢測方法

a.丟棄遠離其他簇的小簇:通常,該過程可以簡化爲丟棄小於某個最小閾值的所有簇。這種方法可以和其他任何聚類技術一起使用,但是需要最小簇大小和小簇與其他簇之間距離的閾值。而且這種方案對簇個數的選擇高度敏感,使用這個方案很難將離羣點得分附加到對象上。

b.基於原型的聚類

另一種更系統的方法,首先聚類所有對象,然後評估對象屬於簇的程度(離羣點得分)。在這種方法中,可以用對象到它的簇中心的距離來度量屬於簇的程度。特別地,如果刪除一個對象導致該目標的顯著改進,則可將該對象視爲離羣點。

對於基於原型的雞肋,評估對象屬於簇的程度(離羣點得分)主要有兩種方法:一是度量對象到簇原型的距離,並用它作爲該對象的離羣點得分;二是考慮簇具有不同的密度,可以度量簇到原型的相對距離,相對距離是點到質心的距離與簇中所有點到質心距離的中位數之比。

  1. 進行聚類。選擇聚類算法,將樣本集聚爲K簇,並找到各簇的質心。

  2. 計算各對象到它的最近質心的距離。

  3. 計算各對象到它的最近質心的相對距離。

  4. 與給定的閾值作比較。

    如果某對象距離大於該閾值,就認爲該對象是離羣點。

基於聚類的離羣點檢測的改進如下:

  1. 離羣點對初始聚類的影響:通過聚類檢測離羣點,離羣點會影響聚類結果。爲了處理該問題,可以使用如下方法:對象聚類,刪除離羣點,對象再次聚類(這個不能保證產生最優結果)。

  2. 更復雜的方法:取一組不能很好地擬合任何簇的特殊對象,這組對象代表潛在的離羣點。隨着聚類過程的進展,簇在變化。不在強屬於任何簇的對象被添加到潛在的離羣點集合;而當前在給集合中的對象被測試,如果它現在強屬於一個簇,就可以將它從潛在的離羣點集合中移除。聚類過程結束時還留在該集合中的點被分類爲離羣點

對象是否被認爲是離羣點可能依賴於簇的個數。一種策略是對於不同的簇個數重複該分析;另一種方法是找出大量小簇,其想法是:

  1. 較小的簇傾向於更加凝聚;

  2. 如果存在大量小簇時一個對象是離羣點,則它多半是一個真正的離羣點。

    不利的一面是一組離羣點可能形成小簇從而逃避檢測。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章