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

Reply via email to