有没有办法找到整个数据集中最具代表性的样本集?

Posted

技术标签:

【中文标题】有没有办法找到整个数据集中最具代表性的样本集?【英文标题】:Is there a way to find the most representative set of samples of the entire dataset? 【发布时间】:2019-09-29 05:32:28 【问题描述】:

我正在研究文本分类,我有一组 200.000 条推文。

这个想法是手动标记一组短推文并训练分类器来预测其余推文的标签。监督学习。

我想知道的是,是否有一种方法可以选择要包含在训练集中的样本,以使该训练集可以很好地表示整个数据集,并且因为包含在训练集中的高度多样性训练集,经过训练的分类器具有相当大的信任度,可以应用于其余推文。

【问题讨论】:

【参考方案1】:

似乎在您对要标记的类别有所了解之前,一个简单的均匀随机样本几乎与任何分层样本一样好 - 因为您事先不知道要根据什么进行分层。

标记第一个样本并构建第一个分类器后,您可以开始所谓的主动学习:对未标记的数据集进行预测,并采样一些您的分类器最不自信的推文。标记它们,重新训练分类器,然后重复。

使用这种方法,我设法在几次 (~5) 次迭代后创建了一个良好的训练集,每次迭代有 ~100 个文本。

【讨论】:

【参考方案2】:

这听起来像是一个分层问题 - 您是否有预先存在的标签,或者您是否计划根据您正在构建的样本设计标签?

如果是第一种情况,我认为按重要性顺序排列的步骤是:

    按目标类比例分层(因此,如果您有 3 个类,并且它们的比例为 50-30-20%,那么训练/开发/测试应该遵循相同的比例) 按您计划使用的功能进行分层 按推文长度/词汇等进行分层。

如果是第二种情况,并且您还没有标签,您可能需要考虑使用 n-gram 作为特征,并结合降维或聚类方法。例如:

    使用诸如 PCA 或 t-SNE 之类的方法来最大化推文(或较大的子集)之间的距离,然后从投影空间的不同区域中挑选候选者 根据词汇项(unigrams 或 bigrams,可能使用对数频率或 TF-IDF 和停用词过滤,如果内容词是您要查找的内容)对它们进行聚类 - 然后您可以在一个高度切割树n 个 bin,然后您可以将其用作样本的来源(按分支分层) 使用诸如 LDA 之类的东西来查找 n 个主题,然后按主题分层抽样

希望这会有所帮助!

【讨论】:

以上是关于有没有办法找到整个数据集中最具代表性的样本集?的主要内容,如果未能解决你的问题,请参考以下文章

获取预测模型在测试集中预测错误的数据样本

交叉验证

如何将数据集中的每 5 个样本分配为测试数据集,将其余样本分配为训练数据集?

人工智能--第二天--KNN算法

有没有办法在 python 中使用数据集中的变量计数以日期作为预测变量来运行线性回归?

交叉验证(Cross Validation)原理小结