def predict(self, year, team1, team2):
        """
        Function to be able to easily predict from human input (pre-processing
        data and everything needed to obtain something in the neural network input
        format)
        """
        inputs = []

        for feature in self.input_features:
            stat_name = feature.replace('_1', '')\
                               .replace('_2', '')\
                               .replace('_recent', '')\
                               .replace('_all_time', '')

            if stat_name in self.team_stats.columns.values:
                # it's a team stat
                if 'all_time' in feature:
                    stat_year = 'all_time'
                else:
                    stat_year = year
                team = team1 if '_1' in feature else team2
                team_year = team_year_key(team, stat_year)
                value = self.team_stats.loc[team_year, stat_name]
            elif feature == 'year':
                value = year
            else:
                raise ValueError("Don't know where to get feature: " + feature)

            inputs.append(value)

        inputs = self.normalizer.transform(inputs)
        result = self.neural_result(inputs)

        if result == 0:
            return 'tie'
        elif result == 1:
            return team1
        elif result == 2:
            return team2
        else:
            return 'Unknown result: ' + str(result)

    # auxiliary functions
dataset/ETHPy150Open fisadev/afa_cup_learning/learn.py/CrystalBall.predict/original