Python中带有文本数据的多输出分类器

Python中带有文本数据的多输出分类器,python,scikit-learn,Python,Scikit Learn,我想用scikit学习库在Python中制作多输出分类器。我想知道模型的特点和准确性。 我数据库中的所有数据都是分类的(字符串值)。 IDK为什么,但我总是得到这个错误: ValueError:无法将字符串转换为浮点:“这只是因为分类器需要浮点值,但您提供的是字符串。您需要对字符串进行编码,使其浮点数用于标签,并对特征进行编码,等等 这里查看这些链接,了解有关使用sklearn编码分类(字符串)值的更多信息 更新 阅读Scikit的官方文档,学习对分类值进行编码。代码中的第一个问题是需

我想用scikit学习库在Python中制作多输出分类器。我想知道模型的特点和准确性。 我数据库中的所有数据都是分类的(字符串值)。 IDK为什么,但我总是得到这个错误:


ValueError:无法将字符串转换为浮点:“这只是因为分类器需要浮点值,但您提供的是字符串。您需要对字符串进行编码,使其浮点数用于标签,并对特征进行编码,等等

这里查看这些链接,了解有关使用sklearn编码分类(字符串)值的更多信息

更新
阅读Scikit的官方文档,学习对分类值进行编码。

代码中的第一个问题是需要对分类列进行编码,并且需要onehotencoding。第二个问题是,您需要替换两个变量,即功能和结果

Ok,但我应该为功能或结果(我认为功能)取浮点值吗?另外,你能给我一个示例代码吗?你需要把它们都转换成float。我不明白我的特性怎么可能是float?我的意思是,例如,如果我有一些值和结果,结果是分类值(“是”、“可能”、“否”),我想预测我的特征,为什么我要将结果转换为浮点?此外,我正在阅读你发给我的文档,但我找不到一种方法来处理我的问题dataset@taga,这正是编码分类值的含义。“是”编码为1,“可能”编码为2,“否”编码为3。因此,您的所有分类特征也需要编码。这是因为,分类器只能处理浮点值,而不能处理字符串。如果查看文档,则所有分类器都需要浮点值。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn import tree
from sklearn.multioutput import MultiOutputClassifier    

df = pd.read_csv('income_education.csv')

#creating features and results for my model
features = df.iloc[:,-1]
results = df.iloc[:,:-1]    

#spliting my data into train and test
features_train, features_test, result_train, result_test = train_test_split(features, results, test_size = 0.3, random_state = 42)

classifier = MultiOutputClassifier(tree.DecisionTreeClassifier())

#model fitting
cls = classifier
model = cls.fit(features_train, result_train)

pred = model.predict([cv.transform(['more'])])
print(pred)

# How to check accuracy of this classifier