2

Suppose we got several centers {C1(d1, d2...dn), C2...} with training samples according to spectral clustering algorithm. If a new test sample vector (x1, ... xn) is given, what should I do to get it into a class?

Note that, the similarity matrix we used in spectral clustering process is not only based on Euclidean distance between training vectors but geodesic distance. So the distance can not be calculated with just two vectors, and the class center is not so easy to get as what we can in K-means.

One solution I have got is k-nearest neighbour algorithm. Are there any other solutions?

Potemkin
  • 111
  • 6
  • With spectral clustering methods you don't "get several centers" you usually get a binary partition based on the eigen-vector associated with the second largest eigen-value of the Laplacian of the similarity matrix. – carlosdc Jan 06 '11 at 04:05
  • Could you give us some more details about exactly what kind of spectral clustering algorithm you use? – Stompchicken Jan 06 '11 at 11:21
  • @StompChicken: I think by 'what kind of sc' you mean what kind of Laplacian I use or what kind of distance matrix I choose. – Potemkin Jan 07 '11 at 04:12
  • @StompChicken: We have a graph G = . Each vector here represents one training sample, and weight in the edge between two vectors represents the distance between them, which obeys the triangle inequality. Given these, we can divide those nodes(vectors) into several clusters using spectral clustering algorithm. Now we have a new test node, and we can get distances, or weight, between the test node and each existing one in the graph. The problem is can we get its label in a fast way? – Potemkin Jan 07 '11 at 04:26

1 Answers1

2

In the case of spectral clustering, the result is not updatable in that if you add another instance/vector, you will have to repeat the whole process by recomputing the affinity/laplacian matrix, performing eigen-decomposition, then clustering the rows of the reduced matrix.

Amro
  • 123,847
  • 25
  • 243
  • 454