Сокращение размеров для контролируемого обучения
У меня есть этот тип 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). Теперь я хочу изучать этот набор функций под наблюдением вместе с массивом меток. Но когда я пытаюсь сделать это, он говорит, что ожидаемое количество аргументов <=3.
Теперь я попытался уменьшить размеры LDA следующим образом.
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(features, labels).transform(features)
Но опять же это говорит о том, что LDA ожидает <=2 измерения. Как мне уменьшить размеры.
2 ответа
Проблема с вашим кодом проста, вы не отправляете список в нужном формате.... Формат, который .fit
Требуется двумерный массив. То, что вы отправляете, является 3-мерным... Не было необходимости использовать уменьшение размерности, потому что это совершенно другая проблема... (для предотвращения подгонки, чтобы быть конкретным)
Итак, предположим, что ваш массив это имя arr
(Ndarray)
просто сделай это -
fin_array = arr.reshape((2*243, 320))
Что это сделает, так это конвертирует ваш массив в двухмерный список и теперь вы можете использовать его, чтобы соответствовать модели!
Используя изменение формы:
new_img = np.reshape(old_data,(2,243*320))