在Python中使用sklearn.utils进行模型保存和加载

发布时间:2023-12-15 18:48:20

在Python中使用scikit-learn库,可以使用sklearn.utils中的joblib模块来保存和加载模型。joblib模块提供了一种更高效的保存和加载模型的方法,尤其适用于大型机器学习模型。

以下是一个使用sklearn.utils保存和加载模型的例子:

1. 导入必要的库和模块:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
from sklearn import utils

2. 加载数据集:

iris = datasets.load_iris()
X = iris.data
y = iris.target

3. 将数据集拆分为训练集和测试集:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4. 创建一个支持向量机分类器:

svm = SVC()

5. 使用拟合函数适配模型:

svm.fit(X_train, y_train)

6. 使用保存函数将模型保存到本地文件:

utils.dump(svm, "model.joblib")

7. 使用加载函数将模型从本地文件加载到内存:

loaded_model = utils.load("model.joblib")

8. 使用加载后的模型预测测试集:

y_pred = loaded_model.predict(X_test)

9. 计算预测准确率:

accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

在这个例子中,我们使用了鸢尾花数据集加载数据,然后将数据集拆分为训练集和测试集。然后,我们创建了一个支持向量机分类器并拟合训练集。接下来,我们使用utils.dump函数将模型保存到名为model.joblib的文件中。然后,我们使用utils.load函数加载模型并使用加载后的模型进行预测。最后,我们计算预测准确率并打印出来。

使用sklearn.utils中的joblib模块可以保存和加载机器学习模型,这在训练大型模型或需要在不同环境中部署模型时非常有用。