Сокращение размеров для контролируемого обучения

У меня есть этот тип 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))
Другие вопросы по тегам