Передача 3D-данных для обучения SVM в scikit - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь использовать данные, собранные в ходе эксперимента, для создания модели SVM с помощью sci-kit. Мои входные данные - трехмерный массив (пример x ниже), с метками, являющимися логическими метками (пример y).

X = [[[00, 00], [01, 01],[02,02]],[[10,10],[11,11],[12,12]],[[20,20],[21,21],[22,22]]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y) 

Однако всякий раз, когда я пытаюсь выполнить приведенный выше код, я получаю следующую ошибку:

ValueError: Found array with dim 3. Estimator expected <= 2.

Я новичок в машинном обучении и scikit. Буду признателен за любую помощь и указания, которые помогут решить эту проблему.

1 Ответ

0 голосов
/ 10 марта 2020

Для целей вычисления X должен быть двумерной матрицей. Для измерений 3+ это должна быть нейронная сеть, такая как Сверточная нейронная сеть или Рекуррентная нейронная сеть .

В вашем случае вы должны возможно сглаживает последнее измерение, приводящее к двумерной матрице, например:

X = [[00, 00, 01, 01, 02, 02],
     [10, 10, 11, 11, 12, 12],
     [20, 20, 21, 21, 22, 22]]

Я говорю возможно , потому что это действительно зависит от ваших данных. Если третье измерение связано со временем, вам следует рассмотреть возможность использования Recurrent Neural Network . Если это что-то связанное с Dynami c, вы можете вычислить, например, производную. Это индивидуальное применение, и иногда идея не тривиальна

...