'Splits the data in two disjunct datasets: train and test
:param percent: % of training set to be used (test set size = 100-percent)
:type percent: int
:param shuffle_data: shuffle dataset?
:type shuffle_data: Boolean
:returns: a tuple <Data, Data>'

def split_train_test(self, percent=80, shuffle_data=True):

    if shuffle_data:
        shuffle(self._data)
    length = len(self._data)
    train_list = self._data[:int(round(((length * percent) / 100.0)))]
    test_list = self._data[(- int(round(((length * (100 - percent)) / 100.0)))):]
    train = Data()
    train.set(train_list)
    test = Data()
    test.set(test_list)
    return (train, test)
