Skip to content

Latest commit

 

History

History
46 lines (28 loc) · 1.58 KB

File metadata and controls

46 lines (28 loc) · 1.58 KB

Curvilinear-Component-Analysis-Python

Curvilinear Component Analysis implementation for Python.

This code was implemented using the following article https://ieeexplore.ieee.org/document/554199 and the book "Nonlinear Dimensionality Reduction" by Michel Verleysen, John A. R. Lee.

The Algorithm

Curvilinear Component Analysis (CCA) is a Non-linear Dimensionality Reduction technic, basead on the distance betweens the points: it tries to create a new space, with a small dimension, which the distance betweens points are equal in the original space (if this distance is smaller than Lambda, one of the parameters of the algorithm).

Results

The author from the article tests the algorithm in 3 artificials examples, with 500 points each: sphere, U-fold and two circles. All these tests tries to reduce a 3 dimensional data to a 2 dimensional data. The results from my implementation are show in the following subsections.

Sphere

The original space:

Sphere original

The dy dx representation after CCA training:

dydx Sphere

The reduced space: Sphere reduced

U-fold

The original space:

U-fold original

The dy dx representation after CCA training:

dydx U-fold

The reduced space: U-fold reduced

Two Circle

The original space:

Two Circle original

The dy dx representation after CCA training:

dydx Two Circle

The reduced space: Two Circle reduced