1

我正在使用 MovieLens 100K 数据集。我想要一个图表来可视化女性用户最喜欢的电影类型。目前,这通过总结他们对特定类型的电影评分的次数(意味着他们参与了该类型)来起作用。然而,考虑到一些女性用户给出的评分比其他用户更多,结果可能不是很真实。也许有一位女性用户非常喜欢“戏剧”并给了100个评分。有什么方法可以规范化这些数据并真实表示最喜欢的类型?

plt.figure(figsize=(18,10))
for column in all_female_users[['Action', 'Adventure' , 'Animation' ,
              'Childrens' , 'Comedy' , 'Crime' , 'Documentary' , 'Drama' , 'Fantasy' ,
              'Film-Noir' , 'Horror' , 'Musical' , 'Mystery' , 'Romance' , 'Sci-Fi' ,
              'Thriller' , 'War' , 'Western']]:
   # Select column contents by column name using [] operator
    columnSeriesObj = all_female_users[column]

    plt.bar(column, columnSeriesObj.sum())
    plt.xlabel("Movie Genre")
    plt.ylabel("Number of preferred times")
    plt.title("Most preferred movie genres by women")
#     print('Movie Genre:', column)
#     print('Move Genre Sum:', columnSeriesObj.sum())
4

1 回答 1

0

问题是您的方法求和绝对值而不是相对值。

对于每个女性用户,您可以在所有类型之间“正常化”。例如,如果一位女性用户对 50 部戏剧和 50 部喜剧进行评分,那么您将其转换为 0.5 的戏剧和 0.5 的喜剧。以女性用户评分 100 部戏剧电影为例,如果这是她评分的唯一类型,则将其转换为 1.0,这与他仅评分 50 部戏剧电影或仅评分 1 部戏剧电影相同 - 这种方法确保当您对所有这些归一化值求和时,对 100 部电影评分的用户不会过度代表此类别。

于 2020-06-15T06:22:30.063 回答