Вот вставка кода: образец кода SVM
Я проверил пару других ответов на эту проблему ... и похоже, что эта конкретная итерация проблемы немного отличается.
Во-первых, мои входные данные нормализованы, и у меня есть пять входов на точку. Все значения имеют разумный размер (здоровые 0,5 с и 0,7 с и т. Д. - несколько чисел около нуля или около 1).
У меня есть около 70 входов x, соответствующих их 70 входам y. Входы y также нормализованы (они представляют собой процентные изменения моей функции после каждого временного шага).
Я инициализирую свой SVR (и SVC), обучаю их, а затем тестирую их с 30 входами вне выборки ... и получаю точно такой же прогноз для каждого входа (и входы меняются на разумные величины - 0,3, 0,6 , 0,5 и т. Д.). Я бы подумал, что классификатор (по крайней мере) будет иметь некоторую дифференциацию ...
Вот код, который у меня есть:
# train svr
my_svr = svm.SVR()
my_svr.fit(x_training,y_trainr)
# train svc
my_svc = svm.SVC()
my_svc.fit(x_training,y_trainc)
# predict regression
p_regression = my_svr.predict(x_test)
p_r_series = pd.Series(index=y_testing.index,data=p_regression)
# predict classification
p_classification = my_svc.predict(x_test)
p_c_series = pd.Series(index=y_testing_classification.index,data=p_classification)
А вот образцы моих входных данных:
x_training = [[ 1.52068627e-04 8.66880301e-01 5.08504362e-01 9.48082047e-01
7.01156322e-01],
[ 6.68130520e-01 9.07506250e-01 5.07182647e-01 8.11290634e-01
6.67756208e-01],
... x 70 ]
y_trainr = [-0.00723209 -0.01788079 0.00741741 -0.00200805 -0.00737761 0.00202704 ...]
y_trainc = [ 0. 0. 1. 0. 0. 1. 1. 0. ...]
И матрица x_test
(5x30) похожа на матрицу x_training
с точки зрения величин и дисперсии входных данных ... то же самое для y_testr
и y_testc
.
В настоящее время прогнозы для всех тестов точно такие же (0,00596 для регрессии и 1 для классификации ...)
Как мне заставить функции SVR и SVC выдавать соответствующие прогнозы? Или, по крайней мере, разные прогнозы на основе входных данных ...
По крайней мере, классификатор должен иметь возможность делать выбор. Я имею в виду, даже если я не предоставил достаточно измерений для регрессии ...