我尝试使用LDA并找到3通道输出。但是它的输出只有2个通道。
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
x = []
y = []
for i in range(len(img)):
for j in range(len(img[0])):
x.append([i,i,j,j])
y.append(img[i][j])
y = np.array(y)
x = np.array(x)
y.shape,x.shape
lad = out = _ = ''
lda = LDA(n_components=3)
out = lda.fit(x, y).transform(x)
print(out.shape,y.shape,x.shape)
我使用[I, I, j, j],因为LDA要求我让x具有更多的特征。
,打印输出为:((392960, 2), (392960,), (392960, 4))
但是对于out。(1)
LinearDiscriminantAnalysis
中的分量数总是小于类数,因为它将数据投影到维数最多为类数减1的仿射子空间中。看起来你的y
有3个类。