这是代码的粘贴: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 函数 spit 出相关的预测值?或者至少基于输入得到不同的预测结果...
最起码,分类器应该能够做出选择。我的意思是,即使我没有为回归提供足够的维度...