python – 如何编码每列具有多个值的功能?需要MultiDictVectorizer吗?

我在sklearn中使用了一些功能,我遇到了一个问题.如果您的数据可以编码为每个项目的一个dict键,则DictVectorizer可以正常工作.如果您的商品可以包含同一列的两个或更多值,该怎么办?例如,DictVectorizer可以在这样的项目上正常工作:

{'a': 'b', 'b': 'c'}

但是这样的事情呢,每列有多个值?

{'a': ['b','c'], 'b': 'd'}

单热编码的策略仍然适用,你只需要两列…… a = b和a = c.据我所知,没有这样的矢量化器存在!在这种情况下应该做什么?我需要创建自己的MultiDictVectorizer吗?

在发布之前,我在blog post这里写了这篇文章.

最佳答案 这种情况至少有两种快速解决方案:

>创建一个新值,表示具有两个聚合值的可能性

{‘a’:’bc’,’b’:’d’}或给它另一个名字,即’bc’ – >’e’
>每次采用其中一个值时复制样本

{‘a’:’b’,’b’:’d’}和
{‘a’:’c’,’b’:’d’}

但当然这很大程度上取决于你的问题的背景(案例2:“复制”具有不同表现形式的样本是否正确?案例1:在概念上是否可以接受该特征的另一个新值?).例如,我甚至不知道该多值特征是否对应于N / A情况.

我已经看到了你的github提议,所以我明白这不是你想要的,但以防万一它能省你的努力.

点赞