2015-06-29 83 views
1

我正在尝试执行谱聚类。亲和矩阵的谱聚类

我有一个对称亲和矩阵的特征向量,我必须找到formula(摘自一篇论文),其中x'Mx是簇间分数。

  1. x'Mx与聚类矢量相同,因此argmax意味着特征向量(即具有最高特征值的特征向量)的主向量?
  2. 如果是这样,那么应该计算每个集群的x *值? (因为如何一个矢量描述了所有簇..)

在代码(使用OpenCV库)

//a symmetric affinity matrix calculated prior 
    CvScalar scal; 
    CvMat* evec = cvCreateMat(src->height,src->height,CV_32FC1); //eigenvectors 
    CvMat* eval = cvCreateMat(1,src->height,CV_32FC1); //eigenvalues (1xN) 
    cvZero(evec); 
    cvZero(eval); 
    cvEigenVV(&mat, evec, eval, 1); 

    //result is eval->cols == mat.cols and eval->rows == mat.rows 
    for(int j = 0; j < eval->cols; j++) 
    { 
     /*access the obtained eigenvalues*/ 
     scal = cvGet2D(eval, 0, j); 
     printf("\n%f\n", scal.val[0]); 

     for(int i=0;i < evec->rows;i++){ 
      printf(" vector: %d: %f ", j, cvmGet(evec,j,i)); //Fetching each component of Eigenvector i  
     } 
     printf("\n"); 
    } 

回答