我有一个大小为(61573, 25)
的数据集。行代表users
,而列代表特定电影类型的views
。例如,如果data[i,j] == 3
表示用户i
共查看了3部性别j
的电影。正如所料,行是稀疏的并且是右倾斜的。
我想做的是通过为他分配以下标签之一来计算用户对25种电影性别中每一种的吸引力:{VL,L,A,H,VH}。
我到目前为止所尝试的是计算行分数或列数的z分数(尽管我没有尝试将值标准化两次(即首先在行上然后在列上)),然后应用以下函数取决于z分数距离0的距离:
在任何一种情况下,我的问题是在大多数情况下结果似乎非常糟糕,可能是因为它们介于-1和+1之间,因此几乎总是标记为A
(即平均值)。那么,根据你的意见,我还应该尝试什么呢?你怎么解决这个问题?
答案 0 :(得分:0)
z分数显然不是正确的方法。
原因是它们基于您的数据正态分布的假设。我强烈怀疑你的数据是否正常分布 - 特别是它可能没有任何负值,是吗?
您是否尝试过使用分位数?前10%,最低10%等?