gpt4 book ai didi

python - HashingVectorizer 与 TfidfVectorizer 导出文件大小

转载 作者:行者123 更新时间:2023-11-30 09:32:12 24 4
gpt4 key购买 nike

我正在使用以下内容生成模型:

from sklearn.linear_model import SGDClassifier
text_clf = OnlinePipeline([('vect', HashingVectorizer()),
('clf-svm', SGDClassifier(loss='log', penalty='l2', alpha=1e-3, max_iter=5, random_state=None)),
])

当我使用以下命令导出此模型时:

from sklearn.externals import joblib
joblib.dump(text_clf, 'text_clf.joblib')

我的text_clf.joblib是45MB。当我用 TfidfVectorizer() 替换 HashingVectorizer() 并重新导出时,我的模型为 9kb。

为什么会有这样的文件差异,是否有办法减少 HashingVectorizer 导出的大小。

最佳答案

HashingVectorizer 是无状态的,因此不会在内存中保留任何内容。它是从 HashingVectorizer 传递到 SGDClassifier 的特征数量。

默认情况下 number of features calculated from the data is

n_features=1048576

因此,SGDClassifier 必须为所有这些功能保存 coef_intercept_ 等变量。如果你的问题是多类别的,这个数字还会增加。对于大于 2 的类,存储空间将按类数倍增加。

需要有关 TfidfVectorizer 功能的更多详细信息。在大小仅为 9kb 的情况下,TfidfVectorizer.vocabulary_ 的大小是多少?您可以通过以下方式访问它:

len(text_clf.named_steps['vect'].vocabulary_)

关于python - HashingVectorizer 与 TfidfVectorizer 导出文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53520686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com