日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言之离群点检验(part3)--利用聚类检测离群点

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言之离群点检验(part3)--利用聚类检测离群点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記

參考文獻:《R語言與數據挖掘》

PS:本篇Blog以用R語言應用為主,原理部分請移步《多元統計分析》學習筆記之聚類分析


利用聚類分析檢測離群點

聚類檢測原理

有一種檢測離群點的方法是聚類。例如,基于DBSCAN密度聚類,如果兩個對象之間是密度可達的,則這兩個對象將被劃分到同一組,因此,那些沒有被劃分到任何一組的對象與其他對象是相互孤立的,這些孤立的對象則被認為是離群點。

啥是密度可達?
如果點α\alphaα的鄰域內包含點的數目不少于MinPts,則α\alphaα是密集點(核心點),而α\alphaα鄰域內所有點從α\alphaα出發都是密度可達的,可將這些點與α\alphaα劃分在同一個簇中。

在這里,我們以k?meansk-meansk?means聚類算法來檢測離群點。使用k?meansk-meansk?means聚類,將數據劃分為k組,每一個觀測點都劃分到與之距離最小的分組,然后計算每個觀測點與組重心的距離,并將距離最大的對象作為離群點。

圖示:

由上圖可知,數據被聚類為了3類,其中我們看組2(G2)的5號觀測點,這個觀測點貌似有一點’不合群’,且在所有的觀測點中,5號觀測點離自己的組重心最遠,所以可以把它看做離群點。

R語言實現

利用R自帶的鳶尾花數據集,并使用k?meansk-meansk?means聚類法檢測離群點。

代碼:

#拿到iris數據集中的數值型數據 iris_test <- iris[, 1:4] #得到聚類結果 result <- kmeans(iris_test, centers = 3) #這行請復制代碼,在電腦中自行領會,不太會表達 center <- result$centers[result$cluster, ] #計算每個觀測點,到其組重心的距離 distances <- sqrt(rowSums(iris_test - center)^2) #對距離進行降序排序,拿到距離最遠的5個觀測點的行號 outpoints <- order(distances, decreasing = T)[1:5] print(iris_test[outpoints, ])#繪圖 plot(iris_test[, c("Sepal.Length", "Sepal.Width")], pch = 'o', col = result$cluster, cex = 0.3) points(result$centers[, c("Sepal.Length", "Sepal.Width")], col = c(1:3), pch = 8, cex = 1)points(iris_test[outpoints, c("Sepal.Length", "Sepal.Width")], pch = '+', col = 4, cex = 1.5)

控制臺輸出結果:

> print(iris_test[outpoints, ])Sepal.Length Sepal.Width Petal.Length Petal.Width 61 5.0 2.0 3.5 1.0 94 5.0 2.3 3.3 1.0 58 4.9 2.4 3.3 1.0 99 5.1 2.5 3.0 1.1 118 7.7 3.8 6.7 2.2

圖像:


后記:DBSCAN密度聚類筆者已經有1年多沒碰過了,若有錯誤求指出。

總結

以上是生活随笔為你收集整理的R语言之离群点检验(part3)--利用聚类检测离群点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。