12

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

这个包如何处理混合数据(数值和标称值)?

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

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

'DictVectorizer' 的结果可能是:

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

如果属性“颜色”有很多不同的值,则矩阵将非常稀疏。而长特征会降低一些算法的性能,比如决策树。

有没有什么方法可以使用标称值而不需要创建虚拟代码?

4

1 回答 1

6

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

AFAIK 还没有人在做这方面的工作。

于 2012-07-27T15:49:24.390 回答