我正在使用 R 中的 Caret 包来创建最大能源需求的预测模型。我需要使用的是神经网络多层感知器,但在 Caret 包中我发现有 2 个 mlp 方法,即“mlp”和“mlpML”。两者有什么区别?
我已经阅读了一本书的描述(高级 R 统计编程和数据模型:分析、机器学习和可视化),但它仍然没有回答我的问题。
我正在使用 R 中的 Caret 包来创建最大能源需求的预测模型。我需要使用的是神经网络多层感知器,但在 Caret 包中我发现有 2 个 mlp 方法,即“mlp”和“mlpML”。两者有什么区别?
我已经阅读了一本书的描述(高级 R 统计编程和数据模型:分析、机器学习和可视化),但它仍然没有回答我的问题。
Caret
有 238 种不同的型号可供选择!然而,它们中的许多只是调用相同基本算法的不同方法。
除此之外mlp
,还有 9 种其他调用多层感知器的方法,其中之一是mlpML
. 真正的区别仅在于函数调用的参数,您需要哪种模型取决于您的用例以及您想要对基本模型进行哪些调整。
机会是,如果你不知道什么mlpML
或mlpWeightDecay
等。你可以只使用基本的mlp
.
查看官方文档我们可以看到:
mlp(size)
因此,mlpML(layer1,layer2,layer3)
在第一种方法中,您只能调整多层感知器的大小,而在第二种方法中,您可以单独调整每一层。
在这里查看源代码:
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",
whilemlp
有一个带有隐藏单元的单层。
官方文档也暗示了这种差异。在我看来,拥有许多仅略有不同的不同模型并不是特别有用,并且文档并没有很好地解释这些细微的差异。