$svm = new SVM();
$cross = $svm->crossvalidate("/svmScaled.data" , 5); // 5 折交叉验证
var_dump($cross); //
(PECL svm >= 0.1.0)
SVM::crossvalidate — 在训练数据的子集上测试训练参数
Crossvalidate 可用于测试当前参数集在训练数据的子集上的有效性。给定一个问题集和 n 个“折叠”,它将问题集划分为 n 个子集,并重复在其中一个子集上进行训练,并在另一个子集上进行测试。虽然准确率通常低于在整个数据集上训练的 SVM,但返回的准确率分数应该相对有用,因此可以用来测试不同的训练参数。
problem
问题数据。这可以是数组形式、SVMLight 格式文件的 URL 或指向已打开的 SVMLight 格式数据源的流。
number_of_folds
数据应划分的集合数量,以及交叉测试的次数。数字越大,训练集越小,可靠性越低。5 是一个不错的起点。
正确率,以 0-1 之间的浮点数表示。对于 NU_SVC 或 EPSILON_SVR 内核,将返回均方误差。
$svm = new SVM();
$cross = $svm->crossvalidate("/svmScaled.data" , 5); // 5 折交叉验证
var_dump($cross); //