返回信息流有做文本分类的没?测试文档赋权值时,用的是训练集的统计量吗?如TF*IDF中总文档数和反文档词频是训练集还是测试集的统计量? [ema23]
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #10117同步于 2013/1/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
[问题]文本分类
banana88
2013/1/13镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
就机器学习本身来说吧,训练集和测试集都是分开的,一般训练的时候就用训练集,测试的时候就用测试集。
用训练集去测试这个训练集训练出来的分类器,结果是不是会太假了……
或者整一个大的集合来交叉验证。
谢啦,我目前就是分开做的,测试只用的测试集的统计量,只是考虑到测试集类别和训练集类别分布不太一致时,比较极端点测试集只有一类时,计算出的权重可能和训练集差别比较大;目前我实验的测试集和训练集分布差不多,所以性能还行。
【 在 FaceBasin 的大作中提到: 】
: 就机器学习本身来说吧,训练集和测试集都是分开的,一般训练的时候就用训练集,测试的时候就用测试集。
: 用训练集去测试这个训练集训练出来的分类器,结果是不是会太假了……
: 或者整一个大的集合来交叉验证。
LZ是不是刚开始接触文本分类呢。要做文本分类,首先用训练集的文档,即已经有明确类别标号的文档提取一个特征向量,特征向量里每一个纬度就是一个词,然后词的权值可以用你说的TF*IDF方法,所以其中的参数都是在训练集的范围内的。训练好这样一个特征向量之后就可以用来进行分类了。这时候你可以选用不同的分类器进行分类,比如使用VSM或者朴素贝叶斯的方法。 对于测试分类器性能指标可以采用二八定律的方法,即将训练文档分为5分,4分用来训练得到特征向量,一份用来测试分类效果。如果对训练结果还想再更好的验证,可以使用K -折交叉验证方法。
【 在 banana88 的大作中提到: 】
: 有做文本分类的没?测试文档赋权值时,用的是训练集的统计量吗?如TF*IDF中总文档数和反文档词频是训练集还是测试集的统计量?
你意思是所有文本都统一进行特征选择权值计算,然后选4分训练一分测试?还是4分训练文本和1分测试文本分别进行?
【 在 a19870209a 的大作中提到: 】
: LZ是不是刚开始接触文本分类呢。要做文本分类,首先用训练集的文档,即已经有明确类别标号的文档提取一个特征向量,特征向量里每一个纬度就是一个词,然后词的权值可以用你说的TF*IDF方法,所以其中的参数都是在训练集的范围内的。训练好这样一个特征向量之后就可以用来进行分类了。这时候你可以选用不同的分类器进行分类,比如使用VSM或者朴素贝叶斯的方法。 对于测试分类器性能指标可以采用二八定律的方法,即将训练文档分为5分,4分用来训练得到特征向量,一份用来测试分类效果。如果对训练结果还想再更好的验证,可以使用K -折交叉验证方法。
sorry,这边没说清,还是4分训练文本和1分测试文本分别进行
【 在 banana88 的大作中提到: 】
: 你意思是所有文本都统一进行特征选择权值计算,然后选4分训练一分测试?还是4分训练文本和1分测试文本分别进行?
做过一个WebKB数据集的网页分类,LZ可以试试这个数据集,里面给好了训练数据和测试数据,经过预处理后套用算法,可以实现训练,再用测试集去测试看性能。
还是直接回答LZ的问题吧。简单来说,与数据集非常相关的局部统计特征必须在当前集合统计,如TF。而与数据集相对无关的全局统计特征可以脱离当前集合,在更大的全局集合统计,如IDF。这种划分不是绝对严格的,可以根据实际情况灵活掌握。
其实理论上来说,测试时确实只能用测试集的统计量,因为原则上在进行测试时训练集应该是完全不可见的。但IDF这种特征比较特殊,当数据集不够大时IDF本身非常不准,由于我们的测试集一般都很小,像IDF这种特征在测试集上计算出来的往往不具有IDF本身的含义。
所以实际使用时,像IDF这种需要大数据集统计才有意义的特征,一般是放在一个很大的数据集上统计的。这个数据集可以是比较大的训练集(这不会导致overtune,有兴趣的同学可以思考一下为什么)。也可以是一个比训练集还大的原始数据集。以网页分类为例,我们可以取1W个标注过类别的网页做训练集,另外3K标注网页做测试集,而实际我们可能有100W的未标注爬取数据。那其实IDF特征可以在这100W的原始数据集上统计,IDF作为一个静态特征值,同时提供给训练集和测试集使用。
【 在 banana88 的大作中提到: 】
: 有做文本分类的没?测试文档赋权值时,用的是训练集的统计量吗?如TF*IDF中总文档数和反文档词频是训练集还是测试集的统计量?
【 在 simonsu 的大作中提到: 】
: 还是直接回答LZ的问题吧。简单来说,与数据集非常相关的局部统计特征必须在当前集合统计,如TF。而与数据集相对无关的全局统计特征可以脱离当前集合,在更大的全局集合统计,如IDF。这种划分不是绝对严格的,可以根据实际情况灵活掌握。
: 其实理论上来说,测试时确实只能用测试集的统计量,因为原则上在进行测试时训练集应该是完全不可见的。但IDF这种特征比较特殊,当数据集不够大时IDF本身非常不准,由于我们的测试集一般都很小,像IDF这种特征在测试集上计算出来的往往不具有IDF本身的含义。
: 所以实际使用时,像IDF这种需要大数据集统计才有意义的特征,一般是放在一个很大的数据集上统计的。这个数据集可以是比较大的训练集(这不会导致overtune,有兴趣的同学可以思考一下为什么)。也可以是一个比训练集还大的原始数据集。以网页分类为例,我们可以取1W个标注过类别的网页做训练集,另外3K标注网页做测试集,而实际我们可能有100W的未标注爬取数据。那其实IDF特征可以在这100W的原始数据集上统计,IDF作为一个静态特征值,同时提供给训练集和测试集使用。
: ...................
曾经用过tf-idf 测试过搜狗的文本分类,达到过84% 的正确率
每个分类1000 的训练集