问题描述
使用MultinomialNB分类器时报错
ValueError: Negative values in data passed to MultinomialNB (input X)
原因:
MultinomialNB要求训练集中不出现负值
解决方案:
将训练数据归一化,使用preprocessing.MinMaxScaler来处理。
MinMaxScaler默认范围为(0,1),可以通过MinMaxScaler(feature_range=(0,1))进行调节。
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
mnb.fit(X_train_scaled,y_train)
mnb.predict(X_test_scaled)
参考链接:https://stats.stackexchange.com/questions/169400/naive-bayes-questions-continus-data-negative-data-and-multinomialnb-in-scikit