我知道scikit-learn的计算是基于NumPy的,因此一切都是矩阵或数组。
这个软件包如何处理混合数据(数值和名义值)?
例如,一个产品可以有'颜色'和'价格'属性,其中颜色是名义值而价格是数值。我注意到有一个模型名为 'DictVectorizer' 来对名义数据进行数字化。例如,两个产品是:
products = [{'color':'black','price':10}, {'color':'green','price':5}]
'DictVectorizer' 的结果可能是:
[[1,0,10],
[0,1,5]]
如果属性"颜色"有很多不同的取值,矩阵将非常稀疏。而且长特征会降低一些算法(如决策树)的性能。
有没有什么办法可以使用名义值而不需要创建虚拟编码?