我正在使用软件包“ 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/