gpt4 book ai didi

python - 支持向量机如何处理困惑的特征向量?

转载 作者:行者123 更新时间:2023-11-30 09:29:31 25 4
gpt4 key购买 nike

假设我有以下特征向量:

训练向量:

第 1 类:[ 3, 5, 4, 2, 0, 3, 2],[ 33, 50, 44, 22, 0, 33, 20]

第 2 类:[ 1, 2, 3, 1, 0, 0, 4],[ 11, 22, 33, 11, 0, 0, 44]

测试向量:

第 1 类:[ 330、550、440、220、0、330、200]

第 2 类:[ 110, 220, 333, 111, 0, 0, 444]

我正在使用 SVM,它从训练向量中学习,然后对测试样本进行分类。

正如您所看到的,特征向量具有非常不同的维度:训练集特征是非常低值的数字,而测试集向量是非常高值的数字。

我的问题是 SVM 从这样的特征向量中学习是否会令人困惑?

当然,当我进行矢量缩放时,差异仍然存在:

例如,在第 1 类的特征向量上应用 standardScaler() 后:

培训:

[0.19 1.53 0.86 -0.48 -1.82 0.19 -0.48]

[ 20.39 31.85 27.80 12.99 -1.82 20.39 11.64]

测试:[ 220.45 368.63 294.54 146.35 -1.82 220.45 132.88]

基本上,这是一个现实世界的问题,我之所以问这个问题,是因为我已经开发了一种针对我的特定情况预先缩放这些特征向量的方法。

因此,在我使用预缩放方法之后,第 1 类的特征向量将变为:

培训:

[ 3.5.4.2.0.3.2.]

[ 2.75 4.16666667 3.66666667 1.83333333 0. 2.75 1.66666667]

测试:[ 2.84482759 4.74137931 3.79310345 1.89655172 0.2.84482759 1.72413793]

这使得它们在本质上非常相似。

当 standardScaler() 应用于预缩放向量时,这看起来更好:

培训:

[ 0.6 1. 0.8 0.4 0. 0.6 0.4]

[ 0.55 0.83333333 0.73333333 0.36666667 0. 0.55 0.33333333]

测试:[ 0.56896552 0.94827586 0.75862069 0.37931034 0.0.56896552 0.34482759]

最终的问题是我的预缩放方法是否会对 SVM 有任何帮助?这更多的是一个理论问题,任何对此的见解都值得赞赏。

最佳答案

是的,它会影响SVM的性能。看来您的测试向量只是训练向量的缩放版本。 SVM 无法知道缩放与您的情况无关(除非您向其提供大量不同缩放的训练向量)

对于与缩放无关的特征向量,常见做法是将所有测试和训练向量缩放到公共(public)长度。

关于python - 支持向量机如何处理困惑的特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36817217/

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