SVR 需要太长的时间来适应较少的特征

问题描述 投票:0回答:1

我正在评估 SVR 上的数据集。数据集少于 400 个样本和 800 个特征。

当我用所有数据集训练模型时,大约需要 10 秒才能适应。当我删除一些列并使用新数据集训练模型时,拟合需要更长的时间,有时需要几分钟或几小时。

我已经阅读了 SVM 背后的理论以及复杂性取决于样本的点积这一事实,但我不明白为什么删除某些列会使训练时间更长。

我正在使用 RBF 和聚核 为什么用更少的特征训练它需要更长的时间? 有什么办法可以减少训练时间吗?

python machine-learning svm
1个回答
0
投票

从数据集中删除一些列可能会导致剩余的特征变得更加复杂并且彼此相关,这可能会增加 SVM 收敛所需的时间。此外,删除某些列可能会导致信噪比降低,这会使 SVM 更难学习好的模型。

RBF 和多项式内核也可以有不同的计算成本。 RBF 内核需要计算每对样本之间的距离,这对于大型数据集来说计算量很大。另一方面,多项式内核的计算成本较低,但可能需要更多迭代才能收敛。

为了减少训练时间,您可以考虑使用特征选择技术来识别数据集中最重要的特征。这有助于降低数据的维度并提高信噪比。此外,您可以尝试使用线性核而不是 RBF 或多项式核,因为这样计算速度更快。另一种选择是使用降维技术,例如主成分分析 (PCA),以减少数据集中的特征数量,同时保留最重要的信息。

还值得注意的是,SVM 的训练时间会受到超参数选择的影响,例如正则化参数和内核参数。您可能想尝试不同的超参数值,看看这是否可以在不牺牲性能的情况下缩短训练时间。

© www.soinside.com 2019 - 2024. All rights reserved.