【问题标题】:ValueError: could not convert string to float: 'what' (Sklearn), How to use the labelencoder?ValueError:无法将字符串转换为浮点数:'what'(Sklearn),如何使用标签编码器?
【发布时间】:2021-07-23 18:36:20
【问题描述】:

我有两个训练集输入和输出集

X = df['First Word']

y = df['Answers']

当我尝试时:

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier()
model.fit(X,y)
predictions = model.predict(['how'])

我得到了错误:

ValueError: could not convert string to float: 'what'

错误是指 str() 无法传递给 fit() 方法。

在这种情况下如何使用 LabelEncoder 才能使上面的代码起作用?

【问题讨论】:

  • 这种错误 ValueError: could not convert string to float: 从 csv 文件中读取数据帧时会发生 df = df[['p']].astype({'p ': 漂浮})。如果 csv 是用空格记录的,python 不会将空格字符识别为 nan。您需要使用 df = df.replace(r'^\s*$', np.nan, regex=True) 用 NaN 覆盖空单元格
  • 没有nans

标签: python pandas scikit-learn decision-tree sklearn-pandas


【解决方案1】:

所有 ML 模型都需要以数字的形式输入,因此您需要根据需要对输入数据进行标签编码器或 one-hot 编码。

您可以使用以下代码对数据帧进行编码

 from sklearn import preprocessing
 le = preprocessing.LabelEncoder()
 X = le.fit_transform(X)

编码传递给模型后,希望您不会收到该错误

【讨论】:

    猜你喜欢
    • 2020-05-25
    • 2018-09-20
    • 2019-02-06
    • 2019-02-08
    • 2020-08-26
    • 2020-05-05
    • 2020-01-22
    • 2019-04-27
    • 2018-04-03
    相关资源
    最近更新 更多