def mars(x_train, x_test, y_train, y_test, timestamp):
    # set model
    model = Earth(max_degree=1, penalty=1.0, endspan=5)

    # predict
    model = model.fit(x_train, y_train)

    y_pred = model.predict(x_test)

    # score
    # score=model.score(x_test,y_test)

    correlation_matrix = np.corrcoef(y_test, y_pred)
    correlation_xy = correlation_matrix[0, 1]
    score = correlation_xy**2

    MSE, MAD, MAPE = outputReport.regression_basic_results(y_test, y_pred)
    fileName, result = outputReport.regression_extanded_results(
        timestamp, y_test, y_pred, "mars")
    try:
        model_summary = str(model.summary())
        model_summary_final = model_summary.replace("\n", "<br>")
        result += "<br>Model Parameters:<br>" + str(model.get_params(
        )) + "<br>Model Summary:<br>" + model_summary_final
    except:
        result += "<br>Model Summary is not available for MARS"
    return score, fileName, MSE, MAD, MAPE, result
def mars_forecast(x_train, x_test, y_train, timestamp):
    # set model
    model = Earth(max_degree=1, penalty=1.0, endspan=5)

    # predict
    model = model.fit(x_train, y_train)

    y_pred = pd.DataFrame(model.predict(x_test), columns=["Forecasted Values"])

    filename = outputReport.regression_extanded_results_forecast(
        timestamp, y_pred, "mars forecast")

    try:
        model_summary = str(model.summary())
        model_summary_final = model_summary.replace("\n", "<br>")
        result = "<br>Model Parameters:<br>" + str(model.get_params(
        )) + "<br>Model Summary:<br>" + model_summary_final
    except:
        result = "Model Summary is not available for MARS"

    result += str(
        y_pred.to_html(formatters={'Name': lambda x: '<b>' + x + '</b>'}))

    return filename, result