python中的fit方法
我在问自己关于sklearn中fit方法的各种问题 问题1:当我这样做时:python中的fit方法,python,model,scikit-learn,Python,Model,Scikit Learn,我在问自己关于sklearn中fit方法的各种问题 问题1:当我这样做时: from sklearn.decomposition import TruncatedSVD model = TruncatedSVD() svd_1 = model.fit(X1) svd_2 = model.fit(X2) from sklearn.decomposition import TruncatedSVD model = TruncatedSVD() svd_1 = model.fit(X1) svd_2
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = model.fit(X2)
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = svd_1.fit(X2)
在此过程中,变量模型的内容是否发生了变化
问题2:当我这样做时:
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = model.fit(X2)
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = svd_1.fit(X2)
svd_1发生了什么?换句话说,svd_1已经安装好了,我再次安装它,那么它的组件发生了什么变化?当您在
TruncatedSVD
上调用fit
时。它将用新矩阵构建的组件替换这些组件。scikit中的一些估计器和变换器学习起来像是有一个部分拟合
,它将通过添加额外数据来增量构建模型。问题1:在这个过程中,变量模型的内容会发生任何变化吗
对。fit
方法修改对象。并返回对该对象的引用。因此,小心!在第一个示例中,所有三个变量model
、svd_1
和svd_2
实际上都指向同一个对象
from sklearn.decomposition import TruncatedSVD
model = TruncatedSVD()
svd_1 = model.fit(X1)
svd_2 = model.fit(X2)
print(model is svd_1 is svd_2) # prints True
问题2:svd_1发生了什么
model
和svd_1
指的是同一个对象,因此第一个示例和第二个示例之间绝对没有区别
最后一句话:
在这两个示例中发生的情况是,fit(X1)
的结果被fit(X2)
覆盖,如中所述。如果要将两个不同的模型安装到两组不同的数据,则需要执行以下操作:
svd_1 = TruncatedSVD().fit(X1)
svd_2 = TruncatedSVD().fit(X2)