3

你能用字符串数据训练 DecisionTreeClassifier 吗?

当我尝试使用字符串数据时,我得到一个 ValueError: could not convert string to float

clf = DecisionTreeClassifier()
clf.fit([['asdf', '1'], ['asdf', '0']], ['2', '3'])

4

1 回答 1

7

您需要将字符串值特征转换为 NumPy 数组中的数字特征;DictVectorizer为你做。

samples = [['asdf', '1'], ['asdf', '0']]
# turn the samples into dicts
samples = [dict(enumerate(sample)) for sample in samples]

# turn list of dicts into a numpy array
vect = DictVectorizer(sparse=False)
X = vect.fit_transform(samples)

clf = DecisionTreeClassifier()
clf.fit(X, ['2', '3'])

记住vect.transform在将这些样本转换为字典后,在测试样本上使用。

于 2012-06-08T13:34:11.413 回答