【发布时间】:2018-09-10 12:25:22
【问题描述】:
我正在尝试使用朴素贝叶斯算法来满足我的一项要求。在此,我计划对超平面使用“One-hot Encode”。我使用以下代码运行我的算法。但是,我不确定如何使用“One-hot Encode”。
请找到以下代码:
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import BernoulliNB
from sklearn.metrics import confusion_matrix
def load_data(filename):
x = list()
y = list()
with open(filename) as file:
file.readline()
for line in file:
line = line.strip().split(',')
y.append(line[1])
x.append(line[0].split())
return x, y
X_train, y_train = load_data('/Users/Desktop/abc/train.csv')
X_test, y_test = load_data('/Users/Desktop/abc/test.csv')
onehot_enc = MultiLabelBinarizer()
onehot_enc.fit(X_train)
bnbc = BernoulliNB(binarize=None)
bnbc.fit(onehot_enc.transform(X_train), y_train)
score = bnbc.score(onehot_enc.transform(X_test), y_test)
print("score of Naive Bayes algo is :" , score)
谁能建议我上面写的代码是否正确?
【问题讨论】:
标签: python scikit-learn