孤立核函数 (Isolation Kernel) 的聚类效果展示

Ye Zhu, Deakin University
2021/10/1


当前有很多核方法(kernel method)来改进现有的基于距离的聚类算法的性能(如kernel k-means 和谱聚类)。最近,孤立核(Isolation Kernel)[1,2,3,4]被提出是一种更有效的数据依赖相似性度量方法,使得稀疏区域中的两个点(x,y)比稠密区域中两个点(x',y')更加相似,即使x到y的距离等于x'到y'的距离。该测度自适应于局部数据分布,在捕获局部数据分布特征方面具有更大的灵活性。它在基于密度和距离的分类和聚类问题上显示出比现有核函数更好的性能。

在本文档中,我们将用R语言探索孤立核[1]对鸢尾花数据集聚类的影响。我们将比较使用欧式距离和使用孤立核在k-means, k-medoids和heatmap上的效果。本文中使用的基本包有RANN, aricode, Rcpp, seriation和kmed。

鸢尾花数据集可视化

We first visualise the original iris dataset:

library(heatmaply)
df <- iris
df[,1:4] <- normalize(df[,1:4])
ggplot(df, aes(Petal.Length, Petal.Width)) + geom_point(aes(col=Species), size=4)
1.jpg

基于欧式距离的聚类效果

K-means clustering

  • 混淆矩阵 The confusion matrix is
irisCluster <- kmeans(df[,1:4], center=3, nstart=100) 
table(irisCluster$cluster, iris$Species)
2.jpg
  • The AMI score is (AMI是常用聚类评价指标,越接近1表示聚类效果越好)
library(aricode)
AMI(irisCluster$cluster,iris$Species)

[1] 0.7364193

K-means medoids clustering

  • The confusion matrix is
library(kmed)
d <- dist(df[,1:4])  
sfkm <- fastkmed(d, ncluster = 3, iterate = 100)
table(sfkm$cluster, iris$Species)
3.jpg
  • The AMI score is
AMI(sfkm$cluster,iris$Species)

[1] 0.7540459

Heatmap

library(seriation)
hmap(d, method = "OLO_single", main = "Heatmap for Lines (opt. leaf ordering)",
  col = bluered(100, bias = .5))
h1.jpg

基于孤立核函数的聚类效果

下面是孤立核函数的R语言实现。IKFeature函数将返回基于孤立核函数映射的核空间特征向量。IKSimilarity函数则计算基于孤立核的相似度度量,也就是特征向量的内积值。因此,我们可以将IKFeature用于需要特征作为输入的算法(例如,k-means),而将IKSimilarity用于需要相似性/距离矩阵作为输入的算法(例如,k-medoids)。

library(RANN)
library(Matrix)

IKFeature <- function(data, Sdata=data, psi = 64, t = 200, Sp=TRUE) {
# IKFeature function will return the finite binary features based on the kernel feature map. 
  
  # data is used for applying Isolation kernel function
  # Sdata is the data use for generating Voronoi diagrams, it can be the same as the input data
  # psi is the number of cells in each Voronoi diagram, it should be large if there are more clusters or more complex structures in the data
  # t is the number of Voronoi diagrams, the higher the more stable the result
  # Sp indicate whether return the sparse feature vectors
  
  
  sizeS <- nrow(Sdata)
  sizeN <- nrow(data)
  Feature<-matrix(, nrow = sizeN, ncol = 0)
  for (i in 1:t) {
    subIndex <- sample(1:sizeS, psi, replace = FALSE, prob = NULL)
    tdata <- Sdata[subIndex, ]
    NN <- nn2(tdata, data, k = 1) # find the nearest negibour 
    OneFeature <- matrix(0, nrow = sizeN, ncol = psi)
    OneFeature <- Matrix(OneFeature, sparse=Sp)
    ind <- cbind(1:sizeN,NN$nn.idx)
    OneFeature[ind] <- 1 # update non-zero values
    Feature<- cbind(Feature, OneFeature)
  }
  if (Sp == TRUE){ 
  Feature # binary feature matrix based on Isolation kernel
  }else{
    as.matrix(Feature) # return full matrix
  }
}

IKSimilarity <- function(data, Sdata=data, psi = 64, t = 200) {
# IKSimilarity function calculates the similarity kernel measure.
  
 Feature<-IKFeature(data, Sdata, psi, t)
 SimMatrix <- Feature%*%t(Feature)/t # the similarity matrix based on Isolation kernel
}
 

K-means clustering

  • The confusion matrix is
set.seed(136)
ndata <- IKFeature(data=df[,1:4],psi=4,t=200) 
irisCluster <- kmeans(ndata, center=3, nstart=100) 
table(irisCluster$cluster, iris$Species)
4.jpg
  • The AMI score is
AMI(irisCluster$cluster,iris$Species)

[1] 0.8166619

K-medoids clustering

  • The confusion matrix is
library(kmed)
set.seed(136)
Sim <- IKSimilarity(df[,1:4],df[,1:4],4,200)
d <- 1-as.matrix(Sim) # get the dissimilarity/distance matrix
sfkm <- fastkmed(d, ncluster = 3, iterate = 100)
table(sfkm$cluster, iris$Species)
5.jpg
  • The AMI score is
AMI(sfkm$cluster,iris$Species)

[1] 0.8027312

Heatmap

hmap(d, method = "OLO_single", main = "Heatmap for Lines (opt. leaf ordering)",
  col = bluered(100, bias = .5))
h2.jpg

基于这些结果,我们可以看到,孤立核可以显著改善k-means和k-medoids的聚类结果。使用孤立核时,集群结构在heatmap也更加清晰。


R CRAN官方安装包:https://github.com/zhuye88/isokernel
原文英文版: https://rpubs.com/zhuye88/IK
Isolation kernel的Matlab实现代码:https://github.com/zhuye88/anne-dbscan-demo


Reference

[1] Qin, X., Ting, K.M., Zhu, Y. and Lee, V.C., 2019, July. Nearest-neighbour-induced isolation similarity and its impact on density-based clustering. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 33, pp. 4755-4762).

[2] Ting, K.M., Xu, B.C., Washio, T. and Zhou, Z.H., 2020, August. Isolation Distributional Kernel: A New Tool for Kernel based Anomaly Detection. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (pp. 198-206).

[3] Ting, K.M., Wells, J.R. and Washio, T., 2021. Isolation kernel: the X factor in efficient and effective large scale online kernel learning. Data Mining and Knowledge Discovery, pp.1-31.

[4] Ting, K.M., Zhu, Y. and Zhou, Z.H., 2018, July. Isolation kernel and its effect on SVM. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (pp. 2329-2337).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271