[ 
https://issues.apache.org/jira/browse/FLINK-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15116993#comment-15116993
 ] 

Till Rohrmann commented on FLINK-1733:
--------------------------------------

Hi [~thang], I think for a first version your interface definition sounds fine. 
The user provides the number of principal components he wants to obtain and he 
receives a {{DataSet[Vector]}} or {{DataSet[DenseVector]}} which are the 
principal components.

Your description of the standard PCA is also correct. However, I think for the 
distributed execution it might be a bit different. Best you check out the 
linked resources or google for papers describing a distributed PCA 
implementation on MapReduce.

Be aware that if you want to order the vectors contained in the resulting 
{{DataSet}} you have to give them IDs or assign them their eigenvalues because 
the {{DataSet}} does not allow you to store the data in order.

If you're new to Scala, then I can recommend you reading 
http://www.artima.com/pins1ed/. It's a good book even though it is getting a 
bit long in the tooth.


> Add PCA to machine learning library
> -----------------------------------
>
>                 Key: FLINK-1733
>                 URL: https://issues.apache.org/jira/browse/FLINK-1733
>             Project: Flink
>          Issue Type: New Feature
>          Components: Machine Learning Library
>            Reporter: Till Rohrmann
>            Assignee: Thang Nguyen
>            Priority: Minor
>              Labels: ML
>
> Dimension reduction is a crucial prerequisite for many data analysis tasks. 
> Therefore, Flink's machine learning library should contain a principal 
> components analysis (PCA) implementation. Maria-Florina Balcan et al. [1] 
> proposes a distributed PCA. A more recent publication [2] describes another 
> scalable PCA implementation.
> Resources:
> [1] [http://arxiv.org/pdf/1408.5823v5.pdf]
> [2] [http://ds.qcri.org/images/profile/tarek_elgamal/sigmod2015.pdf]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to