对于推荐系统,我使用余弦相似度来计算项目之间的相似度。但是,对于具有少量数据的项目,我想将它们归为一般的“平均”类别(一般不是数学意义上的)。为了实现这一点,我目前正在尝试创建一个综合观察来表示道路中间点。
因此,例如,如果这些是我的观察结果(行是观察结果,列是特征):
[[0, 0, 0, 1, 1, 1, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 1, 0, 1, 0, 1, 1],
[0, 0, 1, 0, 0, 1, 0, 1, 0]]
一种我只需在观察中取所有特征的实际平均值的策略将生成一个合成数据点,如下所示,然后我会在进行相似度计算之前将其附加到矩阵中。
[ 0.5 , 0.25, 0.75, 0.5 , 0.25, 0.75, 0.25, 0.75, 0.25]
虽然这可能适用于某些相似度指标(例如 L1 距离),但我确信余弦相似度有更好的方法。不过,目前,我无法通过高维空间中线条之间的角度来推理。
有任何想法吗?