1

StackOverflow 和 R 的新手。

我有一个关于 R 包 BNlearn 中提供的用于交叉验证的不同损失函数以及我应该使用哪一个的问题。我有 32 行 8 列的连续数据(下面的示例),每列代表一个物种,每一行代表该物种当年的个体数量。

201  1.78e+08  18500000   1.87e+08   6.28e+07   1.08e+09     1.03e+08   7.22e+07   43100000
202  8.06e+07   9040000   5.04e+07   4.49e+07   6.66e+08     8.07e+07   2.58e+07   24100000
203  1.54e+08   4380000   1.51e+08   2.88e+07   9.94e+08     1.44e+08   7.32e+07   39000000
204  1.36e+08   6820000   3.80e+08   8.39e+06   7.38e+08     1.50e+08   4.25e+07   32600000
205  9.94e+07   9530000   8.99e+07   1.05e+07   6.62e+08     1.67e+08   1.90e+07   29200000
206  1.33e+08   6340000   4.27e+07   3.26e+06   5.31e+08     2.93e+08   2.70e+07   41500000
207  1.22e+08   5710000   4.41e+07   3.16e+06   4.58e+08     4.92e+08   4.02e+07   21600000
208  1.33e+08  13500000   1.20e+08   3.56e+06   4.40e+08     2.50e+08   3.93e+07   30000000
209  1.73e+08  21700000   4.35e+07   7.58e+06   5.62e+08     3.31e+08   4.98e+07   42100000
210  1.86e+08   6950000   3.40e+07   1.18e+07   4.41e+08     3.80e+08   4.83e+07   28100000

到目前为止,我已经使用禁忌搜索制作了一个固定的网络结构,并使用交叉验证命令对其进行了分析

bn.cv(data = data, bn = bn.tabu, method = "k-fold", k = 10, runs = 100)

这给出了结果

k-fold cross-validation for Bayesian networks

  number of folds:                       10 
  loss function:                         Log-Likelihood Loss (Gauss.) 
  number of runs:                        100 
  average loss over the runs:            151.8083 
  standard deviation of the loss:        0.2384763

问题是,我应该对我的数据使用什么损失函数,以便我可以更改我使用的数据集并获得可比较的结果,以及“运行中的平均损失”是什么意思?最终的游戏是进行联合概率分布和一年 + 1 的预测,所以基本上是第 33 行,其中包含数字及其概率分布。

很抱歉有任何不一致之处,因为我还在学习统计数据。

4

1 回答 1

0

我不知道我是否正确理解您的问题。第二个问题“运行中的平均损失”是什么意思?因为您的代码运行了 10 次(k=10),这意味着 10 次损失函数的平均值。关于第一个问题,最好看看这个页面。 https://stats.stackexchange.com/questions/339897/what-is-the-difference-between-loss-function-and-mle 抱歉语言不好,我的英语不像你看到的那样好。

于 2020-01-21T14:44:50.537 回答