我正在创建一个机器学习算法,并希望将其导出。假设我使用的是scikit-learn库和随机森林算法。
modelC=RandomForestClassifier(n_estimators=30) m=modelC.fit(trainvec,yvec)
modelC.model
我怎样才能导出它,或者有没有专门的函数来做这件事?
回答:
如果你参考scikit 文档关于模型持久化的部分
In [1]: from sklearn.ensemble import RandomForestClassifierIn [2]: from sklearn import datasetsIn [3]: from sklearn.externals import joblibIn [4]: iris = datasets.load_iris()In [5]: X, y = iris.data, iris.targetIn [6]: m = RandomForestClassifier(2).fit(X, y)In [7]: mOut[7]: RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini', max_depth=None, max_features='auto', max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=2, n_jobs=1, oob_score=False, random_state=None, verbose=0, warm_start=False)In [8]: joblib.dump(m, "filename.cls")
实际上,你可以使用pickle.dump
来替代joblib
,但joblib
在压缩分类器内部的numpy
数组方面做得非常好。