我如何模拟流派对电影评级的影响?
How can I model the effect of genre on movie ratings?
我正在使用更大版本的 movielens 数据集(1000 万行)在 R 中进行机器学习练习,我的任务是使用训练集中的数据预测验证集中的评分。目前我的模型如下:
用户 u 对电影 i 的评分 = mu + b_i + b_u + epsilon,其中 mu 是平均评分,b_i 是每部电影的效果,b_u是每个用户的效果。 Epsilon 应该是随机误差项,但现在它还包含我没有考虑的类型的影响。
这是我当前数据集的屏幕截图以供参考 - 请注意,resid 列包含减去 mu、b_i 和 b_u 后的剩余评分。
我被卡住了,因为我不知道如何为流派的效果建模。有人对我如何继续有任何提示吗?
主要思想: 将 "Genre" 字段中的每个值转换为单独的字段,(喜剧、浪漫)的值为 (Y/N, 0/1 ).
我正在向您展示以下示例数据。这应该会给您一个想法,您可以继续处理您的数据。
sample <- tribble(~ Values,
"apple|banana",
"orange|apple",
"banana|guava")
sample
完成步骤:
分离字段中可用的值,使用tidyr的分离函数
sample %>% separate(Values, into = c("val1","val2"), sep = "\|") -> sample2
sample2
使用 tidyr
的 gather 函数将所有单独的值收集到单个列中
sample2 %>% gather(key = "col_name", value = "col_val", val1, val2) ->sample3
sample3
最后,使用"col_val"字段得到想要的输出。即单热编码。
sample4 <- sample3 %>% select(2)
sample4
as.data.frame(model.matrix( ~ . -1, sample4))
如果对您有帮助,请告诉我。
学习愉快!!!
我正在使用更大版本的 movielens 数据集(1000 万行)在 R 中进行机器学习练习,我的任务是使用训练集中的数据预测验证集中的评分。目前我的模型如下:
用户 u 对电影 i 的评分 = mu + b_i + b_u + epsilon,其中 mu 是平均评分,b_i 是每部电影的效果,b_u是每个用户的效果。 Epsilon 应该是随机误差项,但现在它还包含我没有考虑的类型的影响。
这是我当前数据集的屏幕截图以供参考 - 请注意,resid 列包含减去 mu、b_i 和 b_u 后的剩余评分。
我被卡住了,因为我不知道如何为流派的效果建模。有人对我如何继续有任何提示吗?
主要思想: 将 "Genre" 字段中的每个值转换为单独的字段,(喜剧、浪漫)的值为 (Y/N, 0/1 ).
我正在向您展示以下示例数据。这应该会给您一个想法,您可以继续处理您的数据。
sample <- tribble(~ Values,
"apple|banana",
"orange|apple",
"banana|guava")
sample
完成步骤:
分离字段中可用的值,使用tidyr的分离函数
sample %>% separate(Values, into = c("val1","val2"), sep = "\|") -> sample2 sample2
使用 tidyr
的 gather 函数将所有单独的值收集到单个列中sample2 %>% gather(key = "col_name", value = "col_val", val1, val2) ->sample3 sample3
最后,使用"col_val"字段得到想要的输出。即单热编码。
sample4 <- sample3 %>% select(2) sample4 as.data.frame(model.matrix( ~ . -1, sample4))
如果对您有帮助,请告诉我。
学习愉快!!!