Python中朴素贝叶斯的训练精度

Python中朴素贝叶斯的训练精度,python,classification,naivebayes,Python,Classification,Naivebayes,我正在运行一个朴素的贝叶斯模型,可以打印我的测试精度,但不能打印训练精度 #import libraries from sklearn.preprocessing import StandardScaler from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC from sklearn import metrics from sklearn.decomposition import PCA #Naive B

我正在运行一个朴素的贝叶斯模型,可以打印我的测试精度,但不能打印训练精度

#import libraries
from sklearn.preprocessing import StandardScaler
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn import metrics
from sklearn.decomposition import PCA

#Naive Bayes model
gNB = GaussianNB()
gNB.fit(X_train, y_train)

nb_predict = gNB.predict(X_test)

print(metrics.classification_report(y_test, nb_predict))
accuracy = metrics.accuracy_score(y_test, nb_predict)
average_accuracy = np.mean(y_test == nb_predict) * 100
print("The average_accuracy is {0:.1f}%".format(average_accuracy))

#PRINTS The average_accuracy is 39.0%

#try to print training accuracy
print(metrics.classification_report(y_train, X_train))
accuracy = metrics.accuracy_score(y_train, X_train)
average_accuracy = np.mean(y_train == X_train) * 100
print("The average_accuracy is {0:.1f}%".format(average_accuracy))
当我尝试使用我用于测试训练准确度的代码时,我得到了一个训练准确度的错误

在y_type=>上不能有多个值该集合不再需要
什么代码有效?

sklearn.metrics.accurity\u score需要1d数组表示y\u true和y\u pred。那么,在下面的代码中

accuracy = metrics.accuracy_score(y_train, X_train)
y_列和X_列应为一维。但我认为X_列不是一维阵列。这就是错误发生的原因。 阅读本文件:

要在拟合模型后测量模型对训练数据的准确性,需要从训练数据中获得预测 然后找出准确度:

y_predict_for_trainData = gNB.predict(X_train)
accuracy_For_TrainData = metrics.accuracy_score(y_train, y_predict_for_trainData)

谢谢你的医生。如果y_-train和X_-train不是1d,是否有其他方法获得训练精度?是否要测量训练数据模型的精度?是的,我需要测量训练数据模型的精度。您添加的代码工作得非常好!
y_predict_for_trainData = gNB.predict(X_train)
accuracy_For_TrainData = metrics.accuracy_score(y_train, y_predict_for_trainData)