Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试集的反向差分编码是如何工作的?_Python_Machine Learning_Hash_Encoding_Scikit Learn - Fatal编程技术网

Python 测试集的反向差分编码是如何工作的?

Python 测试集的反向差分编码是如何工作的?,python,machine-learning,hash,encoding,scikit-learn,Python,Machine Learning,Hash,Encoding,Scikit Learn,根据本网站(),后向差分编码的定义为“。在后向差分编码中,将某一水平的因变量平均值与前一水平的因变量平均值进行比较。这种类型的编码可能对标称或顺序变量有用。' 我不明白的是,如果这种编码方法依赖于因变量(如果我理解正确,则与输出变量相同),当因变量未提前提供给模型时,我们如何对测试集执行反向差分编码?在训练集中,因变量的值是给定的,但在测试集中,它们没有给定。有人能提供建议吗?这种方法只是对分类变量进行影响编码 如果您的分类列具有类别{C1、C2、C3、…},则按如下方式进行影响编码:

根据本网站(),后向差分编码的定义为“。在后向差分编码中,将某一水平的因变量平均值与前一水平的因变量平均值进行比较。这种类型的编码可能对标称或顺序变量有用。'

我不明白的是,如果这种编码方法依赖于因变量(如果我理解正确,则与输出变量相同),当因变量未提前提供给模型时,我们如何对测试集执行反向差分编码?在训练集中,因变量的值是给定的,但在测试集中,它们没有给定。有人能提供建议吗?

这种方法只是对分类变量进行影响编码

如果您的分类列具有类别{C1、C2、C3、…},则按如下方式进行影响编码:

                         Impact(category = Ci) = E[y|Ci] - E[y]
在培训期间,对于每个类别(Ci),它计算平均输出(给定该类别,即后验概率)和因变量的总体预期值(先验)之间的差异。有关影响编码的更多参考,请参阅本文(第10页)


在测试阶段,为了将测试数据的分类变量转换为其影响代码,它使用与训练数据相同的预期值“y”。因为这是一个期望值,所以训练数据的样本数是否比测试数据的样本数多并不重要(只要“y”在两个数据集中的分布相似)。

我想,在测试过程中,您必须使用训练集中的值。@Stergios,如果测试集的长度与训练集的长度不同怎么办?假设训练集有10000条记录,而测试集只有500条记录。模型如何知道从训练集中分配给测试集的标签?