查詢

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函式
分享連結