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