изменение размера тестовой сетки - PullRequest
0 голосов
/ 10 июня 2018

У меня есть тестовый набор данных с формой (100, 49280)

Я пытаюсь построить данные из классификации SVM, основанные на примере в http://scikit -learn.org/0.18/auto_examples/classification/plot_classifier_comparison.html примерно так:

x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))

Поэтому я печатаю x_min, x_max, h, y_min, y_max:

-0.6541590243577957

7.5925517082214355

0.02

-0.9953588843345642

4.58396577835083

пока все хорошо, согласно тому, что я нашел в документах, я ожидаю получитьЯчеистый массив с этими значениями.

, просто чтобы проверить, я печатаю xx и yy и получаю:

(279, 413)
(279, 413)

, что кажется подозрительным.и когда я добираюсь до линии:

Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])

я получаю ошибку: ValueError: X.shape [1] = 2 должен быть равен 49280, количество функций во время обучения

Я никогда не использовал функцию meshgrid numpy, но все, что я прочитал в документах, кажется нормальным и хорошо задокументированным, как и большинство numpy.Я уверен, что мне не хватает чего-то глупого, но для жизни я не могу найти это.У кого-нибудь есть идеи, где я ошибся?Я постараюсь составить более информативное название для вопроса, как только выясню, в чем проблема.

1 Ответ

0 голосов
/ 10 июня 2018

Функция np.arange не подходит для этого сценария.Вы, вероятно, хотите использовать np.linspace следующим образом

xx, yy = np.meshgrid(np.linspace(x_min, x_max), np.linspace(y_min, y_max))

Страница документации для np.linspace

https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...