集成学习,多分类器系统

时间:2012-03-02 16:27:54

标签: c# matlab machine-learning bayesian ensemble-learning

我正在尝试使用MCS(多分类器系统)在有限的数据上做更好的工作,即变得更加准确。

我目前正在使用K-means聚类,但可以选择使用FCM(模糊c-均值),数据被聚类成组(聚类),数据可以代表任何颜色,例如颜色。我首先在预处理和规范化之后对数据进行聚类,并在两者之间获得一些不同的聚类。然后我继续使用聚类作为贝叶斯分类器的数据,每个聚类代表一种不同的颜色,贝叶斯分类器被训练,然后来自聚类的数据通过单独的贝叶斯分类器。每个贝叶斯分类器仅以一种颜色进行训练。如果我们将色谱3-10作为蓝色13-20作为红色并且0-3之间的光谱是白色到1.5然后逐渐变为蓝色到1.5-3并且蓝色变为红色相同。

我想知道的是,可以应用怎样或者什么样的聚合方法(如果这是你将要使用的),以便贝叶斯分类器变得更强大,它是如何工作的?聚合方法是否已经知道答案,或者是人工交互是否会纠正输出,然后这些答案又会回到贝叶斯培训数据中?或两者兼而有之?看看Bootstrap聚合它涉及让整体投票中的每个模型具有相同的权重,所以在这个特定的实例中我不太确定我会使用bagging作为我的聚合方法吗?然而,提升通过训练每个新模型实例以强调先前模型错误分类的训练实例来逐步建立集合,不确定这是否是更好的替代套袋,因为我不确定它是如何逐步建立在新实例上的?最后一个是贝叶斯模型平均,这是一种集合技术,试图通过从假设空间中提取假设来近似贝叶斯最优分类器,并使用贝叶斯定律将它们组合起来,但是完全不确定如何从搜索空间中提取假设?

我知道,通常你会使用竞争方法在两种分类算法之间反弹,一种说是是一种说可能可以应用一种加权,如果它是正确的,你可以得到两种分类器中最好的但是为了保持清酒我不想要一个竞争方法。

另一个问题是以这样的方式将这两种方法结合在一起是否有益,我知道我提供的示例非常原始,可能不适用于该示例,但它可以在更复杂的数据中有用。

1 个答案:

答案 0 :(得分:4)

我对您所关注的方法有一些疑问:

  1. K-means在每个群集中放置最接近它的点。然后使用输出数据训练分类器。我认为分类器可能优于聚类隐式分类,但只考虑每个聚类中的样本数。例如,如果聚类后的训练数据是typeA(60%),typeB(20%),typeC(20%);您的分类器会更喜欢将不明确的样本带到typeA,以获得更少的分类错误。
  2. K-means取决于您从对象中获取的“坐标”/“特征”。如果使用混合了不同类型对象的特征,则K-means性能会降低。从特征向量中删除这些特征可能会改善您的结果。
  3. 表示要分类的对象的“特征”/“坐标”可以用不同的单位来衡量。这个事实会影响您的聚类算法,因为您通过聚类错误函数隐式设置它们之间的单位转换。使用误差函数,通过多个聚类试验(在不同的聚类初始化时获得)选择最终聚类集。因此,对特征向量的不同坐标进行隐式比较(可能会引入隐式转换因子)。
  4. 考虑到这三点,您可能会通过添加预处理阶段来提高算法的整体性能。例如,在用于计算机视觉应用的对象识别中,从图像中获取的大多数信息仅来自图像中的边界。不使用所有颜色信息和纹理信息的一部分。从处理图像的图像中减去边界以获得定向梯度直方图(HOG)描述符。该描述符返回更好地分离对象的“特征”/“坐标”,从而增加分类(对象识别)性能。理论描述符抛出图像中包含的信息。然而,它们具有两个主要优点:(a)分类器将处理较低维度的数据;(b)根据测试数据计算的描述符可以更容易地与训练数据匹配。

    在您的情况下,我建议您尝试采用类似方法来提高准确性:

    1. 为您的群集算法提供更丰富的功能
    2. 利用该领域的先前知识来确定应从功能向量中添加和删除哪些功能
    3. 始终考虑获取标记数据的可能性,以便可以应用监督学习算法
    4. 我希望这会有所帮助......