«ValueError: не удалось преобразовать строку в число с плавающей точкой» при использовании OneHotEncoder для машинного обучения - PullRequest
2 голосов
/ 09 апреля 2019

Я использую LabelEncoder и OneHotEncoder для обработки «категориальных данных» в моем наборе данных. В моем наборе данных есть столбец, который может иметь два значения: «Бензин» или «Дизель», и я хочу закодировать этот столбец. Я запускаю этот кусок кода, и он дает ошибку.

import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder,OneHotEncoder

dataset = pd.read_csv('ToyotaCorolla.csv')
X = dataset.iloc[:, 1:10].values
y = dataset.iloc[:, 0].values

labelencoder_X = LabelEncoder()
X[:, 3] = labelencoder_X.fit_transform(X[:, 3])
onehotencoder = OneHotEncoder(categorical_features = [3])
X = onehotencoder.fit_transform(X).toarray()

Столбец [3] будет иметь категориальное значение. Но появляется ошибка «ValueError: не удалось преобразовать строку в число с плавающей точкой:« Diesel »». Я не знаю, где я иду не так. пожалуйста помоги. Спасибо!

1 Ответ

4 голосов
/ 10 апреля 2019

categorical_features устарела, вместо этого непосредственно преобразуйте вашу категориальную особенность

onehotencoder = OneHotEncoder(categories='auto')
feature = onehotencoder.fit_transform(X[:, 3].reshape(-1, 1))
...