为什么我们要对SVM特征向量进行余弦归一化?

我最近在玩一个用于二元情感分析的知名电影评论数据集。这个数据集包含1000条正面评论和1000条负面评论。在探索使用单字特征的各种特征编码时,我注意到之前的所有研究出版物都通过欧几里得范数对向量进行归一化处理,以将其缩放到单位长度。

然而,在使用Liblinear进行实验时,我发现这种长度归一化显著降低了分类准确性。我研究了这些向量,我认为原因是这样的:假设向量空间的维度为10,000。因此,与各个投影相比,向量的欧几里得范数非常高。因此,归一化后,所有向量在每个轴上的数值都变得非常小(即在某个轴上的投影)。

这让我感到惊讶,因为该领域的所有出版物都声称他们进行了余弦归一化,而我发现不进行归一化反而能获得更好的分类效果。

因此我的问题是:如果我们不对SVM特征向量进行余弦归一化,会有什么具体的劣势吗?(基本上,我在寻找一种对这种归一化需求的数学解释)。


回答:

在查阅了LibSVM的手册后,我明白了为什么归一化会导致比不归一化时低得多的准确性。他们建议将数据缩放到[0,1]或[-1,1]的区间内。这是之前我没有做到的。进行缩放将解决数据点过于接近零的问题,同时保留长度归一化的优势。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注