我有这种类型的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维度。如何减小尺寸。
答案 0 :(得分:1)
您的代码问题很简单,您不是以所需的格式发送列表.... .fit
所需的格式是二维数组。你发送的是一个三维...没有必要使用降维,因为它完全是一个不同的问题...(用于防止过度拟合是特定的)
因此,将数组命名为arr
(ndarray)
就这样做 -
fin_array = arr.reshape((2*243, 320))
这样做的目的是将您的阵列转换为2d列表,现在您可以使用它来适应模型!
答案 1 :(得分:0)
使用重塑:
new_img = np.reshape(old_data,(2,243*320))