没有。priority或cluster中的列不会被误解为严重性的第三列。在
以下是如何保存引用的答案:
在pandas.get_dummies中有一个参数,即drop_first允许您保留还是删除引用(是否将k或k-1虚拟对象排除在k个分类级别之外)。在
请注意drop_first = False这意味着引用不会被删除,并且k个伪对象是在k个分类级别上创建的!设置drop_first = True,编码后它将删除引用列。在
{此处链接^。在
与您的例子一样,severity有3个类别S1、S2和S3。
创建假人后,这些类别中的一个将始终为1,其他类别为0。在
s1为[1,0,0],s2为[0,1,0],s3为[0,0,1]
现在,如果您删除类别s1的列。在
如果严重性为S1,则值将为[0,0]
[1,0]如果严重性为S2
[0,1]如果严重性为S3。在
所以这里没有信息丢失,而且您的模型只需要处理一个列。
这就是为什么总是建议将drop_first参数保留为True。在
编辑:
应用假人后,您将得到如下列:severity_S1 severity_S2 severity_S3
1 0 0 # when value is S1
0 1 0 # when value is S2
0 0 1 # when value is S3
pandas.get_dummies()创建上述引用后删除第一列。
因此,您的数据如下所示:
^{pr2}$
对于所有这些变量,最终数据如下所示:
由于空间问题,我使用短列名:s2 s3 p2 p3 B C D
0 0 1 0 1 0 0 # For row with S1, P2 and B
0 1 0 1 0 1 0 # For row with S3, P3 and C
1 0 0 0 0 0 1 # For row with S2, P1 and D
1 0 0 0 0 0 0 # For row with S2, P1 and A