Good first issueenhancement
描述
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.