【发布时间】:2018-05-13 22:33:39
【问题描述】:
我对机器学习非常陌生。我有一个问题需要使用监督机器学习来解决;
问题:从训练数据中学习并理解标签(我有.csv格式的训练数据,其中column1是数据,column2是相应的标签,我的数据也是用户的电子邮件和标签是我要分类的类别),然后在给定新数据进行测试时将它们分类为您在训练时使用的标签之一;我们想知道每个分类的权重,以便我们确信所做的分类是准确的。
这是我正在尝试的代码:
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')
这会打印基于学习完成的分类,但我们想知道“分类器对我在此处对每条记录所做的分类的准确度有多少信心(以百分比表示)。
感谢任何帮助/建议/更改编写此代码的方式;如果我应该添加更多详细信息,请告诉我。
【问题讨论】:
标签: python machine-learning scikit-learn nltk sklearn-pandas