for i in range(util.TRIALS):
		print "Trial", i

		ql = util.parsePowerGrading()
		ran = RandomPredictor(ql)
		bow = ConstantBestGuessPredictor(ql)
		bow1 = NGramRegression(ql, 1)
		bow2 = NGramRegression(ql, 2)
		nno = NearestNeighborOverlap(ql)
		nnced = NearestNeighborCharEditDistance(ql)
		nnwed = NearestNeighborWordEditDistance(ql)
		bos = BagOfSynsets(ql)

		total_err_ran += ran.run()
		total_err += bow.run()
		total_err1 += bow1.run()
		total_err2 += bow2.run()
		total_err_nno += nno.run()
		total_err_nnced += nnced.run()
		total_err_nnwed += nnwed.run()
		total_err_bos += bos.run()

	print "Average Random RMSE:",
	print total_err_ran/util.TRIALS

	print "Average CBG RMSE:",
	print total_err/util.TRIALS

	print "Ngram 1 Average RMSE:",
	print total_err1/util.TRIALS
	total_err_com = 0.0

	for i in range(util.TRIALS):
		print "Trial", i

		ql = util.parsePowerGrading()
		ran = RandomPredictor(ql)
		cbg = ConstantBestGuessPredictor(ql)
		bop = BOPRegression(ql)
		fop = FOPRegression(ql)
		cep = CharEditDistancePredictor(ql)
		edit = WordEditDistancePredictor(ql)
		com = CombinedModel(ql, [NGramRegression, FractionOverlapPredictor, CharEditDistancePredictor], linear_model.LinearRegression)

		total_err_ran += ran.run()
		total_err_cbg += cbg.run()
		total_err_bop += bop.run()
		total_err_fop += fop.run()
		total_err_edit += edit.run()
		total_err_cep += cep.run()
		total_err_com += com.run()

	print "Average Random RMSE:",
	print total_err_ran/util.TRIALS

	print "Average CBG RMSE:",
	print total_err_cbg/util.TRIALS

	print "Average BOP RMSE:",
	print total_err_bop/util.TRIALS