你可以使用joblib
库来保存和加载sklearn管道的中间结果。以下是一个包含代码示例的解决方法:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
from sklearn.externals import joblib
# 加载数据
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
# 创建管道
pipe = Pipeline([
('scaler', StandardScaler()),
('classifier', SVC())
])
# 训练管道
pipe.fit(X_train, y_train)
# 保存管道的中间结果
joblib.dump(pipe, 'pipeline.pkl')
# 加载保存的管道
loaded_pipe = joblib.load('pipeline.pkl')
# 使用加载的管道进行预测
predictions = loaded_pipe.predict(X_test)
在上述代码中,首先我们加载了鸢尾花数据集,并将其分为训练集和测试集。然后,我们创建了一个包含数据标准化和支持向量机分类器的管道。我们对管道进行训练,并使用joblib.dump()
函数将管道保存到pipeline.pkl
文件中。
接下来,我们使用joblib.load()
函数加载保存的管道,并将其存储在loaded_pipe
变量中。最后,我们使用加载的管道进行预测。
注意:在较新的sklearn版本中,joblib
库已经从sklearn.externals
模块中移除,你可以直接使用import joblib
来导入。