r - 预测序列 R 中的下一个值
问题描述
我正在寻找一个模型来预测下面序列的下一个值。原始数据为:
structure(list(job1category = c(5, 1, 5, 5, 1, 1, 2, 1, 1, 1,
1, 1, 1, 1, 5, 1, 1, 5, 1, 1, 5, 5, 5, 1, 1, 5, 1, 1, 2, 5, 1,
5, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 5, 3, 5, 5, 1, 5, 5,
5, 5, 4, 5, 1, 4, 1, 1, 1, 1, 4, 1, 5, 3, 1, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 1, 5, 3, 5, 5, 1, 5, 1, 5, 1, 5, 1, 1, 1, 1, 1, 3,
1, 1, 1, 5, 5, 5), job2category = c(5, 5, 1, 2, 5, 1, 2, 2, 5,
1, 1, 5, 2, 1, 5, 5, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 5, 5, 5, 5,
1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 1, 1, 5, 5, 5, 3, 1, 1,
5, 3, 1, 1, 5, 5, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3,
5, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 5, 5, 5, 1, 5, 1, 1, 5, 5, 5,
3, 1, 1, 1, 5, 5, 5), job3category = c(5, 5, 1, 2, 5, 1, 2, 2,
5, 1, 1, 5, 2, 1, 5, 5, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 5, 5, 5,
5, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 1, 1, 5, 5, 5, 3, 1,
1, 5, 3, 1, 1, 5, 5, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3,
3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 5, 5, 5, 1, 5, 1, 1, 5, 5,
5, 3, 1, 1, 1, 5, 5, 5), job4category = c(5, 5, 1, 2, 5, 1, 2,
2, 5, 1, 1, 5, 2, 1, 5, 5, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 5, 5,
5, 5, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 1, 1, 5, 5, 5, 3,
1, 1, 5, 3, 1, 1, 5, 5, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5,
3, 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 5, 5, 5, 5, 5, 1, 5, 1, 1, 5,
5, 5, 3, 1, 1, 1, 5, 5, 5)), row.names = c(NA, -100L), class = c("tbl_df",
"tbl", "data.frame"))
在将 4 列的值合并为一个字符串后,我探索了最常见的数字对,发现 5 5 是第一。
structure(list(Var1 = structure(1:5, .Label = c("5 5", "1 1",
"1 5", "3 3", "2 2"), class = "factor"), Freq = c(125L, 104L,
21L, 18L, 9L)), class = "data.frame", row.names = c(NA, -5L))
现在我想预测 5 5 发生后的下一个值。因此,我发现所有序列中任何位置都有 5 5 的序列,并且只查看前 5 个之后的所有内容:
Freq_Top1 <-
structure(list(data_rel1 = c("5 5 5 5", "1 5 5 5", "1 5 5 5",
"1 5 5 5", "1 5 5 5", "5 5 5 5", "1 5 5 5", "1 5 5 5", "5 5 5 5",
"1 5 5 5", "1 5 5 5", "2 5 5 5", "5 5 5 5", "5 5 5 5", "1 5 5 5",
"1 5 5 5", "1 5 5 5", "5 5 5 5", "3 5 5 5", "5 5 5 5", "5 5 5 5",
"5 5 5 5", "1 5 5 5", "1 5 5 5", "4 5 5 5", "1 5 5 5", "5 5 5 5",
"3 5 5 5", "1 5 5 5", "5 5 5 5", "5 5 5 5", "5 5 5 5", "5 5 5 5",
"5 5 5 5", "5 5 5 5", "5 5 5 5", "5 5 5 5", "1 5 5 5", "5 5 5 5",
"1 5 5 5", "5 5 5 5", "1 5 5 5", "5 5 5 5", "5 5 5 5", "1 5 5 5",
"1 5 5 5", "1 5 5 5", "5 5 5 5", "5 5 5 5", "5 5 5 5")), row.names = c(NA,
-50L), class = c("tbl_df", "tbl", "data.frame"))
我曾尝试使用 PSF 库,但以下代码给了我一个错误。我是否需要对数据进行更多预处理?还是有更好的方法来预测下一个值?
nottem_model <- psf(Freq_Top1)
Error in data - dmin : non-numeric argument to binary operator
由于我提供给模型的数据不平衡,预测的结果显然会显示值 5,但我仍在寻找可以进行预测的模型。任何提示表示赞赏!
解决方案
推荐阅读
- r - 以前安装的版本中的 R 包在哪里?
- mysql - 如何将我的 React Native 应用程序连接到 MySQL 服务器?
- python - 矩阵中的for循环
- scala - 如何测试返回 Dataset[String, T] 的函数
- javascript - 为什么调用 fetch、axios、ajax 或 promise 时函数返回未定义
- python - Locust 负载测试脚本出错 - 连接中止。',RemoteDisconnected
- primary-key - 雪花批量加载的 AUTOINCREMENT 主键
- java - Quadtrees 应该只在孩子中存储点吗?
- mysql - 我可以使用什么子查询来根据字符串过滤数据?
- python - 我的 Pytorch CNN 计算但不显示训练结果