我正在使用 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:无法将字符串转换为浮点数:'柴油'”。
我不知道我哪里出错了。请帮忙。谢谢!

最佳答案

categorical_features 已弃用,而是直接转换您的分类特征

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

关于machine-learning - "ValueError: could not convert string to float"使用 OneHotEncoder 进行机器学习,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55600774/

10-12 21:17