English | 简体中文 | 繁體中文
查询

SVM::train()函数—用法及示例

「 训练一个支持向量机(SVM)模型 」


函数名称: SVM::train()

函数描述: SVM::train() 函数用于训练一个支持向量机(SVM)模型。

适用版本: PHP 7.4.0 及以上版本

用法:

public static SVM::train(array $samples, array $labels [, array $options = []]) : SVMModel

参数:

  1. $samples: 包含训练样本的二维数组。每个样本是一个一维数组,包含输入特征的值。

  2. $labels: 包含训练样本标签的一维数组。每个标签对应于相应样本的类别。

  3. $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。最后,我们使用训练得到的模型对一个新样本进行预测,并输出预测结果。

请注意,示例中的选项和参数值仅供参考,实际使用时需要根据具体情况进行调整。

补充纠错
上一个函数: SVM::__construct()函数
下一个函数: SVM::setOptions()函数
热门PHP函数
分享链接