我对文本数据进行了一些文本分类。当我试图保存SGD
分类器对象时,我惊讶地发现它超过了4GB(尽管我的输入是大约60万行,700 my )。那个物体里有什么东西让它这么大?有什么想法吗?
发布于 2017-09-05 21:34:50
我将回答,假设您想要进行文本分类,您的特征是使用一些TFIDF特征提取技术创建的。下次,请指定您的功能的尺寸,而不仅仅是它们的存储空间。
根据文档(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html),对象具有一个coef_属性,该属性存储模型的所有权重。因为对于文本来说,特征向量大约是词汇表的大小,所以它可能相当大,特别是如果您不使用词干进行文本预处理,或者不删除停止词或不相关的单词。
文档还指出,coef_的大小是类的数量*特性的数量。因此,取决于您有多少特性和类,它可能很快就会变大。
这可以部分解释为什么物体这么大。其他因素可能是Python经常在您训练对象之后将预测存储在对象中,这样您就可以快速访问它们,因此您需要在对象中再添加60万个数字。而对于这个对象,它似乎也存储了信心分数,也就是另外60万。
https://datascience.stackexchange.com/questions/22816
复制相似问题