HMM包在R中崩溃

HMM包在R中崩溃,r,hidden-markov-models,bayesian-networks,R,Hidden Markov Models,Bayesian Networks,我正在使用HMM包为学习R的学生计算BKT组参数估计。现在,我的代码生成了除最后一个知识组件(代码中的kc)之外的所有矩阵。但随后它继续运行了一段时间,最终rstudio崩溃。现在,我的代码如下所示: require("hmm.discnp") ## load student roll-up df <- data.frame(read.table(file="C:/Users/Ajay Phatak/Documents/school/Summer 2015/150321GIPathway

我正在使用HMM包为学习R的学生计算BKT组参数估计。现在,我的代码生成了除最后一个知识组件(代码中的kc)之外的所有矩阵。但随后它继续运行了一段时间,最终rstudio崩溃。现在,我的代码如下所示:

require("hmm.discnp")

## load student roll-up
df <- data.frame(read.table(file="C:/Users/Ajay Phatak/Documents/school/Summer 2015/150321GIPathwaysPreprocHCAtt183-31 M2A.txt",na.strings="NA",sep="\t",quote="",header=TRUE, fill=TRUE))

#df_subset <- df[,c(3,7,15,20,21,23)]
df_subset <- df[,c(5,21,27,39,38)]
#change first attempt to accuracy, change kc default to kc(model2a),
df_subset$Accuracy <- as.numeric(as.vector(df_subset$Accuracy))

df_subset <- na.omit(df_subset)

kc_list <- unique(df_subset$KC.Model.2A.)
#loop on the kc_list
for (kc in kc_list)
  {
  print(kc)
  one_kc <- df_subset[ which(df_subset$KC.Model.2A.==kc), ]
  one_kc <- one_kc[,c(1,3)]
  # remove users with few observations on this skill
  by_user = split(one_kc, one_kc$Anon.Student.id)
  obs_by_user = sapply(by_user, nrow)
  valid_users = names(obs_by_user[obs_by_user > 2])
  student_outcomes = one_kc[one_kc$Anon.Student.id %in% valid_users,]

  by_good_user = split(student_outcomes$Accuracy,     student_outcomes$Anon.Student.id)



# attempt to estimate model parameters
  my_hmm = hmm(by_good_user, yval=c(0,1),
               par0=list(tpm=rbind(c(0.8,0.2),c(0.01,0.99)),
                         Rho=rbind(c(0.75,0.25),c(0.25,0.75))),
               stationary=FALSE)
  if (!my_hmm$converged) {
    print(sprintf("Error!  HMM did not converge for skill %s!", kc))
  } else {
    #for (user_id in valid_users) {
      #student_est = sp(correct_by_user[[user_id]], object = my_hmm, means=TRUE)
      #print(sprintf("%s/%s: %f chance know, %f chance correct", skill, user_id,     student_est$probs[2,ncol(student_est$probs)],     student_est$means[length(student_est$means)]))
      # print(correct_by_user[[user_id]])
    #}
  }

# transition probability matrix
print(my_hmm$tpm)
# output probabilities
print(my_hmm$Rho)
# initial probabilities (don't know/know)
print(my_hmm$ispd)
}
require(“hmm.discnp”)
##加载学生卷

这个数据集有多大?你的内存用完了吗?不够大,我想我的内存应该用完了。文件中只有几千行