【发布时间】:2018-04-13 12:14:06
【问题描述】:
我有以下训练数据:
x = [
[0.914728682,5.217,5,0.217,3.150362319,33.36,35,-1.64,4.220113852],
[0.885057471,7.793,8,-0.207,3.380911063,46.84,48,-1.16,4.448243115],
[0.871345029,7.152,7,0.152,3.976205037,44.98,47,-2.02,5.421236592],
[0.821428571,8.04,8,0.04,2.909880565,52.02,54.5,-2.48,2.824104235],
[0.931372549,8.01,8,0.01,4.616714697,48.04,48,0.04,9.650462033],
[0.66367713,5.424,5.5,-0.076,1.37804878,32.6,35.5,-2.9,1.189781022],
[0.78,8.66,9,-0.34,2.272965879,48.47,55,-6.53,2.564550265],
[0.227272727,19.55,21,-1.45,1.860133206,128.23,147,-18.77,1.896893491],
[0.47826087,10.09,8,2.09,1.155519927,74.43,64,10.43,1.169547454],
[0.652694611,6.775,4,2.775,1.05529595,43.1,30,13.1,1.062885327],
[0.798561151,3.986,2,1.986,0.656563993,25.38,13,12.38,0.652442159],
[0.666666667,5.419,3,2.419,1.057985162,34.37,16,18.37,0.981719509],
[0.5625,7.719,2,5.719,0.6421797,46.91,12,34.91,0.665673336]
]
以及以下标签(分数):
y = [0.237113402,0.168831169,0.104166667,0.086419753,0.063147368,0.016042781,
0.014814815,0,0,-0.0794,-0.14,-0.1832,-0.2385]
似乎很明显,第 5 列和第 9 列中的值越大,分数越高。
我在提供的训练数据上编写了以下代码,利用 SVR:
rb = RobustScaler()
xScaled = rb.fit_transform(x)
model = SVR(C=1.0, epsilon=0.1)
model.fit(xScaled,y)
但无论我使用以下哪个进行预测,它都没有给出看起来正确的分数。
1 分 = model.predict(rb.fit_transform(testData))
2 分数 = model.predict(testData)
如果我在训练期间执行以下操作:
xScaled = preprocessing.scale(x)
model = SVR(C=1.0, epsilon=0.1)
model.fit(xScaled,y)
然后:
score = svmModel.predict(testData)
我得到了接近原点 y 的东西。
但我在 x 中选择一行,将其放入一个二维数组中,其中一行名为 testData,然后执行以下操作:
score = svmModel.predict(testData)
我得到了错误的分数。事实上,无论我使用 x 中的哪一行来创建具有一行的二维数组,我都得到相同的分数。
我做错了什么?如果有人可以提供帮助,我将不胜感激。
【问题讨论】:
-
你能发布你的
testData吗? -
谢谢。就像 [[0.78,8.66,9,-0.34,2.272965879,48.47,55,-6.53,2.564550265]]
-
问题解决了吗?
标签: python scikit-learn