Self-Tuning Spectral Clustering论文阅读和代码理解
一、代碼問題
運行test_segimage.m時,存在如下錯誤:
Building affinity matrix took 0.092672 second
Error using dist2aff
Function "mxGetIr_700" is obsolete.
(64-bit mex files using sparse matrices must be rebuilt with the "-largeArrayDims" option. ?See the
R2006b release notes for more details.)
解決方法:??mex -O -largeArrayDims dist2aff.cpp
但是存在如下錯誤:
dist2aff.cpp?
dist2aff.cpp(90) : error C2440: “初始化”: 無法從“const mwSize *”轉換為“const int *”?
? ? ? ? 與指向的類型無關;轉換要求 reinterpret_cast、C 樣式轉換或函數樣式轉換?
dist2aff.cpp(101) : error C2440: “初始化”: 無法從“mwIndex *”轉換為“int *”?
? ? ? ? 與指向的類型無關;轉換要求 reinterpret_cast、C 樣式轉換或函數樣式轉換?
dist2aff.cpp(102) : error C2440: “初始化”: 無法從“mwIndex *”轉換為“int *”?
? ? ? ? 與指向的類型無關;轉換要求 reinterpret_cast、C 樣式轉換或函數樣式轉換?
dist2aff.cpp(104) : warning C4267: “初始化”: 從“size_t”轉換到“int”,可能丟失數據?
打開文件dist2aff.cpp,把line 90 "const int *"替換為“ const mwSize",等等,根據錯誤提示進行修改即可。
再次運行test_segimage.m,scale_dist.cpp仍存在類似錯誤,根據錯誤提示修改,?mex -O -largeArrayDims dist2aff.cpp scale_dist.cpp再次編譯即可通過。
二、代碼理解
1、function [clusts,bestD]=kmeans2(V,nClusts)
V是laplacian矩陣的前若干個特征向量
不理解的是:為何拿特征向量來用于聚類
——譜聚類的思想:參考http://blog.csdn.net/pi9nc/article/details/12251247
第一步:數據準備,生成圖的鄰接矩陣;
第二步:歸一化普拉斯矩陣;
第三步:生成最小的k個特征值和對應的特征向量;
第四步:將特征向量kmeans聚類(少量的特征向量);
總結
以上是生活随笔為你收集整理的Self-Tuning Spectral Clustering论文阅读和代码理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 奇异值(Singular value d
- 下一篇: hausdorff距离