Для функции нормализации в Sklearn требуется 2D-массив - PullRequest
1 голос
/ 07 августа 2020

В линейной алгебре векторы нормализуются, когда они делятся на их норму, то есть на сумму в квадрате их компонентов.

Тем не менее, метод sklearn.preprocessing.normalize не принимает векторы, только матрицы минимум два столбца:

"ValueError: Ожидаемый 2D-массив, вместо него получен 1D-массив"

Почему?

Ответы [ 2 ]

1 голос
/ 07 августа 2020

normalize работает с набором данных, а не с вектором. У вас неправильное определение «нормализации» для этой функции . Работает на отдельных векторах. Если вы дадите ему 2D-массив из одного столбца (форма [N, 1]), вы можете нормализовать свой вектор "обычным" способом.

0 голосов
/ 07 августа 2020

Согласно документации для sklearn.preprocessing.normalize, параметр x - это данные для нормализации, элемент за элементом, и имеет форму [n_samples, n_features]. Функция normalize выполняет эту операцию с одним массивом данных, используя нормы L1 или L2.

...