SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate在训练数据的子集上测试训练参数

描述

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

Crossvalidate 可用于测试当前参数集在训练数据的子集上的有效性。给定一个问题集和 n 个“折叠”,它将问题集划分为 n 个子集,并重复在其中一个子集上进行训练,并在另一个子集上进行测试。虽然准确率通常低于在整个数据集上训练的 SVM,但返回的准确率分数应该相对有用,因此可以用来测试不同的训练参数。

参数

problem

问题数据。这可以是数组形式、SVMLight 格式文件的 URL 或指向已打开的 SVMLight 格式数据源的流。

number_of_folds

数据应划分的集合数量,以及交叉测试的次数。数字越大,训练集越小,可靠性越低。5 是一个不错的起点。

返回值

正确率,以 0-1 之间的浮点数表示。对于 NU_SVC 或 EPSILON_SVR 内核,将返回均方误差。

参见

添加注释

用户贡献的注释 1 则注释

1
kadirerturk at gmail dot com
9 年前
$svm = new SVM();
$cross = $svm->crossvalidate("/svmScaled.data" , 5); // 5 折交叉验证
var_dump($cross); //
To Top