这是使用word2vector + MultinomialNB训练时会出现的一个问题。
由于word2vector对文本数据集进行处理后,向量中出现了负值,而MultinomialNB要求训练集中不出现负值
参考文章:https://stats.stackexchange.com/questions/169400/naive-bayes-questions-continus-data-negative-data-and-multinomialnb-in-scikit
MultinomialNB assumes that features have multinomial distribution which is a generalization of the binomial distribution. Neither binomial nor multinomial distributions can contain negative values.
- 如果不想继续对向量进行归一化之类的处理,那么可以考虑使用GaussianNB或其他分类算法;
- 如果还是想用MultinomialNB,那么可以尝试将数据归一化,可以使用preprocessing.MinMaxScaler来处理。参考文章:关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化,需要注意的是,在默认的(0,1)范围对数据进行缩放,可能预测的准确率会很低,那么可以通过下列方法来调优。要做好心理准备,即使调到最佳的范围,准确率也不一定高,_
MinMaxScaler(feature_range=(0,10)) #自定义区间