Unsupervised endmember discovery & classification for multispectral/hyperspectral data
Think: any mixed pixel ≈ non‑negative combo of a small set of pure spectra.
R.c eigenvectors EV₁…EV_c (basis of a low‑dimensional subspace).Tip: Normalize spectra (e.g., unit norm) to remove brightness/illumination and keep shape.
R; take eigenvectors with largest eigenvalues → EV₁…EV_c.c‑1 spectral dimensions to zero and checking non‑negativity to get candidate corners.Let N=pixels, B=bands, c=components (small).
O(N·B²).O(B³).C(B, c‑1) tuples; each solve/check ≈ O((c‑1)³ + B·c) ⇒
total ≈ O(C(B,c‑1)·((c‑1)³ + B·c)).c, dominated by O(N·B² + B³ + B^{c‑1}). If you call input size n:
O(N·B²)) plus terms independent of N;O(B²); corners O(B·K) (K corners kept).Rule of thumb: for modest B (≤50) and small c (2–5), SVD is cheap; the corner search can be the bottleneck.
Use this slide as your “discussion” page: what worked, what failed, and why.