浅谈利用逻辑回归来解决文本分类时的模型调优

来源:互联网 发布:收购淘宝账号400元 编辑:程序博客网 时间:2024/06/05 11:21

本文适合有少许文本分类实践经验的同学。

 

1.什么是文本分类?

简单点说,给定类别,将文本分到某个或某几个类别中。比如,一篇网页,判断它是体育类还是政治类还是娱乐类。当然网页比文本稍微复杂一些,需要先做一些页面解析等预处理工作。文本分类可看作网页分类的一个子问题。

想继续了解文本分类,推荐看计算所王斌老师的PPT ,点击这里。

 

 

2.什么是逻辑回归(LR, logistic regression)?

英文,参考wikipedia的定义,点击这里。

中文,可参考这篇,点击这里

目前有不少机器学习方面的开源实现,本人采用了liblinear开源库,实现高效,使用简单,它支持LRSVM,点击这里了解。

 

3.什么是模型调优?

对于文本分类问题,收集若干类别样本,确定好文本特征后,采用一些成熟的分类算法(朴素贝叶斯、SVM、决策树、LR等),即可得到一个分类器,采用交叉验证(cross validation)可得到这个分类器的大致效果。要想达到比较理想的分类效果(准确率/召回率),则需要进行模型调优。以下列举本人在利用LR的实践过程中觉得比较重要的调优点。

 

4. 训练样本调优

理想情况下,对于任何分类算法来讲,只要训练样本足够好(什么算好?),分类效果的差别并不是特别大。训练样本的好坏直接决定了分类效果。矛盾的是,理想中的训练样本几乎无法得到。主要原因有二:1)训练样本无法正确映射出现实世界中的各类别比例。比如现实世界里A/B=40,如果按照这个比例来确定训练样本,则显然不行。2)对于有监督学习来说,训练样本往往需要人工标注,这使得训练样本数量无法得到保证。另外人工标注不可避免会产生错误,也会对分类造成影响。

在实践过程当中,要保持对数据的敏感性,对于模型的错误/有偏输出结果,要不断分析和猜测并加以验证。比如某个非政治类词与政治类的关联度特别大,则可断定是训练样本的有偏性造成的(比如训练样本大部分来自新浪政治类网页,则新浪这个词肯定与政治类关联度特别大,要想办法消除这种有偏性)。

 

5. 特征调优

如何表示一个文本?向量空间模型(VSM)是比较常用的。对于文本分类问题,VSM的每一维可以表示一个word,而tfidf是比较常见的权重计算方法,但是tfidf的具体计算方法又有很多种(log形式, normalized形式、tf=1形式等)。任何一种都没有绝对的优劣性。需要在实践中根据具体数据来选择对应形式。

另外,特征的维数及各维定义也需要商榷。维数过大会带来训练时间过长和数据稀疏性问题。维数过小无法完整表示文本显然也不行。一般通过特征选择(feature selection)方法来确定特征维数和组成方式。实际使用过程中CHIIG是效果比较好的两种。各维数含义则可简单可复杂,简单的,各维可表示一个word,直观明了;复杂的可使用LSI等方法来对其进行重构。

    对于特征选择的计算结果(每维特征与各类别的关联度排序),可稍加分析,看是否存在训练样本的有偏问题。

 

6. 保持对数据的敏感性

模型调优是一个不断迭代的过程,在实践过程中,要善于根据分类器的输出(打分分布、区间样本抽查、误判分析)来发现问题所在。走一步,看一步。不要盲目地去调整,要根据模型目前的状态,分析其可能的问题所在,然后有针对性地去优化。另外还要确保测试集合的开放性,防止over-fitting.

 

7. 保持耐心、细致

模型调优又是一个繁琐的工作,需要不断的迭代优化,需要不断的抽查样本,需要不断的分析和对比数据。往往有时模型的输出结果与预测不符,会令人沮丧。但最重要的是要保持耐心和细心。如果确定目前的方法可以解决这类问题,则要坚定不移地走下去,同时细致地发现可能存在的问题并加以改进。相信总会得到一个令人满意的结果。

 

 

原创粉丝点击