Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
OpenWalnut Core OpenWalnut Core
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 82
    • Issues 82
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenWalnut
  • OpenWalnut CoreOpenWalnut Core
  • Issues
  • #64

Closed
Open
Created May 02, 2014 by Sebastian Volke@volkeOwner

-RM-359-MR-Principal Component Analysis algorithm

Implementation of the Principal Component Analysis algorithm

OpenWalnut path: core/common/math/PrincipalComponentAnalsis

The Principal Component Analysis (PCA) analyzes the distribution of points within a selection. Firstly it analyzes its main distribution directions (Eigen Vectors). It also puts out how strongly points are distributed within these three ways (Eigen Values). See http://georgemdallas.wordpress.com/2013/10/30/principal-component-analysis-4-dummies-eigenvectors-eigenvalues-and-dimension-reduction/

How it works: At first the class WPrincipleComponentAnalysis.h runs the covariance analysis over the input points. Its result is taken to libeigen in order to get Eigen Values and Eigen Vectors. The code is proposed not to be limited to any sort of plugins.

More Links that help to understand PCA: Desribes PCA: http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf Solving det( A-Lambda*I ) = 0: https://www.scss.tcd.ie/Rozenn.Dahyot/CS1BA1/SolutionEigen.pdf Using the cubic Lambda equation to calculate p and q: http://en.wikipedia.org/wiki/Cubic_function#Reduction_to_a_depressed_cubic Not best but easiest way to solve Lambda: http://en.wikipedia.org/wiki/Cubic_function#Three_real_roots Putting lambdavalues and solving gaussian equations to get Eigen Vectors: https://www.scss.tcd.ie/Rozenn.Dahyot/CS1BA1/SolutionEigen.pdf

(from redmine: created on 2014-05-02, closed on 2015-03-14)

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking