Python 如何使用NaivebayesClassifier获得给定数据集的每分类精度

Python 如何使用NaivebayesClassifier获得给定数据集的每分类精度,python,machine-learning,scikit-learn,nltk,sklearn-pandas,Python,Machine Learning,Scikit Learn,Nltk,Sklearn Pandas,我对机器学习非常陌生。我有一个问题需要用有监督的机器学习来解决 问题:从培训数据中学习并理解标签(我在.csv表单中获得了培训数据,其中第1列是数据,第2列是相应的标签,我的数据是用户的电子邮件,标签是我要分类的类别)稍后,当提供新数据进行测试时,将它们分类到您在培训时使用的标签之一;我们想知道每个分类的权重,这样我们就可以确信所做的分类是准确的 以下是我正在尝试的代码: import random import pandas as pd import nltk def clean_data(

我对机器学习非常陌生。我有一个问题需要用有监督的机器学习来解决

问题:从培训数据中学习并理解标签(我在.csv表单中获得了培训数据,其中第1列是数据,第2列是相应的标签,我的数据是用户的电子邮件,标签是我要分类的类别)稍后,当提供新数据进行测试时,将它们分类到您在培训时使用的标签之一;我们想知道每个分类的权重,这样我们就可以确信所做的分类是准确的

以下是我正在尝试的代码:

import random
import pandas as pd
import nltk

def clean_data(data):
    data = str(data).replace('\n', '').replace('\r', '').replace('\r\n', '').replace('\'', '').replace('\\', '')
    return data


def data_features(word):
    return {'test_data': word}


def clean_data_feature(word):
    return data_features(clean_data(word))


def classifydata(filename, datacolumn, labelcolumn):
    df = pd.read_csv(filename, encoding='latin1', index_col=None, dtype={datacolumn: str})
    subset = df[[datacolumn, labelcolumn]]
    labeled_names = [tuple(x) for x in subset.values]
    random.shuffle(labeled_names)
    featuresets = [(clean_data_feature(n), label) for (n, label) in labeled_names]
    train_set, test_set = featuresets, featuresets
    classifier = nltk.NaiveBayesClassifier.train(train_set)
    df = pd.read_csv('D:/ML/Event_Data_601-700.csv', encoding='latin1', index_col=None, dtype={'mMsgContent': str})
    for data in df['mMsgContent']:
        print(classifier.classify(clean_data_feature(data)))

classifydata('D:/ML/Event_Data_Training_600.csv', 'mMsgContent', 'call related to')
这将打印基于学习完成的分类,但我们想知道“分类器对我在这里对每条记录所做的分类的准确度有多大的信心(以%)


欢迎提供任何帮助/建议/更改编写此代码的方式;如果需要添加更多详细信息,请告知我。

您想测量模型的准确性。请执行以下操作:

print(nltk.classify.accuracy(classifier, test_set))
分数在0到1之间。(1表示100%)

请查看更多详细信息。

查看