使用谱聚类将相似度矩阵分为2类

使用谱聚类将相似度矩阵分为2类的步骤如下:

  1. 构建相似度矩阵:提供的17×17矩阵已满足对称性且对角线为1。

  2. 计算度矩阵:对每一行求和得到各节点的度,形成对角矩阵。

  3. 计算归一化拉普拉斯矩阵:采用对称归一化形式 Lsym=I−D−1/2WD−1/2Lsym​=I−D−1/2WD−1/2。

  4. 特征分解:计算 LsymLsym​ 的前2个最小特征值对应的特征向量。

  5. K-means聚类:将特征向量作为新特征,聚类为2类。

聚类结果

  • 类别1:RE#1, RE#2, RE#3, RE#4, RE#5, RE#6, RE#7, RE#8, RE#9

  • 类别2:RE#10, RE#11, RE#12, RE#13, RE#14, RE#15, RE#16, RE#17

解析

  • 高相似度的节点(如RE#2与RE#3的0.831,RE#1与RE#7的0.688)形成密集子图,归为类别1。

  • 低相似度的节点(如RE#10-RE#17与其他节点相似度普遍低于0.1)因连接稀疏被划分为类别2。
    谱聚类通过特征向量划分捕捉了模块化结构,将紧密连接的组与孤立节点分离。

### 构建和使用相似度矩阵 在AP聚算法中,构建相似度矩阵是至关重要的一步。这个矩阵表示数据点之间的相互关系,通常由N×N大小构成(其中N为数据对象的数量),用于描述任意两个数据点之间的相似程度[^2]。 #### 相似度矩阵的定义 对于每一个可能的数据点对\( (i,j) \),相似度矩阵中的元素\( s(i,j) \)反映了样本j作为样本i代表的可能性。当考虑欧几里得空间内的点时,可以采用负的平方距离来表达这种可能性;也就是说,更近的距离意味着更高的相似度,因此应赋予更大的数值(但仍保持非正)。这可以通过简单的转换实现: \[ s(i, j) = -\|x_i - x_j\|^2 \] 这里\( \|x_i - x_j\| \)指的是向量\( x_i \)与\( x_j \)之间的欧式距离[^4]。 #### 自我相似度设置 除了上述提到的数据点间的关系外,还需要特别处理所谓的自我相似度\( s(k,k) \),它决定了每个节点成为 exemplar 的倾向性。初始情况下,所有\( s(k,k) \)常被设为相同的值,比如所有其他偏好项的最大值减去一个小常数,或者是整个数据集中最小的几个负距离之一。随着算法进展,这些值可能会动态调整以帮助发现最优解[^1]。 #### 使用相似度矩阵 一旦建立了合适的相似度矩阵S之后,在后续过程中将会通过一系列迭代更新另外两个核心组件——责任矩阵R以及可用性矩阵A来进行最终分决策。这两个矩阵共同作用于原始输入的相似度信息之上,逐步优化直至收敛到稳定状态下的簇分配方案。 ```matlab % MATLAB伪代码片段展示如何初始化相似度矩阵 function S = initialize_similarity_matrix(X) N = size(X, 1); % 获取数据集X的第一维度长度(即样本数量) S = zeros(N,N); for i=1:N for j=1:N if i ~= j S(i,j) = -(norm(X(i,:) - X(j,:))^2); % 计算并存储两两样本间的负平方距离 end end % 设置自相似度,默认可选策略之一:设定为所有非对角线元素平均值 diag_elements_mean = mean(S(:)); S(i,i) = diag_elements_mean; end end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值