human
(4e) Evaluate the model 
We are now ready to evaluate the quality of the model we trained in Part (4a). To do this, first write a general function that takes as input a model and data, and outputs the log loss.  Then run this function on the OHE training data, and compare the result with the baseline log loss.

=====
Can you provide a Python code to compare the result with the baseline log loss?
assistant
#Here is Python code to compare the result with the baseline log loss.
# TODO: Replace <FILL IN> with appropriate code
def evaluateResults(model, data):
    """Calculates the log loss for the data given the model.

    Args:
        model (LogisticRegressionModel): A trained logistic regression model.
        data (RDD of LabeledPoint): Labels and features for each observation.

    Returns:
        float: Log loss for the data.
    """
    
    def evaluateResult(model, point):
    # Calculates the log loss for the individual data points given the model.
        prob = getP(point.features, model.weights, model.intercept)
        return computeLogLoss(prob, point.label)
    
    return data.map(lambda x: evaluateResult(model, x)).mean()

logLossTrLR0 = evaluateResults(model0, OHETrainData)
print ('OHE Features Train Logloss:\n\tBaseline = {0:.3f}\n\tLogReg = {1:.3f}'
       .format(logLossTrBase, logLossTrLR0))

# TEST Evaluate the model (4e)
Test.assertTrue(np.allclose(logLossTrLR0, 0.456903), 'incorrect value for logLossTrLR0')