【问题标题】:Mutation of non-conformable arrays不一致阵列的突变
【发布时间】:2020-02-03 23:22:04
【问题描述】:
library(boot)
install.packages("AMORE")
library(AMORE)

l.data=nrow(melanoma)
set.seed(5)
idxTrain<-sample(1:l.data,100)
idxTest<-setdiff(1:l.data,idxTrain)

set.seed(3)

net<-newff(n.neurons=c(6,6,3),
        learning.rate.global=0.02,
        momentum.global=0.5,
        hidden.layer="sigmoid",
        output.layer="purelin",
        method="ADAPTgdwm",
        error.criterium="LMS")

result<-train(net,
         melanoma[idxTrain,-2],
         melanoma$status,
         error.criterium="LMS",
         report=TRUE,
         show.step=10,
         n.shows=800)

我遇到的问题是我的结果有错误:“目标 - 不合格数组”。 我知道这是 melanoma$status 的问题,但不知道如何相应地更改数据。有任何想法吗?几个数据样本(如果您不使用 Rstudio 的引导包)。 黑色素瘤:

        time status sex  age year thickness ulcer
    1     10      3   1   76 1972      6.76     1
    2     30      3   1   56 1968      0.65     0
    3     35      2   1   41 1977      1.34     0
    4     99      3   0   71 1968      2.90     0
    5    185      1   1   52 1965     12.08     1

【问题讨论】:

    标签: r machine-learning artificial-intelligence data-science


    【解决方案1】:

    您的目标变量应首先仅采用训练索引。此外,目标的列数应等于类数 - 使用 one-hot 编码。像这样的:

    net<-newff(n.neurons=c(6,6,3),
           learning.rate.global=0.02,
           momentum.global=0.5,
           hidden.layer="sigmoid",
           output.layer="purelin",
           method="ADAPTgdwm",
           error.criterium="LMS")
    
    Target = matrix(data=0, nrow=length(idxTrain), ncol=3)
    status_mat=matrix(nrow=length(idxTrain), ncol=2)
    status_mat[,1] = c(1:length(idxTrain))
    status_mat[,2] = melanoma$status[idxTrain]
    
    Target[(status_mat[,2]-1)*length(idxTrain)+status_mat[,1]]=1
    
    result<-train(net,
              melanoma[idxTrain,-2],
              Target,
              error.criterium="LMS",
              report=TRUE,
              show.step=10,
              n.shows=800)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2016-07-13
      • 2021-01-16
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多