2016-09-20 137 views
0

我想训练一个基于给定训练集的分类器(比如每班有100个样本的2级问题)。我怎样才能训练我的分类器,使得训练集中的一些样本(比如说每个类的前20个样本)比其他样本更有价值? (由于某些原因,这些样本与测试集更相似,因此在训练分类器时应该将其考虑为更重要) 如果我只复制这些样本几次,可以吗?当根据训练集训练分类器时,如果某些训练样本比其他训练样本更值钱(更有价值),我该怎么办?

我不知道,如果它的事项或没有,但我的分类包括一个功能选择步骤(称为快速基于相关性过滤器的过滤器为基础的方法)和分类步骤(线性SVM)的。另外,我的测试集是完全不同的集合,我完全无法使用任何训练步骤。

回答

0

是否确定,如果我只是复制那些样品几次?

这取决于你所使用的方法。对于某些人来说 - 这很好,就像你所说的SVM一样 - 它对样本具有添加剂损失功能,并且不关心重复项。 然而这不是你应该如何与SVM解决这个问题,因为它直接支持样本加权,这是你应该做的 - 附加重量样本。根据使用的库/语言,它可能有或没有,但这是正确的方法。例如在libsvm中,您只需将sample_weight传递给您的fit调用,如here

+0

非常感谢您的回答@lejlot。 –

+0

由于我在分类步骤之前使用了特征选择算法,因此我相信在两个步骤中执行示例敏感的技巧更有意义。 我的特征选择算法(称为基于快速相关的滤波器)是一种基于滤波器的方法,可根据特征和类的相关性和信息增益来选择特征。如果我在该步骤中复制重要样本,可以吗? –

+0

首先检查你的方法是否没有实现样本加权,因为对于这样的方法应该是直截了当的。在svm中加权可能仍然会更好(即使它使代码更加复杂)。作为一个方面说明 - 你确定你需要这个功能选择?这听起来很奇怪,线性svm非常适合自己做,而且你会有同质的联合优化问题 – lejlot