Agora eu tenho um R
quadro de dados (treinamento), alguém pode me dizer como dividir aleatoriamente esse conjunto de dados para fazer a validação cruzada de 10 vezes?
cross-validation
user22062
fonte
fonte
Respostas:
caret
tem uma função para isso:Cada elemento de
flds
é uma lista de índices para cada conjunto de dados. Se o seu conjunto de dados for chamadodat
,dat[flds$train,]
você receberá o conjunto de treinamento,dat[ flds[[2]], ]
o segundo conjunto de dobras etc.fonte
Aqui está uma maneira simples de executar 10 vezes sem usar pacotes:
fonte
Provavelmente não é o melhor caminho, mas aqui está uma maneira de fazê-lo. Tenho certeza de que, quando escrevi esse código, havia emprestado um truque de outra resposta aqui, mas não consegui encontrá-lo.
fonte
por favor, encontre abaixo algum outro código que eu uso (emprestado e adaptado de outra fonte). Copiei direto de um script que acabei de usar, deixado na rotina rpart. A parte provavelmente mais interessante são as linhas na criação das dobras. Como alternativa - você pode usar a função crossval do pacote de inicialização.
fonte
Tudo feito para você em uma linha de código!
fonte
Como não fiz minha abordagem nesta lista, pensei em compartilhar outra opção para pessoas que não desejam instalar pacotes para uma rápida validação cruzada
Observe que o código acima pressupõe que os dados já estão embaralhados. Se não for esse o caso, considere adicionar algo como
fonte