"""
template for generating data to fool learners (c) 2016 Tucker Balch
Copyright 2018, Georgia Institute of Technology (Georgia Tech)
Atlanta, Georgia 30332
All Rights Reserved

Template code for CS 4646/7646

Georgia Tech asserts copyright ownership of this template and all derivative
works, including solutions to the projects assigned in this course. Students
and other users of this template code are advised not to share it with others
or to make it available on publicly viewable websites including repositories
such as github and gitlab.  This copyright statement should not be removed
or edited.

We do grant permission to share solutions privately with non-students such
as potential employers. However, sharing with other current or future
students of CS 7646 is prohibited and subject to being investigated as a
GT honor code violation.

-----do not edit anything above this line---

Student Name: Tucker Balch (replace with your name)
GT User ID: tb34 (replace with your User ID)
GT ID: 900897987 (replace with your GT ID)
"""

import numpy as np
import pandas as pd
import math


def best4LinReg(seed=1489683273):
    """
    This function should return a dataset (X and Y) that will work better for
    linear regression than decision trees.

    We make Y a simple linear combination of X. That will give the Linear
    Regression algorithm a very easy time (no RMSE at all) and beat the DT
    easily.
    """
    np.random.seed(seed)
    X = np.random.random(size=(100, 2)) * 200 - 100
    Y = X[:, 0] * -2 + X[:, 1] * 3
    return X, Y


def best4DT(seed=1489683273):
    """
    This function should return a dataset that will work better for decision
    trees than linear regression.

    Decision trees are better for categorizing discrete data. So if we set the
    output values to integers that should help. Additionally, the smaller the
    dataset the harder for the LR to create a nice curve.
    """
    np.random.seed(seed)
    X = np.random.random(size=(10, 10)) * 200 - 100
    Y = np.asarray([i for i in range(0, 10)])
    return X, Y


def author():
    return 'felixm'  # Change this to your user ID


if __name__ == "__main__":
    print("they call me Tim.")
