sklearn保存训练好的模型
时间: 2024-09-22 16:08:43 浏览: 46
azureml-pretrained-sklearn:AzureML sklearn 预训练模型使用的代码和模型
在scikit-learn (sklearn) 中,保存训练好的模型是一个常见的需求,这使得您可以将模型持久化存储,以便稍后可以在新的数据上继续预测或评估。sklearn 提供了多种方法来保存和加载模型:
1. **pickle 模块**:Python 的内置模块 `pickle` 可用于将 Python 对象序列化成字节流,方便存储。例如:
```python
import pickle
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
```
要加载模型,只需读取文件并反序列化:
```python
with open('model.pkl', 'rb') as f:
loaded_model = pickle.load(f)
```
2. **joblib 模块**:这是 sklearn 自带的工具,它提供了更高级别的功能。比如:
```python
from joblib import dump, load
dump(model, 'model.joblib')
loaded_model = load('model.joblib')
```
这种方式有更好的性能和跨平台兼容性。
3. **保存到硬盘的 `.pklz` 或者 `.zip` 文件**:可以使用 `sklearn.externals.joblib.parallel_backend` 将模型压缩打包,如:
```python
joblib.dump(model, 'model.zip', compress=9) # 使用最高压缩级别
```
4. **HDF5 格式**:对于大型模型,可以考虑使用 h5py 库将模型保存到 HDF5 文件中:
```python
from skutil.hooks import use_hdf5
use_hdf5()
model.fit(X, y)
model.save('model.hd5')
```
记住在保存之前,确保模型已经完全训练好,并且所选的保存方法适合您的应用场景和未来的需求。
阅读全文