0

我正在研究和阅读一些使用SOM算法的论文。我不明白人们将他们的数据集分解为SOM的训练/测试集的逻辑。我的意思是,例如,当使用C4.5决策树时,经过训练的结构包括一些新的数据集(测试)来分类数据时应用的规则。但是,系统通过SOM进行培训后会生成什么样的规则或类似的规则?如果我将100%的数据应用于SOM系统,而不是30%先进行培训,然后再使用70%进行测试,那将会有什么不同呢?提前感谢您的回答。将数据分解为SOM中的培训/测试的原因是什么?

回答

0

对于每个与数据相关的系统(未来应该会暴露于新数据中),拿出部分现有数据来进行测试,可以强有力地预测它在部署后的预测方式。对于SOM,您将学习特定的数据嵌入。如果您将所有数据用于培训,并且稍后想要使用在数据前从未见过的训练好的SOM,则无法保证它将如何表现(这种表示对于任务的表现有多好)。拥有一个支持让你有能力在受控环境中测试这一点 - 你在部分数据上训练SOM表示,然后将其应用于嵌入保持(测试),它模拟“如果我得到新数据并希望使用会发生什么我的SOM“。这同样适用于每一种使用数据的算法,不管它是否受到监督,如果你打算根据这个模型部署某些东西,你需要一个测试集来建立你自己解决方案的信心。另一方面,如果您只是对“封闭”数据集进行探索性分析,那么无监督方法就可以简单地应用于所有数据(如果您只是问“这个特定数据集中的结构是什么)。”

0

看起来你不明白为什么SOM(无监督机器学习)应该像其他机器学习技术一样对待,因此您的陈述为:“......训练有素的结构包括一些新规则(测试)时应用的规则该数据有分类。”

一般来说,培训(包括SOM)的过程中,你的目标是最终 一组final weights(给我们你的话; “应用的规则为 ”)用于新的,以前未见过的数据集。训练集应该包含各种各样的功能,通常是您希望应用的数据类型的良好代表。

这将使final weights尽可能准确和尽可能可靠。 至于“通过SOM训练系统后会产生什么样的规则或类似的东西?”final weights组成将应用于SOM的任何新数据的“规则”。因此,SOM将根据其final weights中的值给出结果。

将数据分解为训练和测试可帮助您在投入生产前获得训练有素的SOM性能的信心。

另一方面,测试集可以让您看到训练的SOM的表现如何。您将训练集的结果与测试集的结果进行比较。在申请并开始使用训练有素的SOM之前,这很重要。如果您发现训练集和测试集的结果差异很大,您应该查看训练集 - 可能在训练集中包含更多不同的特征。
简而言之,通过培训和测试集可以确保SOM在实施时的性能。如前所述here

“......我们创建测试分区给我们提供诚实的评估我们的预测模型的性能 数学推理的没有量和操纵基础上, 训练数据的结果将是。说服一位有经验的观察员。“