我有一个这样的数据框:

import pandas as pd
test = pd.DataFrame({'type': ['a', 'b', 'a', 'c', 'b'], 'model': ['bab', 'ba', 'ba', 'ce', 'bw']})

我如何使用 sklearn FeatureHasher在上面?

我试过了:
from sklearn.feature_extraction import FeatureHasher
FH = FeatureHasher()
train = FH.transform(test.type)

但它不喜欢吗?似乎它想要一个字符串或一个列表,所以我尝试
FH.transform(test.to_dict(orient='list'))

但这也不起作用?
我得到:
AttributeError: 'str' object has no attribute 'items'

谢谢

最佳答案

您需要在初始化 FeatureHasher 实例时指定输入类型:

In [1]:
from sklearn.feature_extraction import FeatureHasher
h = FeatureHasher(n_features=5, input_type='string')
f = h.transform(test.type)
f.toarray()

Out[1]:
array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0., -1.,  0.,  0.,  0.],
       [ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  0., -1.,  0.,  0.],
       [ 0., -1.,  0.,  0.,  0.]])

请注意,根据上面链接的文档,这将假设这些功能的值为 1(粗体强调的是我的):

10-07 15:19