如何在sklearn中计算.fit()训练模型的实际大小?

Nij*_*jan 4 python machine-learning scikit-learn

是否可以在scikit-learn中计算模型的大小(比如说一个随机森林分类器)?

例如:

  from sklearn.ensemble import RandomForestClassifier
  clf = RandomForestClassifier(n_jobs=-1, n_estimators=10000, min_samples_leaf=50)
  clf.fit(self.X_train, self.y_train)
Run Code Online (Sandbox Code Playgroud)

我可以确定尺寸clf吗?

小智 8

与Nijan的回答一样,您也可以使用pickle进行操作,而不必保存模型:

import pickle
import sys

p = pickle.dumps(clf)
print(sys.getsizeof(p))
Run Code Online (Sandbox Code Playgroud)

它将返回字节大小。


Nij*_*jan 1

一种方法是使用 joblib.dump 将模型转储到文件中,然后计算文件大小。

根据前面的示例,您将使用:

joblib.dump(clf, fname)
os.path.getsize(fname)