Не удается запустить PHP :: SVM

#php #machine-learning #data-mining #svm #libsvm

#php #машинное обучение #интеллектуальный анализ данных #svm #libsvm

Вопрос:

Я попытался запустить базовый пример SVM из официального руководства по PHP :: SVM, добавив несколько методов echo и включив отчеты об ошибках:

 <?php
error_reporting(E_ALL);
echo '1';
$data = array(
    array(-1, 1 => 0.43, 3 => 0.12, 9284 => 0.2),
    array(1, 1 => 0.22, 5 => 0.01, 94 => 0.11),
);
echo '2';
$svm = new SVM();
echo '3';
$model = $svm->train($data);
echo '4';
$data = array(1 => 0.43, 3 => 0.12, 9284 => 0.2);
$result = $model->predict($data);
var_dump($result);
$model->save('model.svm');
echo '5';
?>
  

Запуск этого скрипта на моем локальном компьютере отображает «12». В чем проблема с этой строкой?

 $svm = new SVM();
  

И как мне запустить этот скрипт?

Ответ №1:

Не удается создать класс SVM, и большую часть времени это происходит из-за того, что он не установлен. Если вы попытаетесь использовать php-cli, вы получите следующую ошибку:

 PHP Fatal error:  Class 'SVM' not found in /tmp/svm.php on line 9
  

Чтобы установить расширение (на Ubuntu 12.04), я сделал следующее:

 # Install pear so we can get it from the common repo

$sudo apt-get install php-pear

#Install the headers for libsvm

$sudo apt-get install libsvm-dev

# Install the actual extension, I had to force it because it wasn't marked as stable

$sudo pecl install -f svm

#Then add the extension=svm.so line to the php.ini

$vi php.ini

# Now when you run it, you would get an actual output:

$php --php-ini ./php.ini svm.php

1234float(-1)
5