测试NB模块

2024-04-25 04:58:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用我的朴素贝叶斯模型时遇到了问题。我已经使用“数据”对其进行了培训和测试,以预测评论是“积极”还是“消极”。现在,我想使用相同的模型来预测某些文本(“data_b”)是“正”还是“负”。我不想使用“data_b”中的数据重新训练模型。这可能吗

# This is my function to train and test my model

from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
from sklearn.model_selection import cross_val_score

def train_and_test(data, target):

    # Data
    data_train, data_test, target_train, target_test = train_test_split(data, target, test_size=0.4, random_state=2)

    # TRAIN & TEST MODEL
    model = MultinomialNB()
    model.fit(data_train, target_train)
    predicted = model.predict(data_test)
    comparison = df(data={'Predicted':predicted, 'Actual':target_test})

    # ANALYSE RESULTS
    acc = accuracy_score(target_test, predicted)
    acc_percent = round((acc*100),2)
    print('Using train test split, this model achieves an accuracy of: ', acc_percent, '%')

    # apply 5-fold cross-validation, measuring accuracy each time
    acc_scores = cross_val_score(model, data, target, cv=10, scoring="accuracy")
    accuracy_10fold = round((sum(acc_scores)/10)*100,2)
    print('Using 10 fold cross-validation, the model achieves a mean accuracy of: ', accuracy_10fold, '%')

    return comparison

我希望将此功能更改为: def训练和测试(训练数据、目标数据、测试数据、测试目标):


Tags: 数据from模型testimporttargetdatamodel