我正在研究并使用SOM算法阅读一些论文。我不理解人们将数据集拆分为SOM的训练/测试集的逻辑。我的意思是,例如,当使用C4.5决策树时,训练的结构包括一些规则,当新的数据集(测试)来对那里的数据进行分类时应用这些规则。但是,通过SOM训练系统后会产生什么样的规则或类似的东西?如果我将100%的数据应用于SOM系统而不是使用30%进行培训然后使用70%进行测试,那会有什么不同?提前感谢您的回答。
答案 0 :(得分:0)
对于每个与数据相关的系统(应该在未来接触到新数据),保留部分现有数据进行测试可以强大地预测部署后的预测方式。对于SOM,您将学习特定的数据嵌入。如果您使用所有数据进行培训,之后又希望在数据之前使用过这种训练有素的SOM,那么您无法保证它的表现如何(手头任务的表示有多好)。有一个支持使您能够在受控环境中测试它 - 您在部分数据上训练SOM表示,然后将其应用于嵌入保持(测试),模拟“如果我获得新数据并想要使用将会发生什么我的SOM就此而言“。这同样适用于使用数据的每个算法,无论是否受到监督,如果您要基于此模型部署某些内容,您需要一个测试集来建立您自己的解决方案的信心。另一方面,如果您只是对“封闭”数据集进行探索性分析 - 那么无监督方法可以简单地应用于所有这些方法(如果您只是询问“此特定数据集中的结构是什么)”。 / p>
答案 1 :(得分:0)
看起来你不明白为什么SOM(无监督机器学习)应该像其他机器学习技术一样对待你的陈述:“......训练有素的结构包括一些新数据集应用的规则(测试)来对那里的数据进行分类..“
一般来说,在训练期间(包括SOM的训练),你的目标是结束 使用一组
final weights
(使用你的话;“规则是 应用“)用于新的,以前看不见的数据集 训练集应包含广泛的功能,通常是a 很好地代表您希望将其应用于的数据类型。
这将使final weights
尽可能准确和可靠。
至于“通过SOM训练系统后会产生什么样的规则或类似的东西?” final weights
组成“规则”应用于受SOM影响的任何新数据。因此,SOM将根据final weights
中的值为您提供结果。
将数据拆分为培训和测试可帮助您在培训SOM投入生产之前获得对其性能的信心。
另一方面,测试装置可以让您了解训练有素的SOM的表现。您比较训练集和测试集的结果。在您申请并开始使用经过培训的SOM之前,这一点非常重要。如果您发现训练集和测试集的结果之间存在很大差异,您应该查看训练集 - 可能包括训练集中更多样化的功能。
简而言之,拥有培训和测试集可以确保SOM在实施时的性能。如上所述issue:
“......我们创建测试分区以便为我们提供诚实的评估 我们的预测模型的表现。没有数量 基于数学推理和结果的操纵 训练数据将令有经验的观察者信服。“