问题
似乎没有一个简单的方法来对没有顺序的数据进行热编码。我的问题是,对没有特定顺序的值进行热编码的最佳方法是什么?如果没有标准化的方法来做到这一点,为什么要订购一个热编码特性呢?在
示例
我正在尝试一个热编码的功能集,其中的值是自定义对象。我的目标是这样的:class MyObject(object)
def __init__(self, identity):
self.identity = identity
def __hash__(self):
return self.identity
def __eq__(self, other):
return self.identity == other.identity
在此设置中,可以比较MyObject的每个实例是否相等。假设我们有以下对象列表:
^{pr2}$
函数set(objects)产生一组2个对象,即MyObject(0)和{}。这确实是我所期待的行为。因此,当我尝试对这些数据进行一次热编码时,我会期望以下形式的内容:index MyObject_0, MyObject_1
0 1 0
1 0 1
2 1 0
然而,我尝试过的所有解决方案都要求数据是一个热编码的,以具有某种顺序,而这在我的例子中是未定义的。我认为,如果顺序未定义,那么仍然可以使用一个热编码,因为在这种情况下,哪个热编码特性在另一个之前并不重要。在
尝试解决方案
熊猫数据帧
我第一次尝试的解决方案是使用pandas的get_dummies()函数。在i