-
【说话处理惩罚与Python】6.3评估
添加时间:2013-5-28 点击量:测试集
测试集要重视可用于测试和可用于练习的数据量之间的衡量。
选择测试集的另一个须要推敲的是测试集中实例与开辟集中的实例的类似程度。这两个数据集越类似,我们对将评估成果推广到其他数据集的决心信念就越小。
正确度
用于评估一个分类的最简单的怀抱是正确度。
申明一个分类器的正确性得分,推敲测试集中单个类标签的频率是很首要的。
正确度和召回率
?真阳性是相干项目中我们正确辨认为相干的。
?真阴性是不相干项目中我们正确辨认为不相干的。
?假阳性(或I型错误)是不相干项目中我们错误辨认为相干的。
?假阴性(或II型错误)是相干项目中我们错误辨认为不相干的。给定这四个数字,我们可以定义以下指标:
正确度(Precision),默示我们发明的项目中有几许是相干的,TP/(TP+FP)。
召回率(Recall),默示相干的项目中我们发了然几许,TP/(TP+FN)。
F-怀抱值(F-Measure)(或F-得分,F-Score),组合正确度和召回率为一个零丁的得分,被定义为正确度和召回率的调和均匀数(2 ×Precision×Recall)/(Precision+Recall)。混合矩阵
一个混合矩阵默示了错误的信息量。
可以经由过程下面的代码来加深懂得:
>>>def tag_list(tagged_sents):
... return [tag for sent in tagged_sents for (word, tag) in sent]
>>>def apply_tagger(tagger, corpus):
... return [tagger.tag(nltk.tag.untag(sent)) for sent in corpus]
>>>gold =tag_list(brown.tagged_sents(categories=editorial))
>>>test = tag_list(apply_tagger(t2, brown.tagged_sents(categories=editorial)))
>>>cm = nltk.ConfusionMatrix(gold, test)
获得的成果是:(读者们自行调剂一下列,显示的有些太紧凑)
| N |
| N I A J N V N|
| N N T J . S , B P |
------+--------------------------------------------------------------------------------------------------+
NN| <11.8%> 0.0% . 0.2% . 0.0% . 0.3% 0.0%|
IN | 0.0% <9.0%> . . . 0.0% . . . |
AT| . . <8.6%> . . . . . . |
JJ | 1.6% . . <4.0%> . . . 0.0% 0.0% |
. | . . . . <4.8%> . . . . |
NS| 1.5% . . . . <3.2%> . . 0.0%|
, | . . . . . . <4.4%> . . |
B| 0.9% . . 0.0% . . . <2.4%> . |
NP| 1.0% . . 0.0% . . . . <1.9%>|
-------+----------------------------------------------------------------------------------------------+
交叉验证
题目靠山:
为了评估我们的模型,我们必须为测试集保存一项目组已标注的数据。正如我们已经提到,若是测试集是太小了,我们的评价可能不正确。然而,测试集设置较大凡是意味着练习集设置较小,若是已标注数据的数量有限,如许设置对机能会产生重大影响。
解决规划:
这个题目的解决规划之一是在不合的测试集上履行多个评估,然后组合这些评估的得分,这种技巧被称为交叉验证。希罕是,我们将原始语料细分为N个子集称为折叠(folds)。
对于每一个这些的折叠,我们应用除这个折叠中的数据外其他所稀有据练习模型,然后在这个折叠上测试模型。即使个此外折叠可能是太小了而不克不及在其上给出正确的评价分数,综合评估得分是基于多量的数据,是以是相当靠得住的。
上风:
它可以让我们研究不合的练习集上机能变更有多大。若是我们从所有N个练习集获得很是类似的分数,然后我们可以相当有决心信念,得分是正确的。另一方面,若是N个练习集上分数很大不合,那么,我们应当对评估得分的正确性持思疑立场