我首先对训练集进行了中文分词处理,在不做特征选择的情况下,只进行向量化处理:
weka.filters.unsupervised.attribute.StringToWordVector in:9804
Number of instances: 9804
Number of attributes: 9302
产生的arff文件大约30M.
使用TFIDF进行特征选择,仍然使用这个训练集,代码很简单:
StringToWordVector filter = new StringToWordVector();
filter.setStemmer( new NullStemmer() );
filter.setInputFormat(dataRaw);
filter.setTFTransform(true);
filter.setIDFTransform(true);
filter.setMinTermFreq(5);
filter.setWordsToKeep(500);
结果:
weka.filters.unsupervised.attribute.StringToWordVector in:9804
Number of instances: 9804
Number of attributes: 3540
产生的arff文件大约41M. 这个arff文件可以用来训练NaiveBayes或SMO等分类模型。
但需注意,用某种训练好的分类模型进行分类时,被测对象应该使用相同的量化方法,否则双方属性不同,weka会出错,如“Src and Dest differ in # of attributes!!”。
https://blog.sciencenet.cn/blog-713110-573453.html
上一篇:
IDA的反编译插件hexrays decompiler下一篇:
使用独立测试集对分类模型进行评估