擅长:python、mysql、java
<p>其思想是只对训练数据进行预处理(就像模型一样)。它将学习一些状态,对于输入者来说,这可能是你特征的<em>平均值</em>。然后,在对测试/验证数据进行转换时,使用状态(即本例中的<em>平均值</em>)来插补新的不可见数据。使用这种设计,可以很容易地避免数据泄漏。考虑一下你是否对整个数据集进行了插补。你用来插补的平均数现在使用了一些来自你假定的未显示测试数据的信息。这是一个数据泄漏,你的数据不再是真正看不见的。Scikit learn使用<code>fit</code>/<code>transform</code>模式来轻松缓解机器学习中的这一常见陷阱</p>
<p>此外,因为所有sklearn转换器和估计器都使用这个<code>fit</code>API,所以您可以将它们链接到一个管道中,这样就可以轻松地对k次交叉验证的每一次进行所有预处理,否则这将是一件非常棘手的事情,而且不会出错</p>