在scikit学习中,如何处理混合了数值和名义价值的数据?

时间:2012-07-27 15:26:40

标签: python machine-learning scikit-learn data-mining mixed

我知道scikit-learn中的计算是基于NumPy所以一切都是矩阵或数组。

此包如何处理混合数据(数字和名义值)?

例如,产品可以具有属性“颜色”和“价格”,其中颜色是名义上的,价格是数字。我注意到有一个名为'DictVectorizer'的模型来计算名义数据。例如,两个产品是:

products = [{'color':'black','price':10}, {'color':'green','price':5}]

'DictVectorizer'的结果可能是:

[[1,0,10],
 [0,1,5]]

如果属性'color'有许多不同的值,则矩阵将非常稀疏。长特征会降低某些算法的性能,例如决策树。

有没有办法使用名义价值而无需创建虚拟代码?

1 个答案:

答案 0 :(得分:6)

scikit-learn中的DecisionTree类需要进行一些重构才能有效地处理高基数分类特征(甚至可能使用自然稀疏的数据,如文本TF-IDF向量)。

没有人正在研究AFAIK。