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 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])
    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])