automl/auto-sklearn

FastICA: `n_components is too large: it will be set to _`

Open

#240 opened on Feb 24, 2017

View on GitHub
 (4 comments) (0 reactions) (0 assignees)Python (1,265 forks)batch import
Good first issueenhancement

Repository metrics

Stars
 (7,270 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

FastICA currently looks for n_components between 10 and 2000, with a default of 100. However, assuming there are more rows N than columns M, a data set can only support up to M independent components. The suggested range is therefore between 2 and M, with a default of round(M / 2).

Looking at the implementation, it appears information about the data set is not available in get_hyperparameter_search_space. As a workaround, the n_components property could be replaced by a n_components_rel property that indicates the amount of independent components relative to the total number of features M. When calling sklearn.decomposition.FastICA, you could then simply pass n_components=X.shape[1] * self.n_components_rel.

Contributor guide