0

我在 Scikit-learn 中使用局部线性嵌入(LLE) 方法进行降维。我能找到的唯一示例属于此处此处的 Scikit-learn 文档,但我不确定应该如何选择该方法的参数。特别是,数据点的维度或样本数与邻居数(n_neighbors)和组件数(n_components)之间是否存在任何关系?Scikit-learn 中的所有示例都使用 n_components=2,总是这样吗?最后,是否有任何其他对调整至关重要的参数,或者我应该对其余参数使用默认设置?

4

2 回答 2

2

数据点的维度或样本数与邻居数(n_neighbors)和组件数(n_components)之间是否有任何关系?

一般来说,不相关。n_neighbors通常由样本之间的距离决定。特别是,如果您知道样本的类别,则最好设置n_neighbors比每个类别中的样本数量大一点。而n_components,即缩减的维度大小,是由原始维度中数据的冗余度决定的。您可以根据具体的数据分布和自己的需求,选择合适的空间维度进行投影。

n_components=2是将原始的高维空间映射到二维空间。其实这是个特例。

是否有任何其他对调整至关重要的参数,或者我应该对其余参数使用默认设置?

以下是您应该注意的其他几个参数。

  • reg用于权重正则化,在原始 LLE 论文中没有使用。如果您不想使用它,只需将其设置为零即可。但是,默认值为 ,reg非常1e-3小。
  • eigen_solver. 如果您的数据量很小,建议使用dense准确性。你可以对此做更多的研究。
  • max_iter. 的默认值max_iter只有100,这往往会导致结果不收敛。如果结果不稳定,请选择较大的整数。
于 2017-07-08T10:03:27.580 回答
0

您可以使用 GridSearch (Scikit-learn) 为您选择最佳值。

于 2017-03-23T23:43:48.213 回答