def train_self(self):
        """
        Train the model on the data we have in the model
        :return:
        """
        # for this week, we implement 1 layer neural network

        feature_set = self.data[self.num_cols].as_matrix()
        label_array = self.data[[self.class_column]].as_matrix()

        # make my uin as seed
        # implement user's ability next week
        np.random.seed(651862182)

        # initialize weights randomly with mean 0
        # feature_set.shape[1] is the number of inputs
        syn0 = 1 - 2 * np.random.random((feature_set.shape[1], 1))

        for i in range(0, self.num_iter):

            # forward propagation
            l0 = feature_set
            l1 = nonlin(np.dot(l0, syn0))

            # how much did we miss?
            l1_error = label_array - l1

            # multiply how error by the slope of the sigmoid at the values in l1
            l1_delta = l1_error * nonlin(l1, True)

            # update weights
            syn0 += np.dot(l0.T, l1_delta)

        self.syn0 = syn0

        # Output After Training:
        # l1
        output = list(pd.DataFrame(l1)[0].map(lambda x: get_class(x)))
        target = list(pd.DataFrame(label_array)[0])

        self.fit_report['output'] = output
        self.fit_report['target'] = target

        print("Fit done.")
        self.report()
dataset/ETHPy150Open LargePanda/LearnPy/learnpy/models/NeuralNetwork.py/NeuralNetwork.train_self/swapped operands of `-`