我对ML python环境非常陌生,我需要绘制精度/调用图,如这篇文章所述:[https://scikit-learn.org/stable/auto_examples/model_selection/plot_precision_recall.html][1]您需要计算y_score:
# Create a simple classifier
classifier = svm.LinearSVC(random_state=random_state)
classifier.fit(X_train, y_train)
y_score = classifier.decision_function(X_test)
所以问题是:如何使用多项式NaiveBayes或LearningTree计算分数?在我的代码中,我有:
print("MultinomialNB - countVectorizer")
xTrain, xTest, yTrain, yTest=countVectorizer(db)
classifier = MultinomialNB()
model = classifier.fit(xTrain, yTrain)
yPred = model.predict(xTest)
print("confusion Matrix of MNB/ cVectorizer:\n")
print(confusion_matrix(yTest, yPred))
print("\n")
print("classificationReport Matrix of MNB/ cVectorizer:\n")
print(classification_report(yTest, yPred))
elapsed_time = time.time() - start_time
print("elapsed Time: %.3fs" %elapsed_time)
db包含我的数据集,该数据集已在训练集和测试集之间划分。有什么建议吗?
他们所谓的y_score
只是ML算法输出的预测概率。
在多项式nb和决策树中(我想这就是LearningTree的意思吗?),您可以使用.predict_proba
方法执行此操作:
classifier = MultinomialNB()
model = classifier.fit(xTrain, yTrain)
yPred = model.predict_proba(xTest)