亲和矩阵的谱聚类

时间:2015-06-29 19:16:07

标签: algorithm image-processing cluster-analysis eigenvector

我正在尝试进行光谱聚类。

我有对称亲和度矩阵的特征向量,我必须找到formula(取自论文),其中x' Mx是群集间分数。

  1. x' Mx是否与聚类矢量相同,因此argmax意味着特征向量的主要向量(即具有最高特征值的特征向量)?
  2. 如果是这样,应为每个群集计算x *? (因为一个向量如何描述所有聚类......)
  3. 在代码中(使用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");
        }
    

1 个答案:

答案 0 :(得分:0)

可能的答案(explained in paper "Efficient Feature Tracking for Scene Recognition using Angular and Scale Constraints"

enter image description here enter image description here

所以,这意味着

1)x * =具有最大特征值的特征向量

2)主特征向量可以描述不同的聚类。如果将绘制主要特征向量的值,则图中的变化将指示数据的不同群集