MPI-IS / Grassmann-Averages-PCA

Robust and scalable PCA using Grassmann averages, in C++ with Matlab bindings
https://ps.is.tuebingen.mpg.de/research_projects/robust-pca
BSD 3-Clause "New" or "Revised" License
29 stars 4 forks source link

boost 1.59 VS 2015 #1

Open skn123 opened 8 years ago

skn123 commented 8 years ago

grassmann_pca.hpp(687): error C2780: 'boost::_bi::bind_t<_bi::dm_result<MT:: ,A1>::type,boost::_mfi::dm<M,T>,_bi::list_av_1::type> boost::bind(M T::* ,A1)': expects 2 arguments - 3 provided E:\ThirdPartyLibraries_VS2015\64Bit\boost-1_59\include\boost-1_59\boost/bind/bind.hpp(2018): note: see declaration of 'boost::bind' G:\Work_Dump\Integrated_Pipeline\src\Utilities\DimensionalityReduction\Linear\PCA\GrassmannPCA\GrassmannPCA.cpp(93): note: see reference to function template instantiation 'bool grassmann_averages_pca::grassmann_pca<data_t,grassmann_averages_pca::details::norm2>::batch_process<grassmann_averages_pca::details::ublas_helpers::row_iter,grassmann_averages_pca::details::ublas_helpers::row_iter>(const size_t,size_t,const it_t,const it_t,it_o_basisvectors_t,const std::vector<data_t,std::allocator<_Ty>> )' being compiled with [ it_t=grassmann_averages_pca::details::ublas_helpers::row_iter, it_o_basisvectors_t=grassmann_averages_pca::details::ublas_helpers::row_iter, data_t=data_t, _Ty=data_t ]

raffienficiaud commented 8 years ago

Hi,

Thank you for the feedback, would you please test the develop branch? I fixed the Matlab compilation issue, the unit test are still failing the compilation though.

Thanks,

skn123 commented 8 years ago

I don't use MATLAB. Do you have any example for out-of-sample projection? I can test it then with my own data.

skn123 commented 8 years ago

An update; If I use this module within my own data; I get "plausible" results if I do not do centering of data. However, the results are garbage if data centering takes place.

raffienficiaud commented 8 years ago

What do you mean by "out-of-sample" ? There are direct use of the algorithms in the "application" folder that you may use.

When you say "garbage", do you think this is buggy or that the method is not adapted? What kind of data are you trying to project?

skn123 commented 8 years ago

First point: https://github.com/casperkaae/MATLAB/blob/master/drtoolbox/out_of_sample.m

This is what I mean by OOS

I am using spectral data; The code by itself is not buggy. However, I have checked that if I do not "center the data" before calling your routine, then it works fine. However, if I do apply the centering and use the formula listed in the link above, then the results are garbage.

However, it may so happen that the formula shown in the code is not applicable for your method. So, if you have anything else that would achieve OOS then please share an example of that.