As you mentioned this is a generalization of the Fiedler eigenvector. When applying spectral clustering, and you want to find the two clusters then the Fiedler eigenvector tells you how to partition the vertices (bipartition) so the normalized cut is minimized. The concept can be generalized to k clusters by applying K-mean to the first k eigenvectors. The two partitions can be determined by grouping the vertices of the corresponding negative values of the eigenvector for one cluster and the other cluster are vertices corresponding to the non-negative values.
I can use perhaps the normalized eigenvectors, but I am not sure if this is correct thus, I prefer using the magnitudes. In theory it may work as for example the entries of the Fielder eigenvector are divided by the norm. The eigenvalues and eigenvector calculators (in internet) find the magnitude of the vector. The project is aimed to show that spectral clustering works for images that are graphs where the pizels are the vertices. We are having some issues with K-mean but if we get the Fieldler eigenvector we can test how K-mean works for two partitions. Best Louis ________________________________ From: Robert Kern <robert.k...@gmail.com> Sent: Saturday, February 25, 2023 4:22 PM To: Discussion of Numerical Python <numpy-discussion@python.org> Subject: [Numpy-discussion] Re: non normalised eigenvectors On Sat, Feb 25, 2023 at 4:11 PM Louis Petingi <louis.peti...@csi.cuny.edu<mailto:louis.peti...@csi.cuny.edu>> wrote: Hi Thanks Very simply one of the solutions for the zero eigenvalue is the 1 eigenvector. If I get back this 1 vector, for the 0 eigenvalue then the other eigenvectors will be in the right format I am looking for. Once again, the 1 vector is the normalized eigenvector * norm. There are multiple rules that could get this result. You could multiply all of the eigenvectors by `sqrt(n)`. Alternately, you could multiply each eigenvector `v` by `1/v[np.nonzero(v)[0][0]]` (i.e. the first nonzero value in the eigenvector). Both would give you the desired result for the 0-eigenvalue eigenvector, but different results for every other eigenvector. Both are simple and coherent rules, but quite likely neither are what you are looking for. Remember, each eigenvector can be scaled independently of any other, so establishing the desired result for one eigenvector does nothing to constrain any other. If you want help finding the rule that will help you in your research, you'll have to let us know what you are going to use the magnitudes _for_. The information you've given so far (where the eigenvectors come _from_) doesn't actually help narrow anything down. The only application of eigenvector magnitudes of graph Laplacians that I am aware of is the Fiedler vector, and that actually requires unit eigenvectors. -- Robert Kern
_______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com