У меня была эта проблема с libsvm-3.12 (я предполагаю, что ваша проблема вызвана чем-то подобным). Рассматривая метод 'svm_parameter' в модуле svm.py в папке libsvm-3.12/python, метод ожидает, что аргументы будут переданы как строка опций, например. '-t 2 -v 5 -c 1'.
Я нашел, что это лучше сделать:
from svmutil import *
# Specify training set
prob = svm_problem([1,-1],[[1,0,1],[-1,0,-1]])
# Train the model
m = svm_train(prob, '-t 0 -c 1')
# Make a prediction
predicted_labels, _, _ = svm_predict([-1],[[1,1,1]],m)
# Predicted label for input [1,1,1] is predicted_labels[0]
print "Predicted value: " + str(predicted_labels[0])
Небольшим пояснение: svm_predict (у, х, м) принимает список у «правильных этикеток» и список х входных данных в дополнении к модель m. Затем предсказываемые_классы будут списком прогнозируемых классов для каждого ввода, заданного в x. Это позволяет пользователю запрашивать несколько прогнозов в одной строке.
Правильные метки предоставлены пользователем для получения информации о точности. Если пользователь не знает правильные метки, тогда просто помещайте там произвольную метку и игнорируйте значения точности. Посмотрите исходный код в libsvm-3.12/python/svmutil.py для получения дополнительной информации о том, что возвращается в других местах '_' svm_predict.
В частности, варианты svm_train взяты из 'svmutil.py' являются:
"""
...
'options':
-s svm_type : set type of SVM (default 0)
0 -- C-SVC
1 -- nu-SVC
2 -- one-class SVM
3 -- epsilon-SVR
4 -- nu-SVR
-t kernel_type : set type of kernel function (default 2)
0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree
2 -- radial basis function: exp(-gamma*|u-v|^2)
3 -- sigmoid: tanh(gamma*u'*v + coef0)
4 -- precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/num_features)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)
-v n: n-fold cross validation mode
-q : quiet mode (no outputs)
"""
Получить NameError: имя 'svm_train' не определен – Superdooperhero
'svm_train' определяется в' libsvm-3.12 \ питона \ svmutil.py'. Вы включили 'from svmutil import * 'и правильно настроили свой PYTHONPATH? – richardr