分类体系
分类:给定一个对象,从一个事先定义好的分类体系中挑出一个或多个最适合该对象的类别。
文本分类(TC, Text Categorization):在给定的分类体系下,根据文本内容自动的确定文本关联的类别。从数学角度看,文本分类是一个映射的过程,它将未标明类别的文本映射到已有的类别中,该映射可以是一对一或一对多的映射。
其中,A
表示待分类的文本集合,B
表示分类体系中的类别集合。
文本分类属于有监督的学习(Supervised Learning),它的基本步骤如下:
- 定义分类体系,即确定具体要分到哪些类。
- 将预先分类过的文档作为训练集,对文档做分词、去停用词等准备工作。
- 确定表达模型,对文档矩阵进行降维,提取训练集中最有用的特征。
- 应用具体的分类模型和分类算法,训练出文本分类器。
- 在测试集上测试并评价分类器的性能。
- 应用性能最高的分类模型对待分类文档进行分类。
评价指标
准确率和召回率是检索(IR)系统中的概念,也可用来评价分类器性能。
True | False | |
Positive | A | B |
Negative | C | D |
- 准确率(P, Precision),A/(A+B),在所有被判断为正确的文档中,有多大比例是确实正确的。
- 召回率(R, Recall),A/(A+C),在所有确实正确的文档中,有多大比例被我们判为正确。
- F1测度(F-measure),2PR/(P+R),既衡量准确率,也衡量召回率。
准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。
其他一些指标:
- 漏报率(miss rate) = 1 - recall
- 准确度(accurarcy) = (A + D)/(A + B + C + D)
- 错误率(error) = (B+C)/(A+B+C+D) = 1 - accurarcy
- 虚报率(fallout) = B/(B+D) = false alarm rate
- F = (β^2 +1)PR/(β^2+R)
- BEP, Break Event Point, where P=R
- AUC
表达模型
模型对每篇文档默认构造的向量是固定长度n,该n可能是我们汉语词典收录的词条数目,显然这会导致每个向量里的大部分特征值都是0。这是文本分类的主要特点:高维 和 数据稀疏。所以,降维是开始运用分类算法训练样本之前的一个关键预处理步骤。
降维有两种方法:
- 特征选择(feature selection),它是对原始特征利用一些评估函数独立评估,按照评估结果高低排序,选择那些评估值较高的特征。常用的特征选择方法有词频信息、互信息、信息增益和卡方检验等
- 特征抽取(feature detection),它是把原始特征映射到低维空间,这些被称为二次特征 (比如,奇异值分解后得到的lsi),从而生成模型产生的新特征。特征抽取方法比较常用的是lsa、plsa和lda等。
【注意】 特征选择和特征权重值计算是不同的,前者是根据特征对分类的重要程度来实现降维的手段,而后者是用于区分向量,实现分类算法中的相似度判断。它们是两个阶段的不同处理方法。特征权重值最典型的是tf-idf。
特征选择(feature selection)
针对英文纯文本的实验结果表明:作为特征选择方法时,卡方检验和信息增益的效果最佳(相同的分类算法,使用不同的特征选择算法来得到比较结果);文档频率方法的性能同前两者大体相当,术语强度方法性能一般;互信息方法的性能最差。
卡方检验(the χ^2 test)
属于分类c | 不属于分类c | 总计 | |
包含特征t | A | B | A+B |
不包含特征t | C | D | C+D |
总计 | A+C | B+D | N |
卡方检验是通过计算每个特征和每个类别的关联程度,然后选择那些关联程度高的特征来实现降维。其基本思想就是衡量实际值与理论值的偏差来确定理论的正确与否。
χ2(t,c)=N×(AD−BC)2(A+C)×(B+D)×(A+B)×(C+D)
其中,t
是具体的每个特征(比如词),c
是类别号。
信息增益法(information gain)
信息增益是通过计算每个特征对分类贡献的信息量,贡献越大信息增益越大,然后可以选择那些信息增益较高的特征实现降维。
信息熵定义:
H(C)=−∑i=1mP(ci)logP(ci)
其中,ci
是类别变量C
可能的取值,P(ci)
是各个类别出现的概率。
条件熵定义:
H(C|T)=P(t)H(C|t)+P(t¯)