我正在使用R的Caret包来创建最大能源需求的预测模型。我需要使用的是神经网络多层感知器,但在Caret软件包中,我发现有两种mlp方法,即"mlp“和"mlpML”。两者之间的区别是什么?
我读过一本书(Advanced R Statistical and Data Models: Analysis,Machine Learning,and Visualization)中的描述,但它仍然没有回答我的问题。
发布于 2020-05-12 16:28:26
Caret有238种不同的型号可供选择!然而,它们中的许多只是调用相同基本算法的不同方法。
除了mlp之外,还有另外9种调用多层感知器的方法,mlpML就是其中之一。真正的区别只在于函数调用的参数,您需要哪种模型取决于您的用例以及您想要适应的基本模型。
很有可能,如果你不知道什么是mlpML或mlpWeightDecay等,你可以只使用基本的mlp。
查看官方文档,我们可以看到:
mlp(size)而mlpML(layer1,layer2,layer3),所以在第一种方法中,你只能调优多层感知器的大小,而在第二种调用中,你可以单独调优每一层。
发布于 2020-05-12 16:28:44
请看这里的源代码:
https://github.com/topepo/caret/blob/master/models/files/mlp.R
还有这里:
https://github.com/topepo/caret/blob/master/models/files/mlpML.R
看起来不同之处在于mlpML允许几个隐藏层:
modelInfo <- list(label = "Multi-Layer Perceptron, with multiple layers",而mlp只有一个带有隐藏单元的单层。
official documentation也暗示了这种差异。在我看来,有许多不同的模型只有很小的差异并不是特别有用,文档也没有很好地解释这些细微的差异。
https://stackoverflow.com/questions/61746694
复制相似问题