# STA 414/2104 ASSIGNMENT 4, DATA SET 1. source("pen-mix.r") # Read data. file <- "amix1" est <- as.matrix(read.table(paste(file,"-est.dat",sep=""),head=FALSE)) val <- as.matrix(read.table(paste(file,"-val.dat",sep=""),head=FALSE)) tst <- as.matrix(read.table(paste(file,"-tst.dat",sep=""),head=FALSE)) # Set up values and seeds to try. try.K <- c(1,2,3,4) try.lambda <- c(0,1,2,4,8) seeds.K <- rep(1,length(try.K)) # Find all results, continuing from a short run with lambda=0. res <- matrix(NA,0,5) colnames(res) <- c("K","lambda","est","val","tst") for (K in try.K) { cat("\nTRYING K =",K,"\n") # Do short run with lambda=0. set.seed(seeds.K[K]) m0 <- mix (est, K, 25, 0, prnt=1) # Continue from lambda=0 with various lambda (including more for lambda=0). for (lambda in try.lambda) { if (K==1 && lambda!=0) next cat("\n\nTRYING K =",K,"AND LAMBDA =",lambda,"\n") m <- mix (est, K, 100, lambda, m0$r, prnt=1) m$r <- NULL print(m) res <- rbind (res, c(K, lambda, log.prob(est,m)/nrow(est), log.prob(val,m)/nrow(val), log.prob(tst,m)/nrow(tst))) } } # Print all results, and the best by validation and test performance. print(res) print (rbind (best.val=res[which.max(res[,"val"]),], best.tst=res[which.max(res[,"tst"]),]))