python pandas数据帧NLTK分类的Kfold交叉验证

2024-10-17 08:29:37 发布

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

我想使用10倍交叉验证来评估nltk分类模型。这是名为:data的pandas数据框架(有10k行和10个类)

features: hello_variant, goodbye_variant,wh_question,yesNo_question, conjuction_start, No_of_tokens

enter image description here

我试过下面的代码。但它给出了一个错误

extract_features = data.drop(['class'],axis=1)
documents = data['class']

import nltk
from sklearn import cross_validation
training_set = nltk.classify.apply_features(extract_features, documents)
cv = cross_validation.KFold(len(training_set), n_folds=10,  shuffle=False, random_state=None)

for traincv, testcv in cv:
    classifier = nltk.NaiveBayesClassifier.train(training_set[traincv[0]:traincv[len(traincv)-1]])
    print 'accuracy:', nltk.classify.util.accuracy(classifier, training_set[testcv[0]:testcv[len(testcv)-1]])

错误:

^{pr2}$

此外,我还想得到语料库(类)中每个对话行为的准确度、召回率和F分数,以及分类器的准确度和混淆矩阵。在NLTK中有什么方法可以用来计算这些?(除了sklearn)


Tags: importdatalen错误trainingextractdocumentsclass