$svm = new SVM();
$cross = $svm->crossvalidate("/svmScaled.data" , 5); // 5 折交叉验证
var_dump($cross); //
(PECL svm >= 0.1.0)
SVM::crossvalidate — 在训练数据的子集上测试训练参数
Crossvalidate 可用于测试当前参数集在训练数据子集上的有效性。给定一个问题集和 n 个“folds”,它将问题集分成 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); //