2024-06-16 11:06:27 发布
网友
我使用Scikit learn中的局部线性嵌入(LLE)方法进行降维。我能找到的唯一示例属于Scikit学习文档here和{a2},但我不确定应该如何选择方法的参数。特别是,数据点的维数或样本数与邻域数(n_neighbors)和分量数(n_components)之间有没有关系?Scikit learn中的所有示例都使用n_components=2,总是这样吗?最后,是否还有其他参数需要优化,或者我应该对其余参数使用默认设置?在
n_neighbors
n_components
Is there any relation between the dimension of data points or the number of samples and the number of neighbors (n_neighbors) and number of components (n_components)?
一般来说,没有关系。n_neighbors通常由样本之间的距离决定。尤其是,如果您知道样本的类,那么最好将n_neighbors设置为比每个类中的样本数稍大一点。而n_components,即降维大小,是由原始维中数据的冗余度决定的。根据具体的数据分布和您自己的需求,您可以选择合适的空间维度进行投影。在
n_components=2是将原始高维空间映射到二维空间。实际上,这是一个特例。在
n_components=2
Is there any other parameter that is critical to tune, or I should use the default setting for the rest of parameters?
这里还有几个你应该注意的参数。在
reg
1e-3
eigen_solver
dense
max_iter
您可以使用GridSearch(Scikit learn)为您选择最佳值。在
一般来说,没有关系。
n_neighbors
通常由样本之间的距离决定。尤其是,如果您知道样本的类,那么最好将n_neighbors
设置为比每个类中的样本数稍大一点。而n_components
,即降维大小,是由原始维中数据的冗余度决定的。根据具体的数据分布和您自己的需求,您可以选择合适的空间维度进行投影。在n_components=2
是将原始高维空间映射到二维空间。实际上,这是一个特例。在这里还有几个你应该注意的参数。在
reg
用于权重正则化,它在the original LLE paper中没有使用。如果你不想使用它,只需将它设置为零。但是,reg
的默认值是1e-3
,这个值非常小。在eigen_solver
。如果您的数据量很小,建议使用dense
以保证准确性。你可以做更多的研究。在max_iter
。max_iter
的默认值只有100,,这通常会导致结果不收敛。如果结果不稳定,请选择较大的整数。在您可以使用GridSearch(Scikit learn)为您选择最佳值。在
相关问题 更多 >
编程相关推荐