R语言 数据挖掘 mlp参数问题

Python014

R语言 数据挖掘 mlp参数问题,第1张

训练的时候。test数据肯定是不参与,所以默认情况下是NULL,但是加入test数据过后,比如说我已经对train数据迭代了一次了,也就是遍历了一次train的数据集合,这时候,可以测试一些test数据,看看这个模型在test上面的效果怎样。收敛的MLP过程下,每一次迭代整个数据集过后,在test数据集上面的错误率应该是逐渐减少的。所以,我感觉test数据其实就是为了测试当前训练好的模型的效果。

不能发链接,所以我复制过来了。

#载入程序和数据

library(RSNNS)

data(iris)

#将数据顺序打乱

iris <- iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]

#定义网络输入

irisValues <- iris[,1:4]

#定义网络输出,并将数据进行格式转换

irisTargets <- decodeClassLabels(iris[,5])

#从中划分出训练样本和检验样本

iris <- splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)

#数据标准化

iris <- normTrainingAndTestSet(iris)

#利用mlp命令执行前馈反向传播神经网络算法

model <- mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=100, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)

#利用上面建立的模型进行预测

predictions <- predict(model,iris$inputsTest)

#生成混淆矩阵,观察预测精度

confusionMatrix(iris$targetsTest,predictions)

#结果如下:

#predictions

#targets 1 2 3

# 1 8 0 0

# 2 0 4 0

# 3 0 1 10

MLP这个其实还是很好懂的,你不仅要将RSNNS包对应的pdf文档仔细阅读,更需要的是进入SNNS的网站查看文档。

Stuttgart Neural Network Simulator(SNNS)是德国斯图加特大学开发的优秀神经网络仿真软件,为国外的神经网络研究者所广泛采用。其手册内容极为丰富,同时支持友好的 Linux 平台。而RSNNS则是连接R和SNNS的工具,在R中即可直接调用SNNS的函数命令。

再看你的例子,三层神经网络,输入层5个节点,对应5个特征;中间层(隐层)3个节点;输出层一个节点,给出预测结果。

你的第一部分是指设置的激活函数,包括隐层的激活函数和输出层的。

第二部分是每个节点的信息,bias是偏置,position不用理,是那个仿真软件的。

第三部分是中间连接线的各个权重。

希望对你有帮助。