我想使用 scikit learn lib 在 Python 中制作 MultiOutputClassifier。我想获得模型的特征和准确性。 我的数据库中的所有数据都是分类的(字符串值)。 我不知道为什么,但我总是收到此错误:
ValueError: could not convert string to float: '<=50K'
我的错误在这一行:
model = cls.fit(features_train, result_train)
这是代码:
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
最佳答案
代码中的第一个问题是您需要对分类列进行编码,并且 onehotencoding 也是必要的。第二个问题是您需要替换两个变量,即特征和结果
关于python - Python 中带有文本数据的 MultiOutputClassifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150453/