Affinity Propagation GStrAP 介绍及 使用方法

Download Report

Transcript Affinity Propagation GStrAP 介绍及 使用方法

Affinity Propagation介绍及
GStrAP使用方法
报告人:陈文强
2016/5/27
1
27
1 Affinity Propagation 算法背景
目录
2 基于GraphLab的实现:GStrAP
3 GStrAP使用
2016/5/27
2
27
Affinity Propagation 介绍
Clustering by Passing Messages Between Data
Science 315, 972–976, February 2007
Points.Brendan J. Frey and Delbert Dueck
University of Toronto
2016/5/27
3
27
Affinity Propagation 介绍
线性V.S. 非线性聚类模型
x1
x1
x2
Non-linear model
Linear model
2016/5/27
4
x2
27
Affinity Propagation 介绍
线性V.S. 非线性聚类模型
2016/5/27
5
27
Affinity Propagation 介绍
Clustering datasets – Joensuu http://cs.joensuu.fi/sipu/datasets/
2016/5/27
6
27
Affinity Propagation 算法
Sending responsibilities
Candidate
exemplar k
Competing
candidate
exemplar k’
r(i,k)
a(i,k’)
Data instance i
Sending availabilities
Candidate
exemplar k
r(i’,k)
a(i,k)
Supporting
data instance i’
Making decisions:
Data instance i
2016/5/27
7
27
Affinity Propagation 算法
ITERATION #
0
ITERATION #15
# 8
1
ITERATION
#
#10
#11
#12
#13
#14
9
1
2
3
4
5
6
7






































 
























































































 







0
0
non-exemplar































 






 



-5
-5
-5
-5
2016/5/27
























































00










































+5
+5
8
+5
+5
exemplar
27
Affinity Propagation 算法
2016/5/27
9
27
Affinity Propagation 算法
现有开源软件
Provided by Brendan J. Frey and Delbert Dueck,
APCluster
通过矩阵的矢量化编程,
提供了一定程度上的并行化计算
Scikit-learn
2016/5/27
10
27
Affinity Propagation 算法
矢量化编程
2016/5/27
11
27
Affinity Propagation 算法
A simple comparison of the clustering algorithms
2016/5/27
12
27
基于GraphLab的实现
Distributed GraphLab: A Framework for Machine Learning in the Cloud
2016/5/27
13
27
基于GraphLab的实现
How do we program
graph computation?
“Think like a Vertex.”
-Malewicz et al. [SIGMOD’10]
2016/5/27
14
14
27
基于GraphLab的实现
GAS Decomposition
Gather (Reduce)
Apply
Scatter
Accumulate information
about neighborhood
Apply the accumulated
value to center vertex
Update adjacent edges
and vertices.
User Defined:
User Defined:
User Defined:
Gather(
Y
)Σ
Σ1 + Σ2  Σ3
Σ

Y
+…+
Y
Y
2016/5/27
+
Scatter(
Y’
)
Y’
Y
Y
Parallel
Sum
Apply( Y , Σ)  Y’
15
Y’
Update Edge Data &
Activate Neighbors
15
27
基于GraphLab的实现
Machine 1
Machine 2
Master
从邻接节点与
当前节点相连的边
收集availability, Σ1
a(i,k`)以及
responsibility,r(i`,k)
Σ3
更新与邻接节点
相连的边上的
a(i,k)以及r(i,k)
2016/5/27
Y’
Y’Y’
Y’
+
+
Σ+
Σ2
Mirror
Y
Σ4
Mirror
Machine 3
16
Mirror
Machine 4
16
27
实验结果与分析
本文的实验运行于3.10GHz的4核处理器
上,内存为8GB.
采用流形学习工具MANI合成的数据3D
Clusters 、Aggregation、Flame以及Pathbased
作为数据集
2016/5/27
17
27
实验结果与分析
2016/5/27
18
27
实验结果与分析
2016/5/27
19
27
GraphLab安装
1、Installing boost+zlib.
2、Install cmake .
3、Install openmpi + jdk
4、Clone GraphLab from github
git clone https://github.com/graphlab-code/graphlab.git
5、configure and compile graphlab.
2016/5/27
20
27
GStrAP使用
计算样本之间的相似度
输入数据格式:
执行similarity_calc,计算相似度 :
2016/5/27
21
27
GStrAP使用
计算样本之间的相似度
输出数据格式:
2016/5/27
22
27
GStrAP使用
对样本进行聚类
输入数据格式:
执行affinity_propagation进行聚类:
输出数据格式:
2016/5/27
23
27
GStrAP使用
获取GStrAP帮助信息:
2016/5/27
24
27
关于GStrAP的更多信息
软件主页:
Stable:
http://datamining.xmu.edu.cn/software/gstrap/
2016/5/27
25
27
谢谢!
2016/5/27
26
27