浅谈利用逻辑回归来解决文本分类时的模型调优
来源:互联网 发布:收购淘宝账号400元 编辑:程序博客网 时间:2024/06/05 11:21
本文适合有少许文本分类实践经验的同学。
1.什么是文本分类?
简单点说,给定类别,将文本分到某个或某几个类别中。比如,一篇网页,判断它是体育类还是政治类还是娱乐类。当然网页比文本稍微复杂一些,需要先做一些页面解析等预处理工作。文本分类可看作网页分类的一个子问题。
想继续了解文本分类,推荐看计算所王斌老师的PPT ,点击这里。
2.什么是逻辑回归(LR, logistic regression)?
英文,参考wikipedia的定义,点击这里。
中文,可参考这篇,点击这里。
目前有不少机器学习方面的开源实现,本人采用了liblinear开源库,实现高效,使用简单,它支持LR和SVM,点击这里了解。
3.什么是模型调优?
对于文本分类问题,收集若干类别样本,确定好文本特征后,采用一些成熟的分类算法(朴素贝叶斯、SVM、决策树、LR等),即可得到一个分类器,采用交叉验证(cross validation)可得到这个分类器的大致效果。要想达到比较理想的分类效果(准确率/召回率),则需要进行模型调优。以下列举本人在利用LR的实践过程中觉得比较重要的调优点。
4. 训练样本调优
理想情况下,对于任何分类算法来讲,只要训练样本足够好(什么算好?),分类效果的差别并不是特别大。训练样本的好坏直接决定了分类效果。矛盾的是,理想中的训练样本几乎无法得到。主要原因有二:1)训练样本无法正确映射出现实世界中的各类别比例。比如现实世界里A类/B类=40,如果按照这个比例来确定训练样本,则显然不行。2)对于有监督学习来说,训练样本往往需要人工标注,这使得训练样本数量无法得到保证。另外人工标注不可避免会产生错误,也会对分类造成影响。
在实践过程当中,要保持对数据的敏感性,对于模型的错误/有偏输出结果,要不断分析和猜测并加以验证。比如某个非政治类词与政治类的关联度特别大,则可断定是训练样本的有偏性造成的(比如训练样本大部分来自新浪政治类网页,则新浪这个词肯定与政治类关联度特别大,要想办法消除这种有偏性)。
5. 特征调优
如何表示一个文本?向量空间模型(VSM)是比较常用的。对于文本分类问题,VSM的每一维可以表示一个word,而tfidf是比较常见的权重计算方法,但是tfidf的具体计算方法又有很多种(log形式, normalized形式、tf=1形式等)。任何一种都没有绝对的优劣性。需要在实践中根据具体数据来选择对应形式。
另外,特征的维数及各维定义也需要商榷。维数过大会带来训练时间过长和数据稀疏性问题。维数过小无法完整表示文本显然也不行。一般通过特征选择(feature selection)方法来确定特征维数和组成方式。实际使用过程中CHI和IG是效果比较好的两种。各维数含义则可简单可复杂,简单的,各维可表示一个word,直观明了;复杂的可使用LSI等方法来对其进行重构。
对于特征选择的计算结果(每维特征与各类别的关联度排序),可稍加分析,看是否存在训练样本的有偏问题。
6. 保持对数据的敏感性
模型调优是一个不断迭代的过程,在实践过程中,要善于根据分类器的输出(打分分布、区间样本抽查、误判分析)来发现问题所在。走一步,看一步。不要盲目地去调整,要根据模型目前的状态,分析其可能的问题所在,然后有针对性地去优化。另外还要确保测试集合的开放性,防止over-fitting.
7. 保持耐心、细致
模型调优又是一个繁琐的工作,需要不断的迭代优化,需要不断的抽查样本,需要不断的分析和对比数据。往往有时模型的输出结果与预测不符,会令人沮丧。但最重要的是要保持耐心和细心。如果确定目前的方法可以解决这类问题,则要坚定不移地走下去,同时细致地发现可能存在的问题并加以改进。相信总会得到一个令人满意的结果。
- 浅谈利用逻辑回归来解决文本分类时的模型调优
- 浅谈利用逻辑回归来解决文本分类时的模型调优
- 分类——逻辑回归模型
- deeplearning----利用逻辑回归分类MINIST数字
- 逻辑回归解决多分类和softmax
- 分类的线性模型:概率判别式模型之逻辑回归LR
- 回归模型-逻辑回归
- 3.多分类的逻辑回归
- 逻辑斯谛回归与最大熵分类模型
- 回归模型和分类模型的区别
- 逻辑回归分类器
- 逻辑回归分类器
- 浅谈逻辑回归
- 逻辑回归模型的评估方法
- 逻辑回归与其他模型的关系
- 逻辑回归算法——解决分类问题
- R语言利用逻辑回归模型预测用户活跃
- 文本分类模型的评估
- 第九讲 网络编程
- BCB配置和使用GDI+
- FlexPaper使用小记
- XManager 系统配置
- 嵌入式SQL笔记
- 浅谈利用逻辑回归来解决文本分类时的模型调优
- C语言中嵌入式SQL语句
- Installation Instructions for Linux Systems
- Oracle sql 性能优化【来自于网络】
- Java之异常与错误的区别及java的异常体系
- 开始TMS320C6000系列DSP硬件的学习
- SQL优化34条
- 详解Heritrix多线程结构
- 从苹果iPod生产看全球财富分配