Python 如何将sklearn管道结构的结构和数据深度复制到新变量中?
假设我已经定义了一个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.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我试图在代码中解释它:我在同一数据上拟合不同的模型,我想存储最好的模型,因此我不得不以某种方式复制数据。这只是为了避免在循环开始时重新初始化。@你是说克隆函数吗?还是哪一个?是的,克隆
。你能把全部代码都贴出来吗?