减少监督学习的维度

Reducing dimensions for supervised learning

我有这种类型的 numpy 数组。在这里我展示了数组的 2 个元素。我已将 .jpeg 文件转换为 numpy 数组。

[[[130 130 130 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  ..., 
  [255 255 255 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  [ 68  68  68 ...,  68  68  68]]

  [[130 130 130 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  ..., 
  [255 255 255 ..., 255 255 255]
  [255 255 255 ..., 255 255 255]
  [ 68  68  68 ...,  68  68  68]]]

这个 numpy 数组的形状是:(2, 243, 320)。 现在我想对这个特征数组以及一个标签 numpy 数组进行监督学习。但是当我尝试这样做时,它说预期的参数数量 <=3.

现在我尝试按如下方式通过 LDA 降维。

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(features, labels).transform(features)

但它再次表示 LDA 期望 <=2 维。我如何减少尺寸。

使用整形:

new_img = np.reshape(old_data,(2,243*320))

您的代码的问题很简单,您没有以要求的格式发送列表...。.fit 要求的格式是二维数组。您发送的是 3 维的...不需要使用降维,因为它完全是一个不同的问题...(具体来说是为了防止过度拟合)

所以假设你的数组是名称 arr(ndarray)

就这样做 -

fin_array = arr.reshape((2*243, 320))

这样做的目的是将您的数组转换为二维列表,现在您可以使用它来拟合模型了!