【发布时间】:2022-01-14 04:47:56
【问题描述】:
我正在使用sklearn.ensemble.BaggingClassifier 在我的数据上拟合 1000 个估计器。我想知道是否可以缓存此类的.fit() 方法,以便在第一次运行脚本后可以简单地缓存.fit() 方法的输出?
以此为例:
import numpy as np
from sklearn.ensemble import BaggingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
rng = np.random.RandomState(42)
X, y = make_classification(n_samples=1000,n_features=4,n_informative=2,
n_redundant=0,random_state=rng,shuffle=False)
# initialize bagging classifier
clf = BaggingClassifier(base_estimator=LogisticRegression(),n_estimators=1000,random_state=rng)
result = clf.fit(X,y).estimators_[0].coef_
编辑:
下面的答案似乎给出了关于如何在拟合过程中在中缓存结果的答案,即在拟合 n 个估计器时,尝试使用来自已拟合分类器的预先计算的结果。相反,我正在寻找的是一种缓存整个过程的方法。我想知道是否可以为此使用sklearn.pipeline.Pipeline?修改后的代码将如下所示(如果这是正确的,很高兴收到反馈):
from sklearn.pipeline import Pipeline
# initialize bagging classifier
clf = BaggingClassifier(base_estimator=LogisticRegression(),n_estimators=1000,random_state=rng)
pipe = Pipeline([('clf',clf)],memory='./cache')
result = pipe.fit(X,y)._final_estimator.estimators_[0].coef_
【问题讨论】:
-
您能否更具体地说明缓存
fit()方法的含义?当您拟合同一个数据集时,您可以使用warm_start,但如果您想拟合不同批次的数据partial_fit有效 -
拥有合适的分类器还不够吗?如果没有,以什么方式?
-
对不起,你能说得更具体点吗?我不确定我是否理解你的问题
标签: python caching scikit-learn