gpt4 book ai didi

python - 当训练数据明显显示出某种模式时,Sklearn svr 会给出错误的结果

转载 作者:行者123 更新时间:2023-12-01 09:32:46 24 4
gpt4 key购买 nike

我有以下训练数据:

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)

然后:
得分 = svmModel.predict(testData)

我得到了一些接近原点 y 的东西。

但是我在 x 中选择一行,将其放入一个二维数组中,其中一行称为 testData,然后执行以下操作:

score = svmModel.predict(testData)

我得到了错误的分数。事实上,无论我使用 x 中的哪一行来创建具有一行的二维数组,我都会得到相同的分数。

我做错了什么?如果有人可以提供帮助,我将不胜感激。

最佳答案

1) score = model.predict(rb.fit_transform(testData))

当您执行上述操作时,您将重新拟合 RobustScaler 以适应新数据。这意味着它将缩放到新数据,并且不会匹配训练数据的比例。所以结果不会好。

2) score = model.predict(testData)

在上面,您没有缩放测试数据,因此它与 SVC 学到的不同。因此这里的结果也会很糟糕。

你需要做什么:-

score = model.predict(rb.transform(testData))

调用 transform() 将根据训练数据比例缩放提供的数据,因此 SVC 可以更好地预测输出。

关于python - 当训练数据明显显示出某种模式时,Sklearn svr 会给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49816754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com