R语言进行神经网络算法——RSNNS
来源:互联网 发布:剑灵捏人详细数据 编辑:程序博客网 时间:2024/05/22 15:27
1. 官方资料
很重要,写得也很清楚,其实下文就是文档的学习笔记
https://cran.r-project.org/web/packages/RSNNS/RSNNS.pdf
2. 安装及加载
install.packages(rsnns)
install.packages(rcpp)
library(Rcpp)
library(RSNNS)
3. Demo(iris)解读及学习
文档里表示,一些高度集成的接口(high-level api)已经很强大了,用这些接口可以基本实现大部分的应用啦。我们提供了: mlp, dlvq, rbf, rbfDDA, elman, jordan, som, art1, art2, artmap, or
assoz这么多网络形式供你们选择使用呢。
学习rsnns的快速方法可以通过查看原生的demo开始,通过调用函数demo()可以查看包里的函数。demo(iris)是以iris数据做的一个示例,来对这个示例进行一下解读。
set.seed(2)data(iris)#shuffle the vector 打乱原始数据,并拆分成评价集和结果集df <- iris[sample(nrow(iris)),]dfValues <- df[,1:4]dfTargets <- decodeClassLabels(df[,5])#dfTargets <- decodeClassLabels(df[,5], valTrue=0.9, valFalse=0.1)
decodeClassLabels这个函数会将结果集变成一个二元矩阵,就是 c(a, b, c, b) 这样一个输入,会变成这样一个矩阵
df <- splitForTrainingAndTest(dfValues, dfTargets, ratio=0.15)
splitForTrainingAndTest将按比例拆成训练集和测试集,返回list,含四个元素分别就是训练的评价集(inputsTrain)、训练的结果集(targetTrain)、测试的评价集(inputsTest)和测试的结果集(targetTest)
#normalize datadf <- normTrainingAndTestSet(df)
normTrainingAndTestSet,标准化数据,把数据化到[0,1]之间
model <- mlp(df$inputsTrain, df$targetsTrain, size=5, learnFunc="Quickprop", learnFuncParams=c(0.1, 2.0, 0.0001, 0.1),maxit=50, inputsTest=df$inputsTest, targetsTest=df$targetsTest)#model <- mlp(df$inputsTrain, df$targetsTrain, size=5, learnFunc="BackpropBatch", learnFuncParams=c(10, 0.1), maxit=100, inputsTest=df$inputsTest, targetsTest=df$targetsTest)#model <- mlp(df$inputsTrain, df$targetsTrain, size=5, learnFunc="SCG", learnFuncParams=c(0, 0, 0, 0), maxit=30, inputsTest=df$inputsTest, targetsTest=df$targetsTest)
mlp 创建和训练多层感知器,用的几个参数分别是,两个训练数据集、训练方法及其参数(前向传播、后向传播等)、学习的迭代次数、和两个测试数据集
#以下是通过其他网络形式来训练模型的示例#model <- rbfDDA(df$inputsTrain, df$targetsTrain)#model <- elman(df$inputsTrain, df$targetsTrain, size=5, learnFuncParams=c(0.1), maxit=100, inputsTest=df$inputsTest, targetsTest=df$targetsTest)#model <- rbf(df$inputsTrain, df$targetsTrain, size=40, maxit=200, initFuncParams=c(-4, 4, 0.0, 0.2, 0.04), learnFuncParams=c(1e-3, 0, 1e-3, 0.1, 0.8), linOut=FALSE)#model <- rbf(df$inputsTrain, df$targetsTrain, size=40, maxit=600, initFuncParams=c(0, 1, 0.0, 0.2, 0.04), learnFuncParams=c(1e-5, 0, 1e-5, 0.1, 0.8), linOut=TRUE)
#我们来看看现在model长啥样了。summary(model)
以下是summary出来的结果:
network name : RSNNS_untitled
source files :
no. of units : 12
no. of connections : 35
no. of unit types : 0
no. of site types : 0
learning function : Quickprop
update function : Topological_Order
unit default section :
unit definition section :
connection definition section :
try my best地来解释一下,其实结果就是创建了长这样的一个模型:
四个输入节点(四维的评价集),自己创建的五个隐藏节点,以及输出的三个节点(三维的结果集)
所以总共是12个节点(no. of units: 12),4*5+3*5=35条连线(no. of connections: 35)。
下面一张表是描述每个节点的基本信息,节点类型、节点位置、节点名字、节点偏差值等。
再下面一张表是在描述线的信息,每条线的权重是多少。例如指向节点5的四条线,权重分别是4: 2.56254, 3: 3.62335, 2:-1.45458, 1: 0.58201
#利用上面的模型进行预测predictions = predict(model,df$inputsTest)#生成混淆矩阵,观察预测精度confusionMatrix(df$targetsTest,predictions)
predictions
targets 1 2 3
1 9 0 0
2 0 3 1
3 0 1 9
- R语言进行神经网络算法——RSNNS
- R语言中最强的神经网络包RSNNS
- R语言中最强的神经网络包RSNNS
- R语言RSNNS
- RSNNS神经网络
- R语言实现神经网络算法
- 利用R语言如何进行文本比较算法——LD算法
- R机器学习算法系列——人工神经网络
- R语言实现神经网络
- R语言:神经网络
- R语言神经网络
- r语言神经网络
- R分类算法-神经网络算法
- 基于R语言的神经网络
- R语言BP神经网络实例
- R语言进行方差分析
- R语言︱情感分析—基于监督算法R语言实现(二)
- R语言—R语言常用语法
- 初来乍到
- java 实现对象克隆
- 虚电路交换的特点
- 使用最基本的javaEE技术(servlet)来实现rest风格
- 适配器模式(16)
- R语言进行神经网络算法——RSNNS
- Linux命令(2):nano命令
- Zigbee深入浅出之Zigbee入门
- 二分查找总结
- leecode 解题总结:68. Text Justification
- 冒泡,去重,快速排序选择排序几种算法
- 油田信息化:通往智慧之路(0--目录)
- javascript基础:DOM的collection对象
- 学习笔记---链表