def __init__(self, w_spams_func, u_spams_func, **other_params):
        super(BatchBivariateLearner, self).__init__()

        self.allParams = other_params
        self.initDefaults()

        self.elementsSeen = 0
        self.X = None
        self.w = None
        self.u = None
        self.w_bias = None
        self.u_bias = None
        self.bias = None
        self.change_eval = BiMeanSquareEval(self)
        self.part_eval = RootMeanEval()
        self.w_func = w_spams_func
        self.u_func = u_spams_func