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"); 
    } 

ответ

0

Возможный ответ (explained in paper "Efficient Feature Tracking for Scene Recognition using Angular and Scale Constraints")

enter image description here enter image description here

Итак, это означает, что

1) х * = собственный вектор, который имеет наибольшее собственное значение

2) главный собственный вектор может описывать различные кластеры. Если будут построены значения основного собственного вектора, изменения в графике будут отображать различные кластеры данных