我已经使用朴素贝叶斯算法的标记数据训练了模型。并用另一组标记数据测试了相同的模型。而且我已经使用以下代码计算了准确性,准确性和召回力得分。
from sklearn.metrics import confusion_matrix
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import precision_score
from sklearn.metrics import recall_score
from io import open
def load_data(filename):
reviews = list()
labels = list()
with open(filename, encoding='utf-8') as file:
file.readline()
for line in file:
line = line.strip().split(' ',1)
labels.append(line[0])
reviews.append(line[1])
return reviews, labels
X_train, y_train = load_data('./train_data.txt')
X_test, y_test = load_data('./test_data.txt')
vec = CountVectorizer()
X_train_transformed = vec.fit_transform(X_train)
X_test_transformed = vec.transform(X_test)
clf= MultinomialNB()
clf.fit(X_train_transformed, y_train)
score = clf.score(X_test_transformed, y_test)
print("score of Naive Bayes algo is :" , score)
y_pred = clf.predict(X_test_transformed)
print(confusion_matrix(y_test,y_pred))
print("Precision Score : ",precision_score(y_test, y_pred,average='micro'))
print("Recall Score : ",recall_score(y_test, y_pred,average='micro'))
但是,现在我有另一个包含未标记数据的测试集。现在,我可以使用上面的代码使用未标记的数据测试模型吗?
答案 0 :(得分:0)
这就是我从您的问题中得到的解释。
您已经使用训练数据训练了Naive Bayes
模型,并使用测试数据对其进行了测试,并且您已经使用confusion matrix & accuracy
作为衡量模型性能的指标。
现在您的问题可能是
使用此模型,可以预测没有标签的看不见数据的标签吗?
如果这是您的问题,那么可以。此外,这就是您训练模型(即预测未见数据上的标签)的原因。
由于看不见的数据没有标签,您怎么知道预测的标签是正确的?因此,只有您使用test data
测试了模型并测量了模型的性能。如果模型的准确性为70%
,则模型正确预测的概率为70%。
我强烈建议您在开始使用why are you doing what are you doing
之前先考虑一下!
答案 1 :(得分:0)
如果要使用看不见的数据自动计算模型的准确性,则答案为“否”。
要创建混淆矩阵并找出这些矩阵,您需要传递Y标签变量。好的做法是将您的训练数据分为训练和测试数据。