cherry trees dataset

    Parameters
    ----------
    return_X_y : bool,
        if True, returns a model-ready tuple of data (X, y)
        otherwise, returns a Pandas DataFrame

    Returns
    -------
    model-ready tuple of data (X, y)
        OR
    Pandas DataFrame

    Notes
    -----
    X contains the girth and the height of each tree.
    y contains the volume.

    Source:
    https://vincentarelbundock.github.io/Rdatasets/doc/datasets/trees.html

def trees(return_X_y=True):
    """cherry trees dataset

    Parameters
    ----------
    return_X_y : bool,
        if True, returns a model-ready tuple of data (X, y)
        otherwise, returns a Pandas DataFrame

    Returns
    -------
    model-ready tuple of data (X, y)
        OR
    Pandas DataFrame

    Notes
    -----
    X contains the girth and the height of each tree.
    y contains the volume.

    Source:
    https://vincentarelbundock.github.io/Rdatasets/doc/datasets/trees.html
    """
    # y is real.
    # recommend InvGaussGAM, or GAM(distribution='gamma', link='log')
    trees = pd.read_csv(PATH + '/trees.csv', index_col=0)
    if return_X_y:
        y = trees.Volume.values
        X = trees[['Girth', 'Height']].values
        return _clean_X_y(X, y)
    return trees