• R语言-神经网络包RSNNS


    斯图加特神经网络模拟器(Stuttgart Neural Network Simulator)

    人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 —— 百度百科

    Stuttgart Neural Network Simulator(SNNS)是德国斯图加特大学开发的优秀神经网络仿真软件,为国外的神经网络研究者所广泛采用。本文旨在通过使用R语言RSNNS包中mlp函数(多层感知器)对蘑菇数据建立预测模型,演示斯图加特神经网络模拟器的强大功能。RSNNS包中其它重要的网络形式还包括:dlvq(动态学习向量化网络)、rbf(径向基函数网络)、elman(elman神经网络)、 jordan(jordan神经网络)、som(自组织映射神经网络)、art1(适应性共振神经网络)等等。

    R语言实现

    #载入程序和数据 
    library("RSNNS") 
    ## Warning: package 'RSNNS' was built under R version 3.2.3
    ## Loading required package: Rcpp
    library("reshape")
    ## Warning: package 'reshape' was built under R version 3.2.3
    mashroom = read.csv(file.choose())
    #定义网络输入 
    mashroomValues= mashroom[,-1]
    #定义网络输出,并将数据进行格式转换 
    mashroomTargets = decodeClassLabels(mashroom[,1])
    #从中划分出训练样本和检验样本 
    mashroom = splitForTrainingAndTest(mashroomValues, mashroomTargets, ratio=0.15)
    #数据标准化 
    mashroom = normTrainingAndTestSet(mashroom)
    

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

    model = mlp(mashroom(inputsTrain, mashroom)targetsTrain, size=10, inputsTest=mashroom(inputsTest, targetsTest=mashroom)targetsTest,linOut=T)

    plotIterativeError(model)

    par(mar=numeric(4),family='serif')
    plot.nnet(model)
    ## Loading required package: scales
    ## Warning in plot.nnet(model): Bias layer not applicable for rsnns object

    #利用上面建立的模型进行预测 
    predictions = predict(model,mashroom$inputsTest)
    

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

    confusionMatrix(mashroom$targetsTest,predictions)

    ##        predictions
    ## targets   1   2
    ##       1 473  16
    ##       2   0 730

    可见,人工神经网络算法在蘑菇数据分类预测上具有较高的精度。

    反馈与建议

  • 相关阅读:
    P2426 删数
    P2115 [USACO14MAR]破坏Sabotage
    P2679 子串
    P2979 [USACO10JAN]奶酪塔Cheese Towers
    P1114 “非常男女”计划
    P2105 K皇后
    P4053 [JSOI2007]建筑抢修
    P1294 高手去散步
    P4316 绿豆蛙的归宿
    P2253 好一个一中腰鼓!
  • 原文地址:https://www.cnblogs.com/shangfr/p/5055157.html
Copyright © 2020-2023  润新知