你能用字符串数据训练DecisionTreeClassifier吗?
当我尝试使用字符串数据时,我得到了一个ValueError:无法将字符串转换为浮点数
clf = DecisionTreeClassifier()
clf.fit([['asdf', '1'], ['asdf', '0']], ['2', '3'])
回答:
你需要将字符串值的特征转换为NumPy数组中的数值特征;DictVectorizer
可以帮你完成这个操作。
samples = [['asdf', '1'], ['asdf', '0']]# 将样本转换为字典samples = [dict(enumerate(sample)) for sample in samples]# 将字典列表转换为NumPy数组vect = DictVectorizer(sparse=False)X = vect.fit_transform(samples)clf = DecisionTreeClassifier()clf.fit(X, ['2', '3'])
记得在将测试样本转换为字典后,使用vect.transform
处理这些测试样本。