【问题标题】:Prediction based on string Datatypes [closed]基于字符串数据类型的预测 [关闭]
【发布时间】:2021-07-18 01:22:54
【问题描述】:
我有一个非常简单的给定数据集,格式如下,可以运行一些机器学习算法并对其进行评估:
Var_1 Var_2
No 0
yes 1
.....
(No or Yes) ...(0 or 1)
(string) (int)
但是在运行时,这是我得到的错误:
ValueError: could not convert string to float:
如您所见,我是否将自变量作为字符串。这个问题可以通过什么方式解决?我尝试使用布尔值作为 Train_var,但它在那里也不起作用。
【问题讨论】:
标签:
python
pandas
dataframe
machine-learning
classification
【解决方案1】:
scikit-learn 的 LabelBinarizer 应该可以解决这个问题:
from sklearn.preprocessing import LabelBinarizer
import pandas as pd
# For reproducing:
from io import StringIO
dataset = StringIO("""
Var_1,Var_2
No,0
yes,1
No,1
yes,1
""")
df = pd.read_csv(dataset)
binarize = LabelBinarizer()
y = binarize.fit_transform(df["Var_1"])
print(y)
# [[0]
# [1]
# [0]
# [1]]
作为额外的好处,很容易反转转换器并在预测后恢复原始标签:
print(binarize.inverse_transform(y))
# ['No' 'yes' 'No' 'yes']