2012-09-16 33 views
5

Có gói hay phần mềm nào khác để vẽ các mô hình mạng nơron từ vỏ gói nnet hay không.Lập mô hình mạng nơron từ gói nnet R cran

Tôi được đào tạo một mô hình thần kinh mạng (3 đầu vào và 1 đầu ra) sử dụng nnet và Rattle:

crs$nnet <- nnet(as.factor(Target) ~ ., 
       data=crs$dataset[crs$sample,c(crs$input, crs$target)], 
       size=10, skip=TRUE, MaxNWts=10000, 
       trace=FALSE, maxit=100) 

Đây là bản tóm tắt các mô hình:

Neural Network build options: skip-layer connections; entropy fitting. 

In the following table: 
    b represents the bias associated with a node 
    h1 represents hidden layer node 1 
    i1 represents input node 1 (i.e., input variable 1) 
    o represents the output node 

Weights for node h1: 
b->h1 i1->h1 i2->h1 i3->h1 
-0.66 0.15 0.24 -0.31 

Weights for node h2: 
b->h2 i1->h2 i2->h2 i3->h2 
-0.62 1.32 1.16 0.24 

Weights for node h3: 
b->h3 i1->h3 i2->h3 i3->h3 
13.59 -10.44 0.78 -6.46 

Weights for node h4: 
b->h4 i1->h4 i2->h4 i3->h4 
    0.16 -0.46 2.09 0.23 

Weights for node h5: 
b->h5 i1->h5 i2->h5 i3->h5 
-0.16 -0.55 -0.52 0.25 

Weights for node h6: 
b->h6 i1->h6 i2->h6 i3->h6 
-1.49 -7.07 1.67 -0.21 

Weights for node h7: 
b->h7 i1->h7 i2->h7 i3->h7 
    2.00 1.67 -5.51 0.66 

Weights for node h8: 
b->h8 i1->h8 i2->h8 i3->h8 
    0.56 0.44 0.41 0.51 

Weights for node h9: 
b->h9 i1->h9 i2->h9 i3->h9 
    0.38 0.21 0.47 -0.41 

Weights for node h10: 
b->h10 i1->h10 i2->h10 i3->h10 
    0.53 -1.60 4.79 -0.04 

Weights for node o: 
    b->o h1->o h2->o h3->o h4->o h5->o h6->o h7->o h8->o h9->o 
    1.08 1.83 0.17 1.21 1.21 0.64 -0.13 -8.37 0.98 2.03 
h10->o i1->o i2->o i3->o 
-8.41 0.03 0.00 0.01 

Thank you very much

+1

Nếu bạn không đặt tên cho chức năng của mình và thậm chí có thể bao gồm dữ liệu, bạn sẽ rời khỏi vấn đề chỉ dành cho những người sẽ nhận ra phong cách đầu ra và biết cách xây dựng một trường hợp tương tự. Đó có lẽ là một đối tượng nhỏ hơn nhiều so với việc có thể quan tâm hơn nếu bạn có thêm chi tiết. –

+0

@ user1594303: Tôi muốn xóa tóm tắt mô hình của bạn và chi tiết về cách bạn đào tạo mạng của mình. Tôi nghĩ rằng nó không thêm thông tin hữu ích cho câu hỏi và nó chỉ phân tán từ điểm chính: làm thế nào để vẽ một mô hình NN với R. – Peque

Trả lời

10

Nhờ "R là bạn của tôi", bây giờ bạn có thể dễ dàng làm điều đó:

http://beckmw.wordpress.com/2013/11/14/visualizing-neural-networks-in-r-update/

Tôi chia chức năng được thực hiện bởi fawda123 và thêm khả năng thay đổi màu đường viền. thay đổi của tôi có sẵn ở đây:

https://gist.github.com/Peque/41a9e20d6687f2f3108d

Ví dụ với màu biên giới tùy chỉnh (màu đen):

Neural network plot example

Đây là mã hoàn chỉnh của ví dụ trên (chú ý bạn sẽ cần clusterGeneration gói' ',' nnet 'và' devtools '):

library(clusterGeneration) 
library(nnet) 
library(devtools) 

seed.val<-2 
set.seed(seed.val) 

num.vars<-8 
num.obs<-1000 

#input variables 
cov.mat<-genPositiveDefMat(num.vars,covMethod=c("unifcorrmat"))$Sigma 
rand.vars<-mvrnorm(num.obs,rep(0,num.vars),Sigma=cov.mat) 

#output variables 
parms<-runif(num.vars,-10,10) 
y1<-rand.vars %*% matrix(parms) + rnorm(num.obs,sd=20) 
parms2<-runif(num.vars,-10,10) 
y2<-rand.vars %*% matrix(parms2) + rnorm(num.obs,sd=20) 

#final datasets 
rand.vars<-data.frame(rand.vars) 
resp<-data.frame(y1,y2) 
names(resp)<-c('Y1','Y2') 
dat.in<-data.frame(resp,rand.vars) 

#nnet function from nnet package 
set.seed(seed.val) 
mod1<-nnet(rand.vars,resp,data=dat.in,size=10,linout=T) 

#import the function from Github 
source_url('https://gist.githubusercontent.com/Peque/41a9e20d6687f2f3108d/raw/85e14f3a292e126f1454864427e3a189c2fe33f3/nnet_plot_update.r') 

#plot each model 
pdf('./nn-example.pdf', width = 7, height = 7) 
plot.nnet(mod1, alpha.val = 0.5, circle.col = list('lightgray', 'white'), bord.col = 'black') 
dev.off() 
+0

Hi @Peque, làm thế nào tôi có thể sử dụng nnet bằng cách sử dụng chức năng kích hoạt tanh? đầu ra của tôi là Y1, Y2, Y3, Y4. – DevEx

+0

@DevEx: bạn nên mở một câu hỏi mới cho điều đó nếu bạn chưa tìm thấy nó. ;-) – Peque

Các vấn đề liên quan