Python 如何使用NaivebayesClassifier获得给定数据集的每分类精度
我对机器学习非常陌生。我有一个问题需要用有监督的机器学习来解决 问题:从培训数据中学习并理解标签(我在.csv表单中获得了培训数据,其中第1列是数据,第2列是相应的标签,我的数据是用户的电子邮件,标签是我要分类的类别)稍后,当提供新数据进行测试时,将它们分类到您在培训时使用的标签之一;我们想知道每个分类的权重,这样我们就可以确信所做的分类是准确的 以下是我正在尝试的代码: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(
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%)
请查看更多详细信息。查看