joblib.load示例
时间: 2023-06-15 12:03:07 浏览: 41
joblib.load() 函数用于从磁盘中加载已经序列化的 Python 对象。它的语法如下:
```python
joblib.load(filename, mmap_mode=None)
```
其中,`filename` 是被加载的文件的路径,`mmap_mode` 是可选的参数,用于指定内存映射模式,如果指定为 None,则会使用默认值 `'r'`。
下面是一个示例:
```python
import joblib
# 定义一个 Python 对象
data = {'name': 'Alice', 'age': 28, 'city': 'Beijing'}
# 将 Python 对象序列化并保存到磁盘
joblib.dump(data, 'data.joblib')
# 从磁盘中加载 Python 对象
loaded_data = joblib.load('data.joblib')
# 打印加载的 Python 对象
print(loaded_data)
```
输出结果为:
```
{'name': 'Alice', 'age': 28, 'city': 'Beijing'}
```
相关问题
joblib.load导入svm
你可以使用joblib.load()函数从磁盘中加载保存的SVM模型,然后使用该模型进行预测。
以下是一个示例代码:
```python
from sklearn import svm
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
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.3, random_state=0)
# 训练SVM模型
clf = svm.SVC(kernel='linear', C=1.0)
clf.fit(X_train, y_train)
# 保存模型
joblib.dump(clf, 'svm.model')
# 加载模型
clf = joblib.load('svm.model')
# 使用模型进行预测
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
在上面的示例代码中,首先加载了鸢尾花数据集,然后将数据集分为训练集和测试集。接着,使用训练集训练了一个SVM模型,并将其保存到磁盘中。最后,通过joblib.load()函数加载已保存的模型,使用测试集进行预测,并计算准确率。
如何使用 joblib.dump() 函数保存模型
使用joblib.dump()函数保存模型非常简单,只需要将要保存的模型对象和保存文件的路径作为参数传递给该函数即可。示例如下:
```python
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import joblib
# 加载 iris 数据集
iris = load_iris()
X, y = iris.data, iris.target
# 训练随机森林模型
rf = RandomForestClassifier()
rf.fit(X, y)
# 保存模型
joblib.dump(rf, 'rf_model.pkl')
```
在这个示例中,我们首先加载了 iris 数据集,然后训练了一个随机森林模型。最后,我们使用 joblib.dump() 函数将训练好的模型保存到了 rf_model.pkl 文件中。
需要注意的是,joblib.dump() 函数默认使用的压缩级别为 3,可以通过 compress 参数设置压缩级别。如果不需要压缩模型,可以将 compress 参数设置为 0。此外,如果要在保存模型时指定自定义的协议版本,可以通过 protocol 参数进行设置。例如,要使用 Python 3.8 版本的协议,可以将 protocol 参数设置为 5。
```python
# 保存模型并指定压缩级别和协议版本
joblib.dump(rf, 'rf_model.pkl', compress=0, protocol=5)
```
在实际应用中,为了防止模型被恶意篡改或损坏,建议对保存的模型文件进行数字签名或加密保护。