1
我正在嘗試執行譜聚類。親和矩陣的譜聚類
我有一個對稱親和矩陣的特徵向量,我必須找到(摘自一篇論文),其中x'Mx是簇間分數。
- x'Mx與聚類矢量相同,因此argmax意味着特徵向量(即具有最高特徵值的特徵向量)的主向量?
- 如果是這樣,那麼應該計算每個集羣的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");
}