我知道 scikit-learn 中的计算是基于 NumPy 的,所以一切都是矩阵或数组。
这个包如何处理混合数据(数值和标称值)?
例如,产品可能具有属性“颜色”和“价格”,其中颜色是标称值,价格是数字。我注意到有一个名为“DictVectorizer”的模型来计算标称数据。例如,两个产品是:
products = [{'color':'black','price':10}, {'color':'green','price':5}]
'DictVectorizer' 的结果可能是:
[[1,0,10],
[0,1,5]]
如果“颜色”属性有很多不同的值,则矩阵会非常稀疏。而且长特征会降低一些算法的性能,比如决策树。
有没有什么方法可以使用标称值而不需要创建虚拟代码?
最佳答案
scikit-learn 中的 DecisionTree 类需要进行一些重构才能有效处理高基数分类特征(甚至可能处理文本 TF-IDF 向量等自然稀疏数据)。
据我所知,目前还没有人在做这方面的工作。
关于python - 在scikit learn中,如何处理数值和标称值混合的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690930/