代码:
measurements = [
{'city': 'Dubai', 'temperature': 33.},
{'city': 'London', 'temperature': 12.},
{'city': 'San Francisco', 'temperature': 18.}]
vec = DictVectorizer()
transformed_sparse = vec.fit_transform(measurements)
print(transformed_sparse)
结果:
(0, 0) 1.0
(0, 3) 33.0
(1, 1) 1.0
(1, 3) 12.0
(2, 2) 1.0
(2, 3) 18.0
稀疏数组中的第一行告诉我们字典的第一行中存在键。那为什么温度值的索引是
(0,3)
?是第一行第三列的意思吗?不应该是第二个吗?
我找不到数组索引和字典之间的关系。我用过 ChatGPT,但每次都给出不同的答案。
输出的前三列对应于输入中的
city
,一个对应于每个观察到的城市;来自文档:
当特征值是字符串时,此转换器将执行二进制单热(又名 one-of-K)编码:为特征可以采用的每个可能的字符串值构造一个布尔值特征。
最后一列是
temperature
列。
如果您使用的是最新版本的 sklearn,您可以使用
vec.get_feature_names_out()
进行验证。