added n_discard parameter to _svd()
check value of n_components and n_best