<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def score(self, X, y=None, train=False, **kwargs):
 """ Generates predicted target values using the Scikit-Learn estimator. Parameters X : array-like X (also X_test) are the dependent variables of test set to predict y : array-like y (also y_test) is the independent actual variables to score against train : boolean If False, `score` assumes that the residual points being plotted are from the test data; if True, `score` assumes the residuals are the train data. Returns ------ score : float The score of the underlying estimator, usually the R-squared score for regression estimators. """

        score = self.estimator.score(X, y, **kwargs)
        if train:
            self.train_score_ = score
        else:
            self.test_score_ = score

        y_pred = self.predict(X)
        scores = y_pred - y
        self.draw(y_pred, scores, train=train)
        
        return score