我无法计算出管道相对于线性代码指令序列的好处

数据挖掘 机器学习 管道
2022-02-26 17:18:56

我已经研究了很多如何“创建管道”指令,但我还没有看到对我在下面展示的好处的解释。

为了使我的示例代码不可知,我将使用简单的伪代码。

因此,例如,为了训练模型,我一直在做的是……

创建函数/方法

function get_data(parm1, parm2...)

function prepare_data(...)

function train_model(...)

function test_model(...)

运行函数/方法<-这就是我在标题中所说的“代码指令的线性序列”的意思。

get_data(parm1, parm2...)
prepare_data(...)
train_model(...)
function test_model(...)
2个回答

据我所知,在有监督的 ML 中,管道的主要优点是确保在训练集和测试集上应用完全相同的预处理步骤。

预处理有时可能很复杂:它可能包括表示、归一化、删除异常值或估算缺失值、可能计算新特征或删除一些等。通过对训练集和测试集分别执行此操作,通常存在代码重复的风险:如果在此处而不在此处修改某些内容,则可能会引入不一致和错误。此外,如果测试数据与训练数据的表示方式不同,模型很容易完全出错,因此这在监督学习中尤为重要。

一般来说,预处理必须在训练测试拆分之后进行。所以总是fit and transform开着为了避免我们特地使用. 它是一系列动作的顺序应用。管道的目的是在设置不同参数的同时组合几个可以交叉验证的步骤。train datatransformtest dataDATA LEAKAGEPipelines