Scikit — массив 3D-функций для SVM

Я пытаюсь обучить SVM в scikit. Я следую примеру и пытаюсь настроить его на свои векторы 3D-функций. Я попробовал пример со страницы http://scikit-learn.org/stable/modules/svm.html, и он запустился. Во время исправления ошибок я вернулся к настройке учебника и нашел это:

X = [[0, 0], [1, 1],[2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y) 

работает пока

X = [[0, 0,0], [1, 1,1],[2,2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y)

терпит неудачу с: ValueError: X.shape[1] = 2 should be equal to 3, the number of features at training time

что здесь не так? Это всего лишь одно дополнительное измерение... Спасибо, Эль.


person El Dude    schedule 06.07.2013    source источник


Ответы (1)


Запуск вашего последнего кода работает для меня:

>>> X = [[0,0,0], [1,1,1], [2,2,2]]
>>> y = [0,1,1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, shrinking=True, tol=0.001,
  verbose=False)

Похоже, что это сообщение об ошибке должно происходить, когда вы вызываете .predict() для объекта SVM с помощью kernel="precomputed". Так ли это?

person Danica    schedule 07.07.2013
comment
К сожалению, нет, или, по крайней мере, я не добавляю такие вещи. Какая версия scikit у вас работает? У меня есть пакет macport для Mac, работающий здесь. py27-scikit-learn @ 0.13.1 (python, наука) Это слишком старо, по-вашему? - person El Dude; 08.07.2013
comment
0.13.1 — это версия, которую я использую (и самая последняя версия). Можете ли вы скопировать вывод выполнения этого кода в сеансе Python? - person Danica; 08.07.2013
comment
моя ставка, я нашел ошибку. Во-первых, он сидел между стулом и клавиатурой. Ошибка действительно была из .predict. Я забыл настроить вектор размерности в вызове прогноза и давал 3D-обученной SVM 2D-вектор. Извините, но я предполагаю, что это происходит, когда человек работает сам по себе. :П - person El Dude; 08.07.2013