Support Vector Machine(SVM) Examples

기본 프로세스는 매개변수를 정의하고 모델을 생성할 훈련 데이터를 제공한 다음 모델을 기반으로 예측하는 것입니다. 대부분의 입력에 대해 일부 결과를 가져와야 하는 기본 매개변수 세트가 있으므로 먼저 데이터를 살펴보겠습니다.

데이터는 파일, 스트림 또는 배열로 제공됩니다. 파일 또는 스트림으로 제공되는 경우 교육 예제당 한 줄을 포함해야 하며, 정수 클래스(일반적으로 1 및 -1)로 형식화되어야 하며 그 뒤에 일련의 feature/value 쌍이 feature order가 오름차순으로 따라와야 합니다. feature은 정수이고 값은 부동 소수점이며 일반적으로 0-1로 조정됩니다. 예를 들어:

-1 1:0.43 3:0.12 9284:0.2

스팸 검사기와 같은 문서 분류 문제에서 각 행은 문서를 나타냅니다. 스팸의 경우 -1, 햄의 경우 1의 두 가지 클래스가 있습니다. 각 feature은 일부 단어를 나타내고 값은 문서에 대한 해당 단어의 중요성을 나타냅니다(전체가 단위 길이로 조정된 빈도 수). 0인 feature(예: 문서에 단어가 전혀 표시되지 않음)은 단순히 포함되지 않습니다.

배열 모드에서 데이터는 배열 배열로 전달되어야 합니다. 각 하위 배열에는 첫 번째 요소로 클래스가 있어야 하며 그 다음에는 feature values 쌍에 대한 키 => 값 세트가 있어야 합니다.

이 데이터는 SVM 클래스의 train 함수로 전달되어 SVM 모델이 성공적으로 반환됩니다.

모델이 생성되면 이전에 본 적이 없는 데이터에 대한 예측을 수행하는 데 사용할 수 있습니다. 이것은 이전과 동일한 형식으로 모델의 예측 함수에 배열로 전달할 수 있지만 레이블은 없습니다. 응답은 클래스가 됩니다.

파일 위치를 취하는 저장 및 로드 함수를 사용하여 필요에 따라 모델을 저장하고 복원할 수 있습니다.

예제 #1 Train from array

                  
<?php
$data = array(
    array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
    array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);

$svm = new SVM();
$model = $svm->train($data);

$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

int(-1)
                

예제 #1 Train from a file

                  
<?php
$svm = new SVM();
$model = $svm->train("traindata.txt");
?>