函数名称: SVM::train()
函数描述: SVM::train() 函数用于训练一个支持向量机(SVM)模型。
适用版本: PHP 7.4.0 及以上版本
用法:
public static SVM::train(array $samples, array $labels [, array $options = []]) : SVMModel
参数:
$samples
: 包含训练样本的二维数组。每个样本是一个一维数组,包含输入特征的值。$labels
: 包含训练样本标签的一维数组。每个标签对应于相应样本的类别。$options
(可选): 一个关联数组,用于指定训练选项。支持以下选项:'kernel_type'
: 指定使用的内核类型。默认值为SVM::KERNEL_RBF
。可选值有:SVM::KERNEL_LINEAR
: 线性核函数SVM::KERNEL_POLY
: 多项式核函数SVM::KERNEL_RBF
: 径向基函数(RBF)核函数SVM::KERNEL_SIGMOID
: 双曲正切核函数
'degree'
: 当使用多项式核函数时,指定多项式的次数。默认值为 3。'gamma'
: 当使用 RBF 或多项式核函数时,指定 gamma 参数。默认值为 0.1。'coef0'
: 当使用多项式或双曲正切核函数时,指定常数项。默认值为 0。'cost'
: 指定惩罚参数。默认值为 1。'nu'
: 指定 nu-SVC 参数。默认值为 0.5。'cache_size'
: 指定内存缓存大小(以 MB 为单位)。默认值为 100。'epsilon'
: 指定收敛阈值。默认值为 0.001。'shrinking'
: 指定是否使用启发式方法来加速训练。默认值为 true。'probability'
: 指定是否启用概率估计。默认值为 false。
返回值: 返回一个 SVMModel 对象,表示训练得到的 SVM 模型。
示例:
$samples = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$labels = [0, 1, 0];
$options = [
'kernel_type' => SVM::KERNEL_LINEAR,
'cost' => 10
];
$model = SVM::train($samples, $labels, $options);
// 使用训练得到的模型进行预测
$sample = [2, 3, 4];
$predictedLabel = $model->predict($sample);
echo "预测结果: " . $predictedLabel;
以上示例中,我们首先定义了一个包含训练样本和标签的数组。然后,我们使用 SVM::train() 函数训练一个线性核函数的 SVM 模型,设置惩罚参数为 10。最后,我们使用训练得到的模型对一个新样本进行预测,并输出预测结果。
请注意,示例中的选项和参数值仅供参考,实际使用时需要根据具体情况进行调整。