SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidateTesta parâmetros de treinamento em subconjuntos de dados de treinamento

Descrição

public svm::crossvalidate(array $problem, int $number_of_folds): float

A validação cruzada pode ser usada para testar a eficácia do conjunto de parâmetros atual em um subconjunto dos dados de treinamento. Dado um conjunto de problemas e n "dobras", ela separa o conjunto de problemas em n subconjuntos, e o treina repetidamente em um subconjunto e testa em outro. Embora a precisão geralmente seja menor do que uma SVM treinada no conjunto de dados de entrada, a pontuação de precisão retornada deve ser relativamente útil, podendo ser usada para testar diferentes parâmetros de treinamento.

Parâmetros

problem

Os dados do problema. Podem estar na forma de um array, da URL de um arquivo no formato SVMLight ou de um fluxo para uma fonte de dados aberta no formato SVMLight.

number_of_folds

O número de conjuntos em que os dados devem ser divididos e testados de forma cruzada. Um número maior significa conjuntos de treinamento menores e menos confiabilidade. 5 é um bom número para começar.

Valor Retornado

A porcentagem correta, expressa como um float de 0 a 1. No caso dos kernels NU_SVC ou EPSILON_SVR, o erro quadrático médio será retornado.

Veja Também

  • SVM::train() - Cria um SVMModel com base em dados de treinamento

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
1
kadirerturk at gmail dot com
10 years ago
$svm = new SVM();
$cross = $svm->crossvalidate("/svmScaled.data" , 5); // 5 fold cross val
var_dump($cross); //
To Top