我正在进行一个基于机器学习的项目,它使用一组参数作为输入。大约有3000个这样的输入。每当我执行代码时,算法都会重新学习数据集。
有没有一种方法,可以让程序仅学习一次数据集,并在每次再次运行代码时使用这些参数?
回答:
我想你要找的是序列化(pickling),你可以通过以下方式实现这一点
将分类器保存到磁盘(训练后)
from sklearn.externals import joblibjoblib.dump(clf, 'filename.pkl')
加载分类器
clf = joblib.load('filename.pkl')
你可以选择运行一次程序,保存序列化文件,然后从那里继续。或者每次程序运行时检查序列化文件是否存在,如果不存在则训练模型。
from pathlib import Pathmy_file = Path("/path/to/file")if my_file.is_file():
参考资料:
http://scikit-learn.org/stable/modules/model_persistence.html