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) 这样一个输入,会变成这样一个矩阵
row.num | a | b | c |
---|---|---|---|
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 0 | 0 | 1 |
4 | 0 | 1 | 0 |
df <- splitForTrainingAndTest(dfValues, dfTargets, ratio=0.15)
splitForTrainingAndTest将按比例拆成训练集和测试集,返回list,含四个元素分别就是训练的评价集(inputsTrain)、训练的结果集(targetTrain)、测试的评价集(inputsTest)和测试的结果集(targetTest)
#normalize data
df <- normTrainingAndTestSet(df)
normTrainingAndTestSet,标准化数据,把数据化到[0,1]之间
model <