方法一:pickle库
这是Python的标准序列化模块,可以将几乎任何Python对象转化为字节流(即序列化),然后可以将其存储到文件中或通过网络发送。之后,可以使用pickle再次加载这个字节流,恢复原始对象。在机器学习中,pickle常用于保存整个模型实例,包括训练配置和参数。
# 导入pickle模块
import pickle# 保存模型
with open('knn_pickle.pkl', 'wb') as f:pickle.dump(knn, f)# 导入模型
with open('knn_pickle.pkl', 'rb') as f:model = pickle.load(f)
方法二:joblib库
它是专为科学计算设计的库,特别适合于大NumPy数组的存储。相比pickle,joblib在处理大型numpy数组时速度更快,更节省内存。对于机器学习模型,尤其是基于scikit-learn的模型,使用joblib保存和加载模型是推荐做法。
# 导入joblib
import joblib# 保存模型
joblib.dump(knn, 'knn_joblib.pkl')# 加载模型
model = joblib.load('knn_joblib.pkl')