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

浅学一下人工神经网络

作者: 小洁忘了怎么分身 | 来源:发表于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