Scikit learn 如何缩小一袋文字模型?

Scikit learn 如何缩小一袋文字模型?,scikit-learn,nlp,classification,random-forest,text-classification,Scikit Learn,Nlp,Classification,Random Forest,Text Classification,题目说明了一切:我怎样才能使一袋单词模型变小?我使用了一个随机森林和一个单词包功能集。我的型号的大小达到30 GB,我确信功能集中的大多数单词对整体性能没有影响 如何在不损失太多性能的情况下缩小一大袋单词模型?如果你不想改变神经网络的结构,而只是想减少内存占用,可以做的一个调整是减少CountVectorizer注释的术语。 从scikit学习文档中,我们至少有三个用于减少词汇表大小的参数 max_df:浮动范围为[0.0,1.0]或int,默认值为1.0 在构建词汇表时,忽略文档频率严格高于给

题目说明了一切:我怎样才能使一袋单词模型变小?我使用了一个随机森林和一个单词包功能集。我的型号的大小达到30 GB,我确信功能集中的大多数单词对整体性能没有影响


如何在不损失太多性能的情况下缩小一大袋单词模型?

如果你不想改变神经网络的结构,而只是想减少内存占用,可以做的一个调整是减少CountVectorizer注释的术语。 从scikit学习文档中,我们至少有三个用于减少词汇表大小的参数

max_df:浮动范围为[0.0,1.0]或int,默认值为1.0

在构建词汇表时,忽略文档频率严格高于给定阈值语料库特定停止词的术语。如果为float,则该参数表示文档的比例、整数绝对计数。如果词汇表不是“无”,则忽略此参数

min_df:浮动范围为[0.0,1.0]或int,默认值为1

在构建词汇表时,忽略文档频率严格低于给定阈值的术语。该值在文献中也称为截止值。如果为float,则该参数表示文档的比例、整数绝对计数。如果词汇表不是“无”,则忽略此参数

最大功能:int或None,默认为None

如果没有,则建立一个词汇表,该词汇表只考虑在语料库上按词频排序的最高Max特征。 如果词汇表不是“无”,则忽略此参数

在第一种情况下,试着使用max_df和min_df。如果尺寸仍然不符合您的要求,您可以使用max_功能随意降低尺寸

注:
与其他参数相比,max_特性调整会使分类精度下降更高的比率

如果您不想更改神经网络的结构,并且您只是试图减少内存占用,可以进行的调整是减少CountVectorizer注释的术语。 从scikit学习文档中,我们至少有三个用于减少词汇表大小的参数

max_df:浮动范围为[0.0,1.0]或int,默认值为1.0

在构建词汇表时,忽略文档频率严格高于给定阈值语料库特定停止词的术语。如果为float,则该参数表示文档的比例、整数绝对计数。如果词汇表不是“无”,则忽略此参数

min_df:浮动范围为[0.0,1.0]或int,默认值为1

在构建词汇表时,忽略文档频率严格低于给定阈值的术语。该值在文献中也称为截止值。如果为float,则该参数表示文档的比例、整数绝对计数。如果词汇表不是“无”,则忽略此参数

最大功能:int或None,默认为None

如果没有,则建立一个词汇表,该词汇表只考虑在语料库上按词频排序的最高Max特征。 如果词汇表不是“无”,则忽略此参数

在第一种情况下,试着使用max_df和min_df。如果尺寸仍然不符合您的要求,您可以使用max_功能随意降低尺寸

注:
与其他参数相比,max_功能调整会使分类精度下降更高的比率

使用功能选择。要素选择使用一些评分函数,根据要素相对于标签的分布从数据集中删除要素

例如,很少出现或随机出现在所有标签上的功能不太可能有助于准确分类,并且得分很低

下面是一个使用sklearn的示例:

从sklearn.feature\u选择导入SelectPercentile 假设一些矩阵X和标签y 10表示仅包括10%的最佳功能 选择器=SelectPercentilepercentile=10 仅包含10%特征的特征空间 X_new=选择器.fit_transformX,y 查看所有功能的分数 选择分数 和往常一样,请确保仅对训练数据调用fit_transform。使用开发或测试数据时,仅使用转换。有关其他文档,请参阅


请注意,还有一个SelectKBest,它的作用相同,但允许您指定要保留的功能的绝对数量,而不是百分比。

使用功能选择。要素选择使用一些评分函数,根据要素相对于标签的分布从数据集中删除要素

例如,很少出现或随机出现在所有标签上的功能不太可能有助于准确分类,并且得分很低

下面是一个使用sklearn的示例:

从sklearn.feature\u选择导入SelectPercentile 假设一些矩阵X和标签y 10意味着 仅包括10%的最佳功能 选择器=SelectPercentilepercentile=10 仅包含10%特征的特征空间 X_new=选择器.fit_transformX,y 查看所有功能的分数 选择分数 和往常一样,请确保仅对训练数据调用fit_transform。使用开发或测试数据时,仅使用转换。有关其他文档,请参阅

请注意,还有一个SelectKBest,它的作用相同,但允许您指定要保留的功能的绝对数量,而不是百分比