Python 测试集的反向差分编码是如何工作的?
根据本网站(),后向差分编码的定义为“。在后向差分编码中,将某一水平的因变量平均值与前一水平的因变量平均值进行比较。这种类型的编码可能对标称或顺序变量有用。' 我不明白的是,如果这种编码方法依赖于因变量(如果我理解正确,则与输出变量相同),当因变量未提前提供给模型时,我们如何对测试集执行反向差分编码?在训练集中,因变量的值是给定的,但在测试集中,它们没有给定。有人能提供建议吗?这种方法只是对分类变量进行影响编码 如果您的分类列具有类别{C1、C2、C3、…},则按如下方式进行影响编码:Python 测试集的反向差分编码是如何工作的?,python,machine-learning,hash,encoding,scikit-learn,Python,Machine Learning,Hash,Encoding,Scikit Learn,根据本网站(),后向差分编码的定义为“。在后向差分编码中,将某一水平的因变量平均值与前一水平的因变量平均值进行比较。这种类型的编码可能对标称或顺序变量有用。' 我不明白的是,如果这种编码方法依赖于因变量(如果我理解正确,则与输出变量相同),当因变量未提前提供给模型时,我们如何对测试集执行反向差分编码?在训练集中,因变量的值是给定的,但在测试集中,它们没有给定。有人能提供建议吗?这种方法只是对分类变量进行影响编码 如果您的分类列具有类别{C1、C2、C3、…},则按如下方式进行影响编码:
Impact(category = Ci) = E[y|Ci] - E[y]
在培训期间,对于每个类别(Ci),它计算平均输出(给定该类别,即后验概率)和因变量的总体预期值(先验)之间的差异。有关影响编码的更多参考,请参阅本文(第10页)
在测试阶段,为了将测试数据的分类变量转换为其影响代码,它使用与训练数据相同的预期值“y”。因为这是一个期望值,所以训练数据的样本数是否比测试数据的样本数多并不重要(只要“y”在两个数据集中的分布相似)。我想,在测试过程中,您必须使用训练集中的值。@Stergios,如果测试集的长度与训练集的长度不同怎么办?假设训练集有10000条记录,而测试集只有500条记录。模型如何知道从训练集中分配给测试集的标签?