我是靠谱客的博主 寂寞红酒,最近开发中收集的这篇文章主要介绍R语言中的RSNNS包,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

RSNNS包中的函数及功能如下:
1.Analyzeclassification :将连续输出转换成类标签
2.art1:创建并训练一个art1网络
3.assoz: 创建并训练一个auto-associative memory
4.confusionMatrix: 计算混淆矩阵
5.decodeClassLabels : 将类标签转化成二进制矩阵
6.denormalizeData : 回复数据的标准化
7.dlvq :创建并训练一个dlvq网络
8.elman: 创建并训练一个Elman网络
9.encodeClassLabels : 将矩阵编码为类标签
10.exportToSnnsNetFile: 将网络以一个原始SNNS文件的形式输出
11.extractNetInfo : 从一个网络中提取信息
12.getNormParameters: 得到输入数据标准化的参数
13.inputColumns : 得到输入矩阵的列
14.jordan : 创建并训练一个Jordan网络
15.matrixToActMapList : 将矩阵转化为地图列表
16.Mlp : 创建并训练一个多层感知机(MLP)
17.normalizeData : 数据标准化
18.normTrainingAndTestSet: 标准化训练和测试集的函数
19.outputColumns :得到目标列
20.plotActMap : 画出热力图
21.plotIterativeError: 画出一个rsnns的迭代误差
22.plotRegressionError: 画出回归误差
23.plotROC : 画出ROC曲线
24.predict.rsnns : 用神经网预测
25.print.rsnns : 打印网络
26.rbf : 创建并训练一个基础径向基网络
27.rbfDDA:创建并训练一个用DDA算法的RBF网络
28.readPatFile : 从一个pat文件中加载数据
29.SnnsRObject$genericPredictCurrPatSet : 用已训练的网络预测
30.SnnsRObject$getAllHiddenUnits 获取网络的所有隐藏单元
31.SnnsRObject$getAllInputUnits 获取网络的所有输入单元
32.SnnsRObject$getAllOutputUnits 获取网络的所有输出单元
33.SnnsRObject$getAllUnits 获取所有的单元
34.SnnsRObject$getAllUnitsTTyp 获取网络中某一类型的所有单元35.SnnsRObject$getCompleteWeightMatrix 获取完整的权值矩阵36.SnnsRObject$getWeightMatrix 获取指定两个神经元的权值
37.SnnsRObject$initializeNet 初始化网络
38.SnnsRObject$predictCurrPatSet 预测
39.SnnsRObject$resetRSNNS 重置网络
40.SnnsRObject$setTTypeUnitsActFunc 将激活函数同意设置为某一类型
41.SnnsRObject$setUnitDefaults 设置单元默认值
42.SnnsRObject$somPredictComponentMaps 计算SOM组件图
43.SnnsRObject$train : 训练一个网络并测试每一次的迭代误差
44.SnnsRObject$whereAreResults: 得到一个网络的输出单元列表
45.Som : 创建并训练一个自组织映射(SOM)
46.splitForTrainingAndTest : 将数据划分为训练和测试集
47.Summary.rsnns : 总结rsnns对象
48.toNumericClassLabels : 将一个类标签向量转换成一个数值向量
49.weightMatrix : 从RSNNS中提取权值矩阵
具体用法如下:

1 Analyzeclassification 将连续输出转换成类标签

此函数将连续的输出转换成二进制输出用来分类.两种方法:402040,winner-takes-all(WTA).

Analyzeclassification(y,method=’WTA’,l=0,h=0)

参数:
y:输入 method: ETA或’402040’
L:下界(比如在402040中l=0.4) h:上界(默认参数0.6)

具体介绍:
402040:它主要是用于以下情况的准确分类:
(1)正确分类的输出单元的值是大于或等于h,其他的输出小于或等于l,训练的目的是最大换输出。
(2)错误情况,以上一三条都满足,但数第二条不是最大化训练输出。
WTA:
(1)正确应用情况,一个输出单元的值比其他单元的输出值要大很多,假设这个输出值为a.且a>h,训练为了最大化输出模式,其他单元的输出小于a-l。
(2)错误情况,一三四满足。但不是最大化模式输出。

2 art1 创建并训练一个art1网络

自适应神经网络(ART)通过发现输入模型分布来聚类。仅适用于二值型的输入,是指输入用art2.
用法:

art1(x, dimX, dimY, f2Units = nrow(x), maxit = 100,initFunc = "ART1_Weights", initFuncParams = c(1, 1), learnFunc = "ART1",learnFuncParams = c(0.9, 0, 0), updateFunc = "ART1_Stable",updateFuncParams = c(0), shufflePatterns = TRUE, ...)

参数:
x:网络的训练样本的输入矩阵
dimX:输入和输出的x的维度
F2units:控制集群的数目
Maxit:最大迭代学习次数
initFunc:初始化函数
initFuncParams:初始化函数的参数
learnFunc:学习函数
learnFuncParams:学习函数的参数
updateFunc:更新函数
updateFuncParams:更新函数的参数
shufflePatterns:模式是否要扰乱

该网络有两维的输入,矩阵x包含所有输入模.在内部,每个模式都被转换成一个两维的模式(dimX和dimY)。F2units控制识别层的神经元个数。
art2
Art2

3 assoz 创建并训练一个(auto-associative memory)

associative memory通过寻找给定输入的模式来聚类。

assoz(x, dimX, dimY, maxit = 100,initFunc = "RM_Random_Weights", initFuncParams = c(1, -1),learnFunc = "RM_delta", learnFuncParams = c(0.01, 100, 0, 0, 0),updateFunc = "Auto_Synchronous", updateFuncParams = c(50),shufflePatterns = TRUE, ...)

参数跟上面意思一样

4 confusionMatrix 计算混淆矩阵

confusionMatrix(targets,predictions)

Targets 已知的正确的标签函数
Predictions 相应的预测的目标

5 decodeClassLabels 将类标签转化成二进制矩阵

此方法将一个数值或水平向量解码成一个二值类型的类标签.

decodeClassLabels(x,valTrue=1,valFalse=0)

X 类标签向量

例如:c(1, 3,2, 3) 的输出为100 001 010 001

6 denormalizeData 回复数据的标准化

运用已知的参数恢复用列式标准化的输入矩阵

denormalizeData(x,norParams)

参数:
x 输入的数据
normParams 用于数据标准化的参数。

7 dlvq 创建并训练一个dlvq网络

动态学习矢量量化(DLVQ)网络类似于自组织映射(SMO)

dlvq(x, y, initFunc = "DLVQ_Weights",initFuncParams = c(1, -1), learnFunc = "Dynamic_LVQ",learnFuncParams = c(0.03, 0.03, 10), updateFunc = "Dynamic_LVQ",updateFuncParams = c(0), shufflePatterns = TRUE, ...)

说明:
输入数据必须是标准变化后的数据
例子:

data(snnsData)
dataset <- snnsData$dlvq_ziff_100.pat
inputs <- dataset[,inputColumns(dataset)]
outputs <- dataset[,outputColumns(dataset)]
model <- dlvq(inputs, outputs)
fitted(model) == outputs
mean(fitted(model) - outputs)

8 elman 创建并训练一个Elman网络

elman网络是一个递归网络类似于Jordan网络。

elman(x, y, size = c(5), maxit = 100,initFunc = "JE_Weights", initFuncParams = c(1, -1, 0.3, 1, 0.5),learnFunc = "JE_BP", learnFuncParams = c(0.2), updateFunc = "JE_Order",updateFuncParams = c(0), shufflePatterns = FALSE, linOut = TRUE,outContext = FALSE, inputsTest = NULL, targetsTest = NULL, ...)

参数:
X: 网络的输入矩阵
y: 相应的目标值
Size: 隐藏层的单元个数
………
linOut: 设置输出单元的激活函数线性或logistic型
outContxt: 如果TRUE,脉络单元既是输出单元
Inputstest: wangle测试输入矩阵
targetsTest:相应的测试目标值

9 encodeClassLabels 将矩阵编码为类标签

encodeClassLabels(x, method = "WTA", l = 0, h = 0)

输出一个数值向量,每个数表示不同的类

比如:

data(iris)
labels <- decodeClassLabels(iris[,5])
encodeClassLabels(labels)

10 exportToSnnsNetFile 将网络以一个原始SNNS文件的形式输出

exportToSnnsNetFile(object, filename, netname = "RSNNS_untitled")

11 extractNetInfo 从一个网络中提取信息

extractNetInfo(object)

12 getNormParameters 得到输入数据标准化的参数

getNormParameters(x)

13 inputColumns 得到输入矩阵的列

inputColumns(patterns)

14 jordan 创建并训练一个Jordan网络

jordan(x, y, size = c(5), maxit = 100,initFunc = "JE_Weights", initFuncParams = c(1, -1, 0.3, 1, 0.5),learnFunc = "JE_BP", learnFuncParams = c(0.2), updateFunc = "JE_Order",updateFuncParams = c(0), shufflePatterns = FALSE, linOut = TRUE,inputsTest = NULL, targetsTest = NULL, ...)

15 matrixToActMapList 将矩阵转化为地图列表

16 Mlp 创建并训练一个多层感知机(MLP)

可以创建一个多层感知机并训练,它是一个完全连接的反馈网络.

mlp(x, y, size = c(5), maxit = 100,initFunc = "Randomize_Weights", initFuncParams = c(-0.3, 0.3),learnFunc = "Std_Backpropagation", learnFuncParams = c(0.2, 0),updateFunc = "Topological_Order", updateFuncParams = c(0),hiddenActFunc = "Act_Logistic", shufflePatterns = TRUE, linOut = FALSE,inputsTest = NULL, targetsTest = NULL, pruneFunc = NULL,pruneFuncParams = NULL, ...)

X: 网络的训练输入矩阵
Y: 相应的目标值
Size: 隐藏层的个数
Maxit: 最大迭代次数
initFunc 使用的初始化函数
initFuncParams 初始化函数的参数
LearnFunc 使用的学习函数
LearnFuncParams 学习函数的参数
……
hiddenActFunc: 隐藏层的激活函数
shufflePatterns: should the patterns be shuffled?
linOut: 输出单元是线性还是logistic
inputsTest: 网络测试的输入矩阵
targetsTest: 相应的测试输入目标矩阵
pruneFunc: 使用的减枝函数
pruneFuncParams: 减枝函数参数
例子:

data(iris)
shuffle the vector
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)
model <- mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFuncParams=c(0.1),maxit=50, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)
summary(model)
model
weightMatrix(model)
extractNetInfo(model)
par(mfrow=c(2,2))
plotIterativeError(model)
predictions <- predict(model,iris$inputsTest)
plotRegressionError(predictions[,2], iris$targetsTest[,2])
confusionMatrix(iris$targetsTrain,fitted.values(model))
confusionMatrix(iris$targetsTest,predictions)
plotROC(fitted.values(model)[,2], iris$targetsTrain[,2])
plotROC(predictions[,2], iris$targetsTest[,2])
confusion matrix with 402040-method
confusionMatrix(iris$targetsTrain, encodeClassLabels(fitted.values(model),
method="402040", l=0.4, h=0.6))

17 normalizeData 数据标准化

normalizeData(x, type = "norm")

参数:
X 输入数据
Typ: 三种类型:’0_1’,’cenrter’,’norm’

18 normTrainingAndTestSet 标准化训练和测试集的函数

normTrainingAndTestSet(x, dontNormTargets = TRUE, type = "norm")

19 outputColumns 得到目标列

outputColumns(patterns)

20 plotActMap 画出热力图

21 plotIterativeError 画出一个rsnns的迭代误差

画出迭代中网络的训练和测试误差。

plotIterativeError(object, ...)

22 plotRegressionError 画出回归误差

真是值为x轴,预测值为y轴,画图。

plotRegressionError(targets, fits, ...)

23 plotROC 画出ROC曲线

plotROC(T, D, ...)

T: 预测
D: 目标

24 predict.rsnns 用神经网预测

predict(object, newdata, ...)

25 print.rsnns 打印网络

26 rbf 创建并训练一个基础径向基网络

rbf(x, y, size = c(5), maxit = 100,initFunc = "RBF_Weights", initFuncParams = c(0, 1, 0, 0.02, 0.04),learnFunc = "RadialBasisLearning", learnFuncParams = c(1e-05, 0, 1e-05,0.1, 0.8), updateFunc = "Topological_Order", updateFuncParams = c(0),shufflePatterns = TRUE, linOut = TRUE, inputsTest = NULL,targetsTest = NULL, ...)

27 rbfDDA创建并训练一个用DDA算法RBF

只能用来分类

rbfDDA(x, y, maxit = 1, initFunc = "Randomize_Weights",initFuncParams = c(-0.3, 0.3), learnFunc = "RBF-DDA",learnFuncParams = c(0.4, 0.2, 5), updateFunc = "Topological_Order",updateFuncParams = c(0), shufflePatterns = TRUE, linOut = FALSE, ...)

28 readPatFile 从一个pat文件中加载数据

29 SnnsRObject$genericPredictCurrPatSet 用已训练的网络预测

genericPredictCurrPatSet(units, updateFuncParams=c(0.0))

30 SnnsRObject$getAllHiddenUnits 获取网络的所有隐藏单元

getAllHiddenUnits()

31 SnnsRObject$getAllInputUnits 获取网络的所有输入单元

getAllInputUnits()

32 SnnsRObject$getAllOutputUnits 获取网络的所有输出单元

getAllOutputUnits()

33 SnnsRObject$getAllUnits 获取所有的单元

getAllUnits()

34 SnnsRObject$getAllUnitsTTyp 获取网络中某一类型的所有单元

getAllUnitsTType(ttype)

ttype可以为:

UNIT_OUTPUT,UNIT_INPUT,UNIT_HIDDEN

35 SnnsRObject$getCompleteWeightMatrix 获取完整的权值矩阵

getCompleteWeightMatrix(setDimNames)

36 SnnsRObject$getWeightMatrix 获取指定两个神经原的权值

getWeightMatrix(unitsSource, unitsTarget, setDimNames)

37SnnsRObject$initializeNet 初始化网络

initializeNet(parameterInArray, initFunc)

38 SnnsRObject$predictCurrPatSet 预测

predictCurrPatSet(outputMethod="reg_class", updateFuncParams=c(0.0))

39 SnnsRObject$resetRSNNS 重置网络

resetRSNNS()

40 SnnsRObject$setTTypeUnitsActFunc 将激活函数同意设置为某一类型

setTTypeUnitsActFunc(ttype, act_func)

41 SnnsRObject$setUnitDefaults 设置单元默认值

setUnitDefaults(act, bias, st, subnet_no, layer_no, act_func, out_func)

42 SnnsRObject$somPredictComponentMaps 计算SOM组件图

somPredictComponentMaps(updateFuncParams=c(0.0, 0.0, 1.0))

43 SnnsRObject$train 训练一个网络并测试每一次的迭代误差

train(inputsTrain, targetsTrain=NULL,initFunc="Randomize_Weights", initFuncParams=c(1.0, -1.0),learnFunc="Std_Backpropagation",learnFuncParams=c(0.2,0),updateFunc="Topological_Order",updateFuncParams=c(0.0),outputMethod="reg_class", maxit=100, shufflePatterns=TRUE,computeError=TRUE,inputsTest=NULL,targetsTest=NULL,pruneFunc=NULL,pruneFuncParams=NULL)

输出值为:
fitValues 拟合值,训练输入的输出
IterativeFitError 训练集每一步的残差平方和
testValues 测试输入的输出
IterativeTestError 测试集每一步的残差平方和

44 SnnsRObject$whereAreResults 得到一个网络的输出单元列表

whereAreResults(outputMethod="output")

outputMethod 参数有”art1”, “art2”,”artmap”, “assoz”, “som”, “output”。

45 Som 创建并训练一个自组织映射(SOM)

som(x, mapX = 16, mapY = 16, maxit = 100,initFuncParams = c(1, -1), learnFuncParams = c(0.5, mapX/2, 0.8, 0.8,mapX), updateFuncParams = c(0, 0, 1), shufflePatterns = TRUE,calculateMap=TRUE,calculateActMaps=FALSE,calculateSpanningTree=FALSE,saveWinnersPerPattern = FALSE,targets = NULL, ...)

46 splitForTrainingAndTest 将数据划分为训练和测试集

将数据集划分为训练和测试集,测试集取得是数据的结尾。
用法:

splitForTrainingAndTest(x, y, ratio = 0.15)

参数:
X: 输入
y: 目标

47 Summary.rsnns 总结rsnns对象

summary(object, origSnnsFormat = TRUE, ...)

48 toNumericClassLabels 将一个类标签向量转换成一个数值向量

toNumericClassLabels(x)

49 weightMatrix 从RSNNS中提取权值矩阵

weightMatrix(object, ...)

最后

以上就是寂寞红酒为你收集整理的R语言中的RSNNS包的全部内容,希望文章能够帮你解决R语言中的RSNNS包所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部