我知道scikit-learn中的计算是基于NumPy所以一切都是矩阵或数组。
此包如何处理混合数据(数字和名义值)?
例如,产品可以具有属性“颜色”和“价格”,其中颜色是名义上的,价格是数字。我注意到有一个名为'DictVectorizer'的模型来计算名义数据。例如,两个产品是:
products = [{'color':'black','price':10}, {'color':'green','price':5}]
'DictVectorizer'的结果可能是:
[[1,0,10],
[0,1,5]]
如果属性'color'有许多不同的值,则矩阵将非常稀疏。长特征会降低某些算法的性能,例如决策树。
有没有办法使用名义价值而无需创建虚拟代码?
答案 0 :(得分:6)
scikit-learn中的DecisionTree类需要进行一些重构才能有效地处理高基数分类特征(甚至可能使用自然稀疏的数据,如文本TF-IDF向量)。
没有人正在研究AFAIK。