Я пытаюсь использовать один горячий кодировщик для целевого столбца («Виды») в наборе данных Iris.
Но я получаю следующие ошибки:
ValueError:Ожидаемый 2D-массив, вместо него получен 1D-массив:
Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют один объект, или array.reshape (1, -1), если он содержитодин образец.
Id SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species
0 1 5.1 3.5 1.4 0.2 Iris-setosa
1 2 4.9 3.0 1.4 0.2 Iris-setosa
2 3 4.7 3.2 1.3 0.2 Iris-setosa
3 4 4.6 3.1 1.5 0.2 Iris-setosa
4 5 5.0 3.6 1.4 0.2 Iris-setosa
Я решил проблему с Google, и обнаружил, что большинству оценок обучения scikit необходим двумерный массив, а не одномерный массив.
В то же времяЯ также обнаружил, что мы можем попробовать передать фрейм данных с его индексом для кодирования отдельных столбцов, но это не сработало
onehotencoder = OneHotEncoder(categorical_features=[df.columns.tolist().index('pattern_id')
X = dataset.iloc[:,1:5].values
y = dataset.iloc[:, 5].values
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder= LabelEncoder()
y = labelencoder.fit_transform(y)
onehotencoder = OneHotEncoder(categorical_features=[0])
y = onehotencoder.fit_transform(y)
Я пытаюсь кодировать один категориальный столбец и разбить его на несколько столбцов (как обычно работает кодировка)