我正在使用软件包“ pcalg” 2.0-10版中的pc-stable来学习结构。据我了解,该算法不会影响输入数据的顺序,因为它是order_independent。当我以不同的顺序运行它时,我得到了不同的图形。谁能帮我解决这个问题,这是我的代码。

library(pracma)

randindexMatriax <- matrix(0,10,ncol(TrainData))
numberUnique_val_col = vector()
pdf("Graph for Test PC Stable with random order.pdf")


par(mfrow = c(2,1))
   对于(1:10中的i)
  {

randindex<-randperm(1:ncol(TrainData))
randindexMatriax[i,]<-randindex
TrainDataRandOrder<-data[,randindex]

V <- colnames( TrainDataRandOrder)
UD <-data.frame(TrainDataRandOrder)


numberUnique_val_col = sapply(UD,function(x)length(unique(x)))

suffStat                                                 numberUnique_val_col [5],numberUnique_val_col [6],numberUnique_val_col [7],
                                                   numberUnique_val_col [8],numberUnique_val_col [9],
                                                     numberUnique_val_col [10],numberUnique_val_col [11],
                                                     numberUnique_val_col [12],numberUnique_val_col [13],
                                                     numberUnique_val_col [14],numberUnique_val_col [15],
                                                     numberUnique_val_col [16],numberUnique_val_col [17],
                                                     numberUnique_val_col [18],numberUnique_val_col [19],numberUnique_val_col [20],adaptDF = FALSE)

pc.fit

最佳答案

PC-Stable的“稳定”部分仅影响算法的骨架阶段。定向阶段仍然取决于顺序。这两个图是否具有相同的“骨架”?也就是说,如果将所有有向边转换为无向边,则两个图是否相同?

否则,您可能已经发现pcalg中的错误!请发布样本数据集和两个列排序,以产生具有不同骨架的图。

关于machine-learning - pcalg的PC稳定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30715227/

10-12 17:16