我正尝试将scikit的GaussianRandomProjection与形状为1599 x 11
的数据集一起使用,如下所示:
transformer = random_projection.GaussianRandomProjection()
X_new = transformer.fit_transform(wine_data.values[:, :11])
执行此操作时,出现错误消息:
ValueError: eps=0.100000 and n_samples=1599 lead to a
target dimension of 6323 which is larger than the original
space with n_features=1
我不明白该错误。这到底是什么意思?我该如何使用GaussianRandomProjection
来降低数据量?
答案 0 :(得分:0)
以下是GaussianRandomProjection
上Scikit-Learn官方文档中参数n_components
的直接引用:
目标投影空间的尺寸。
n_components可以根据数量自动调整 数据集中的样本以及由 约翰逊-林登斯特劳斯引理。在这种情况下,嵌入的质量 由eps参数控制。
应该指出的是,约翰逊-林登斯特劳斯引理可以产生 保守估计所需的组件数量 不对数据集的结构进行任何假设。
在您的情况下,估计器趋向于在“降低” 维数之后产生6323维投影目标。这显然是出乎意料的,因为您希望减小尺寸而不是增大尺寸。我建议您首先假定所需输出的尺寸(即8),然后测试模型是否按预期方式工作。
transformer = GaussianRandomProjection(n_components=8) #Set your desired dimension of the output
X_new = transformer.fit_transform(wine_data.values[:, :11])
祝你好运