我不确定这是机器学习问题的正确交换站点,但我之前确实看到过ML问题,所以我正在碰碰运气(也发布在http://math.stackexchange.com上)。
我有来自不同来源的训练实例,因此构建一个模型不能很好地工作。在这种情况下,有没有已知的方法可以使用?
举个例子最能说明问题。假设我想在给定基于不同人群构建的训练数据的情况下对癌症/非癌症进行分类。来自一个群体的训练实例可能具有与其他群体完全不同的正/负样本分布。现在,我可以为每个群体建立一个单独的模型,但问题是对于测试,我不知道测试实例来自哪个群体。
*无论来自哪个群体,所有训练/测试实例都具有完全相同的特征集。
发布于 2011-09-03 06:03:45
我怀疑,这可能不会比仅仅将所有数据放入在整个集合上训练的单个分类器中更好地工作。从更高的层次来看,数据集的特征应该告诉您标签,而不是输入分布。但你可以试试。
为每个尝试预测标签的数据集训练一个单独的分类器。然后在组合分布上训练分类器,尝试预测数据点来自哪个数据集。然后,当您想要预测测试实例的标签时,使用每个子分类器,并赋予它与高级数据集分类器分配的权重成比例的权重。
这感觉很像混合高斯的估计步骤,其中您通过采用K个中心的估计值指定的概率加权平均值来分配生成数据点的概率。
发布于 2011-09-03 06:14:12
一种经典的方法是通过分层建模(如果可以有层次结构),固定效果模型(或随机效果,取决于假设和环境),各种其他组或结构模型。
在机器学习环境中,您可以通过将分布描述为源的函数来执行相同的操作,包括样本总体和响应变量。因此,源代码本质上是一个可能与所有(或大多数)其他功能交互的功能。
更大的问题是,你未来的(测试)数据是来自这些抽样总体中的一个,还是来自另一个总体。
更新1:如果你想关注机器学习,而不是统计,另一个相关的概念是迁移学习。它并不是非常复杂,尽管它被大肆宣传。基本思想是在辅助数据分布中找到可以映射到目标数据源的predictor/response框架中的公共属性。在另一种意义上,您正在寻找一种排除依赖于源的变体的方法。这些都是非常高层次的描述,但应该会对你的阅读计划有所帮助。
发布于 2011-09-03 21:35:31
如果你只对预测感兴趣(我认为,因为你在谈论监督学习),那么混合数据集和训练联合模型没有什么错。
如果你使用支持向量机、神经网络或逻辑回归等模型,添加另一个特征来指示样本所属的总体可能会有所帮助。一旦你得到一个看不见的样本,将这个特征设置为一个中性值(例如,使用-1表示pop 1,+1表示pop2,0表示看不见的样本)。
然后,您可以很容易地检查这两个群体有什么不同。
https://stackoverflow.com/questions/7289521
复制相似问题