python储存模型时报错,cannot import name ‘joblib’ from ‘sklearn.externals’ (C:\anaconda\lib\site-packages\sklearn\externals_init_.py)
原因:
使用的anaconda 而不是自己下载的python
解决:
删除:from sklearn.externals import joblib
更改为:import joblib
-------------------------------------------------------
拓展
sklearn
Scikit-learn(以前称为scikits.learn,也称为sklearn)是针对Python 编程语言的免费软件机器学习库 [1] 。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与Python数值科学库NumPy和SciPy联合使用。
Joblib
Joblib是一个可以简单地将Python代码转换为并行计算模式的软件包,它可非常简单并行我们的程序,从而提高计算速度。
Joblib是一组用于在Python中提供轻量级流水线的工具。 它具有以下功能:
透明的磁盘缓存功能和“懒惰”执行模式,简单的并行计算
Joblib对numpy大型数组进行了特定的优化,简单,快速。
Joblib还具有以下功能:
快速磁盘缓存:Python函数的memoize或make-like功能,适用于任意Python对象,包括大型numpy数组。
快速压缩:替代pickle,使用joblib.dump和joblib.load可以提高大数据的读取和存储效率。
来源:https://zhuanlan.zhihu.com/p/392280022
使用
from joblib import dump, load
start = time.time()
# 文件名称
joblib_file = 'train_features.joblib'
with open(path + joblib_file, 'wb') as f:
dump(data, f)
# 计算总时间
simple_joblib_duration = time.time() - start
print("Dump 消耗的时间: %0.3fs" % simple_joblib_duration)