#Build machine learning model
# 1- Multinomunal Naive Bayes for Bigram&Trigram:
mnb_tf_bigram=MultinomialNB()
mnb_tf_bigram.fit(tfidf_train_2, y_train)
mnb_tf_trigram=MultinomialNB()
mnb_tf_trigram.fit(tfidf_train_3,y_train)
#passive aggressive classifire for Bigram&Trigram:
pass_tf_bigram=PassiveAggressiveClassifier()
pass_tf_bigram.fit(tfidf_train_2,y_train)
pass_tf_trigram=PassiveAggressiveClassifier()
pass_tf_trigram.fit(tfidf_train_3,y_train)
pred_mnb3= mnb_tf_trigram.predict(tfidf_test_3)
pred_pass2 = pass_tf_bigram.predict(tfidf_test_2)
pred_pass3= pass_tf_trigram.predict(tfidf_test_3)
models = {
'Multinominal Naive Bayes-Trigram' : pred_mnb3,
'Passive Aggressive-Bigram' : pred_pass2,
'passive Aggressive-Trigram' : pred_pass3
}
models= pd.DataFrame(models)
for column in models:
acc= accuracy_score(y_test,models[column])
prec= precision_score(y_test,models[column])
rec= recall_score (y_test,models[column])
f1= f1_score (y_test,models[column])
roc= roc_auc_score (y_test,models[column])
results = pd.DataFrame ([[column, acc,prec,rec,f1,roc]],
columns = ['Model','Accuracy', 'Precision','Sensitivity', 'F1-score','ROC'])
model_results = model_results.append(results, ignore_index = True)
model_results
你好,我试图评估两个模型,分别安装在三元组和二元组 TFIDF 上,这两个模型是多项式和被动攻击性的,我的结果与参考形式不同我不知道问题出在哪里,尽管使用的数据集是相同的,参考结果的准确度约为 0.7,而我的准确度约为 0.5!?每次重新运行是否会影响值(我没有这样做,只是好奇的问题)?我是这方面的初学者,我需要帮助