def testCvModelSelection(self): graph = self.graph lmbda = 0.01 alterRegressor = PrimalRidgeRegression(lmbda) egoRegressor = PrimalRidgeRegression(lmbda) predictor = EgoEdgeLabelPredictor(alterRegressor, egoRegressor) paramList = [[0.1, 0.1], [0.2, 0.1], [0.1, 0.2]] paramFunc = [egoRegressor.setLambda, alterRegressor.setLambda] folds = 3 errorFunc = Evaluator.rootMeanSqError meanErs, stdEr = predictor.cvModelSelection(graph, paramList, paramFunc, folds, errorFunc) logging.debug(meanErs) self.assertTrue(meanErs.shape[0] == len(paramList)) meanErs2 = meanErs paramList = [[0.1, 0.1], [0.2, 0.1]] meanErs, stdEr = predictor.cvModelSelection(graph, paramList, paramFunc, folds, errorFunc) logging.debug(meanErs) self.assertTrue(meanErs.shape[0] == len(paramList)) self.assertTrue((meanErs2[0:2] == meanErs).all()) paramList = [[0.1, 0.1]] meanErs, stdEr = predictor.cvModelSelection(graph, paramList, paramFunc, folds, errorFunc) logging.debug(meanErs) self.assertTrue(meanErs.shape[0] == len(paramList)) self.assertTrue((meanErs2[0:1] == meanErs).all())
def testCvError(self): graph = self.graph lmbda = 0.01 alterRegressor = PrimalRidgeRegression(lmbda) egoRegressor = PrimalRidgeRegression(lmbda) predictor = EgoEdgeLabelPredictor(alterRegressor, egoRegressor) paramList = [0.1, 0.1] paramFunc = [egoRegressor.setLambda, alterRegressor.setLambda] folds = 3 errorFunc = Evaluator.rootMeanSqError meanEr, stdEr = predictor.cvError(graph, paramList, paramFunc, folds, errorFunc) paramList = [[0.1, 0.1]] meanErs, stdEr = predictor.cvModelSelection(graph, paramList, paramFunc, folds, errorFunc) self.assertEquals(meanEr, meanErs[0])