美文网首页
浅学一下人工神经网络

浅学一下人工神经网络

作者: 小洁忘了怎么分身 | 来源:发表于2023-04-30 10:05 被阅读0次

    1.包和数据

    rm(list = ls())
    #install.packages("faraway")
    library(faraway)
    library(nnet)
    data(ozone, package="faraway")
    head(ozone)
    
      O3   vh wind humidity temp  ibh dpg ibt vis doy
    1  3 5710    4       28   40 2693 -25  87 250  33
    2  5 5700    3       37   45  590 -24 128 100  34
    3  5 5760    3       51   54 1450  25 139  60  35
    4  6 5720    4       69   35 1568  15 121  60  36
    5  4 5790    6       19   45 2631 -33 123 100  37
    6  4 5790    3       25   55  554 -28 182 250  38
    
    rescaled.ozone <- scale(ozone)
    

    其中,O3是结果,需要预测的列。其他的是自变量。该算法要求输入scale后的数据

    2.建模

    构建100个模型,找到其中RSS最小的。RSS 表示残差平方和。它是训练数据中预测值与实际值之间差异的度量。

    set.seed(25374)
    best.rss=NULL
    bestrss <- 10000
    for(i in 1:100){
      nnmdl <- nnet(O3 ~ temp + ibh + ibt, 
                    data=rescaled.ozone, size=2, linout=T, trace=F)
      best.rss[i]=nnmdl$value
      if(nnmdl$value < bestrss){
        bestnn <- nnmdl
        bestrss <- nnmdl$value
      }
    }
    min(best.rss)
    
    [1] 88.14799
    

    3.预测与打分

    p = predict(bestnn,rescaled.ozone[,c(5,6,8)])
    library(Hmisc)
    options(scipen = 100)
    rcorr.cens(p,rescaled.ozone[,1])
    
            C Index             Dxy            S.D.               n 
         0.84081133      0.68162265      0.01770884    330.00000000 
            missing      uncensored  Relevant Pairs      Concordant 
         0.00000000    330.00000000 103682.00000000  87177.00000000 
          Uncertain 
         0.00000000 
    

    参考:
    https://www.stat.colostate.edu/~jah/talks_public_html/isec2020/nnet.html

    相关文章

      网友评论

          本文标题:浅学一下人工神经网络

          本文链接:https://www.haomeiwen.com/subject/yaegjdtx.html