【发布时间】:2016-10-13 14:56:46
【问题描述】:
我使用的是 sklearn 版本 0.16.1。似乎 FeatureHasher 不支持字符串(就像 DictVectorizer 一样)。 例如:
values = [
{'city': 'Dubai', 'temperature': 33.},
{'city': 'London', 'temperature': 12.},
{'city': 'San Fransisco', 'temperature': 18.}
]
print("Starting FeatureHasher ...")
hasher = FeatureHasher(n_features=2)
X = hasher.transform(values).toarray()
print X
但是收到如下错误:
_hashing.transform(raw_X, self.n_features, self.dtype)
File "_hashing.pyx", line 46, in sklearn.feature_extraction._hashing.transform (sklearn\feature_extraction\_hashing.c:1762)
TypeError: a float is required
我不能使用DictVectorizer,因为我的数据集非常大并且特征具有高基数,所以我得到了 MemoryError。 有什么建议吗?
更新(2016 年 10 月):
正如 NirIzr 评论的那样,现在支持这一点,因为 sklearn 开发团队在 https://github.com/scikit-learn/scikit-learn/pull/6173 中解决了这个问题
FeatureHasher 自 0.18 版起应正确处理字符串字典值。
【问题讨论】:
标签: python hash scikit-learn feature-extraction