在R中,使用多个数据集

时间:2015-09-05 12:46:35

标签: regex r neural-network cluster-analysis pattern-recognition

在R中,我试图在多个文件上训练神经网络。我已在单个数据集上执行了多项功能,但我找不到如何使用其他数据集训练我的模型。

因此,我想将之前调用的模型应用于新数据,而无需重新估算模型。

首先,你要建立一个模型,就像Sam Thomas的解释一样。

#load libraries
library(nnet)
library(MASS)

#Define data
example(birthwt)

# Define training and test data
set.seed(321)
index <- sample(seq_len(nrow(bwt)), 130)
bwt_train <- bwt[index, ]
bwt_test <- bwt[-index, ] 

# Build model
bwt.mu <- multinom(low ~ ., data=bwt_train)

然后我有另一个类似的数据集,我想训练/更新早期创建的模型。所以我想用新数据更新模型以改进我的模型。

# New data set (for example resampled bwt)
bwt2=sapply(bwt, sample)

head(bwt2,3)
     low age lwt race smoke ptd ht ui ftv
[1,]   1  31 115    3     1   1  0  0   2
[2,]   1  20  95    1     0   1  0  0   3
[3,]   2  25  95    2     0   1  0  1   1

# Define training and test data with new dataset
set.seed(321)
index <- sample(seq_len(nrow(bwt2)), 130)
bwt2_train <- bwt2[index, ]
bwt2_test <- bwt2[-index, ] 

现在有了这个新的数据集,我想优化模型。我无法合并这两个数据集,因为模型应该在新数据可用时随时更新。这也是因为每当我们有新数据可用时重新计算是不可取的。

提前致谢, 亚当

1 个答案:

答案 0 :(得分:1)

借鉴?nnet::multinom

中的示例
library(nnet)
library(MASS)
example(birthwt)

head(bwt, 2)
  low age lwt  race smoke   ptd    ht    ui ftv
1   0  19 182 black FALSE FALSE FALSE  TRUE   0
2   0  33 155 other FALSE FALSE FALSE FALSE  2+

set.seed(321)
index <- sample(seq_len(nrow(bwt)), 130)
bwt_train <- bwt[index, ]
bwt_test <- bwt[-index, ] 

bwt.mu <- multinom(low ~ ., bwt_train)
(pred <- predict(bwt.mu, newdata=bwt_test))
 [1] 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0
[39] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0
Levels: 0 1

或者如果你想要概率

(pred <- predict(bwt.mu, newdata=bwt_test, type="probs"))
         1          5          6         16         19         23         24 
0.43672841 0.65881933 0.21958026 0.39061949 0.51970665 0.01627479 0.17210620 
        26         27         28         29         30         37         40 
0.06133368 0.31568117 0.05665126 0.26507476 0.37419673 0.18475433 0.14946268 
        44         46         47         51         56         58         60 
0.09670367 0.72178459 0.06541529 0.37448908 0.31883809 0.09532218 0.27515734 
        61         64         67         69         72         74         76 
0.27515734 0.09456443 0.16829037 0.62285841 0.12026718 0.47417711 0.09603950 
        78         87         94         99        100        106        114 
0.34588019 0.30327432 0.87688323 0.21177276 0.06576210 0.19741587 0.22418653 
       115        117        118        120        125        126        130 
0.14592195 0.19340994 0.14874536 0.30176632 0.09513698 0.08334515 0.03886775 
       133        134        139        140        145        147        148 
0.41216817 0.85046516 0.46344537 0.34219775 0.33673304 0.26894886 0.43778705 
       152        163        164        165        168        174        180 
0.19044485 0.27800125 0.17865143 0.86783149 0.25969355 0.60623964 0.34931986 
       182        183        185 
0.22944657 0.08066599 0.22863967