如何使用 DictVectorizer() 在稀疏数组中表示特征?

问题描述 投票:0回答:1

代码:

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,但每次都给出不同的答案。

python machine-learning feature-extraction
1个回答
0
投票

输出的前三列对应于输入中的

city
,一个对应于每个观察到的城市;来自文档

当特征值是字符串时,此转换器将执行二进制单热(又名 one-of-K)编码:为特征可以采用的每个可能的字符串值构造一个布尔值特征。

最后一列是

temperature
列。

如果您使用的是最新版本的 sklearn,您可以使用

vec.get_feature_names_out()
进行验证。

© www.soinside.com 2019 - 2024. All rights reserved.