Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 如何将sklearn管道结构的结构和数据深度复制到新变量中?_Python_Python 3.x_Scikit Learn_Pipeline_Deep Copy - Fatal编程技术网

Python 如何将sklearn管道结构的结构和数据深度复制到新变量中?

Python 如何将sklearn管道结构的结构和数据深度复制到新变量中?,python,python-3.x,scikit-learn,pipeline,deep-copy,Python,Python 3.x,Scikit Learn,Pipeline,Deep Copy,假设我已经定义了一个sklearn管道结构。我需要将其结构和数据深度复制到另一个变量中,以便在重新安装原始变量时,新变量不会改变。我尝试使用sklearn.base中的clone,方法与以下代码类似: temp_pipe = Pipeline([ ('Scaler', StandardScaler()), ('LinearRegression', LinearRegression())]); for i in iterations: temp_pipe.fit(X,y

假设我已经定义了一个sklearn管道结构。我需要将其结构和数据深度复制到另一个变量中,以便在重新安装原始变量时,新变量不会改变。我尝试使用
sklearn.base
中的
clone
,方法与以下代码类似:

temp_pipe = Pipeline([
    ('Scaler', StandardScaler()), 
    ('LinearRegression', LinearRegression())]);
for i in iterations:
     temp_pipe.fit(X,y);
     ....
     if check_condition:
         final = clone(temp_pipe);
但它似乎是对结构的深层复制,而不是所述的数据:

Clone
在估计器中对模型进行深度复制,而不实际复制 复制附加数据

我知道你可以做如下事情:

final = Pipeline([
    ('Scaler', StandardScaler()), 
    ('LinearRegression', LinearRegression())]);
for i in iterations:
temp_pipe = clone(final) 
temp_pipe.fit(X,y);
     ....
     if check_condition:
         final = temp_pipe;
但是有没有一种方法可以同时深度复制已安装的数据?

从复制导入deepcopy
估计器深度复制=深度复制(管道)

请注意,
clone
的目的是获得一个不适合的/干净的估计器。

为什么还需要复制数据?不,没有办法。你不应该这样做。此函数的意义是保存任何带有一些参数的模型,这些参数以后可以用于相同或新数据。@doctorlove我试图在代码中解释它:我在同一数据上拟合不同的模型,我想存储最好的模型,因此我不得不以某种方式复制数据。这只是为了避免在
循环开始时重新初始化
。@你是说
克隆
函数吗?还是哪一个?是的,
克隆
。你能把全部代码都贴出来吗?