我正在尝试在我的数据集上运行多个多项式逻辑回归。每运行一个模型后,我试图将刚运行的模型添加到一个列表中,以便以后可以访问特定的模型。代码大致如下:
models = []for i in range(0, 10): model = sklearn.linear_model.LogisticRegression() model.fit(x,y) models.append(model)
其中x和y在每次for
循环迭代中是不同的。问题在于,最终数组”models”中每个元素的系数/模型,与该for循环的最后一次迭代是相同的。我认为这是因为我每次迭代只是在更新引用,而不是每次都创建一个新的逻辑回归模型。有人能指出更好的方法吗?
回答:
你可能对clone
函数感兴趣。
sklearn.base.clone(estimator, *, safe=True)[source]
构建一个具有相同参数的未拟合估计器。Clone函数对估计器中的模型进行深拷贝,而不实际复制附加的数据。它生成一个具有相同参数但未在任何数据上拟合的新估计器。
from sklearn.base import clonemodel = LogisticRegression()new_model = clone(model)