python - 在scikit learn中,如何处理数值和标称值混合的数据?

标签 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]]

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

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

最佳答案

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

据我所知,目前还没有人在做这方面的工作。

关于python - 在scikit learn中,如何处理数值和标称值混合的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690930/

相关文章:

python - 选择 pandas 数据框中的多列,列索引为序号

python - 如何确定为 xlsxwriter 中的特定列填充的最后一行?

python - 二元分类问题中每个概率截止的准确性(python sklearn 准确性)

python - 如何分割数据集 - 标签数 = 150 与样本数 = 600 不匹配

python - 如何在元素应用程序中扩展 Django 元素根 HTML 文件?

Python ASCII 加密程序

tensorflow - TensorFlow 中 logits 一词的含义是什么?

java - 在 Java 中制作决策树的最佳学习算法?

python - 将一列字符串转换为整数?

python - ValueError : Expected n_neighbors <= 1. Got 5 -Scikit K 最近分类器