在将频率值作为机器学习模型的输入时,是否应该对其进行归一化?

数据挖掘 机器学习 Python 正常化
2021-09-17 19:13:00

考虑一个无监督数据。数据采用 csv 文件的形式(我为此使用 pandas 数据框)。它是不同时间步长的网页数据,我将数据转换为我的模型(K-means)的方式是将当前网页 ID 加载的时间步长与下一个 web_page ID 加载的时间步长不同。

现在,数据中有一些特征,例如“滚动”(代表人类在该网页上滚动),对于同一个网页 ID,这些特征会多次出现。由于我只使用增量,因此我想将此“滚动”编码为特征的方式是增量之间发生了多少次(时间差)。这给出了频率。

现在的问题是我应该对我计算的这个原始频率进行一些处理,还是可以直接将它提供给我的模型。如果需要更多处理,您有什么建议?

1个回答

作为一般建议,任何使用距离的算法都可能受到缩放或标准化的影响。因此,如果您使用其中之一,您需要三思而后行,并考虑这将如何改变您的问题。

我将从 CrossValidated StackExchange 中得到答案,因为另一个用户已经在那里解释过了。

如果您的变量具有不可比较的单位(例如,以厘米为单位的身高和以公斤为单位的体重),那么您当然应该标准化变量。即使变量具有相同的单位但显示出完全不同的方差,在 K-means 之前进行标准化仍然是一个好主意。你看,K-means 聚类在空间的所有方向上都是“各向同性的”,因此往往会产生或多或少的圆形(而不是细长的)聚类。在这种情况下,使方差不相等相当于将更多权重放在方差较小的变量上,因此集群将倾向于沿着方差较大的变量分开。

ttnphns 的回答