我尝试运行官方PHP::SVM教程中的一个基本SVM 示例,添加了一些echo方法并开启了错误报告:
<?phperror_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();
我该如何运行这个脚本?
回答:
它在创建SVM类时失败了,大多数情况下是因为它没有被安装。如果你尝试使用php-cli,你会得到以下错误:
PHP Fatal error: Class 'SVM' not found in /tmp/svm.php on line 9
要安装扩展(在Ubuntu 12.04上),我做了以下操作:
# 安装pear,以便我们可以从公共仓库获取它$sudo apt-get install php-pear# 安装libsvm的头文件$sudo apt-get install libsvm-dev# 安装实际的扩展,我不得不强制安装,因为它没有被标记为稳定$sudo pecl install -f svm# 然后在php.ini中添加extension=svm.so这一行$vi php.ini# 现在当你运行它时,你会得到实际的输出:$php --php-ini ./php.ini svm.php1234float(-1)5