def gather_all_inputs(self, input_dict): col_order = [key for key in input_dict.keys()] for key, data in input_dict.items(): input_dict.update({key: [data]}) data = DataFrame(input_dict, col_order) data.append_pairwise_interactions() data.append_columns({'constant': [1]}) self.current_input = data return data.data_dict
from logistic_regressor import LogisticRegressor from dataframe import DataFrame data_dict = { 'beef': [0, 0, 0, 0, 5, 5, 5, 5, 0, 0, 0, 0, 5, 5, 5, 5], 'pb': [0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5, 5, 5], 'condiments': [[], ['mayo'], ['jelly'], ['mayo', 'jelly'], [], ['mayo'], ['jelly'], ['mayo', 'jelly'], [], ['mayo'], ['jelly'], ['mayo', 'jelly'], [], ['mayo'], ['jelly'], ['mayo', 'jelly']], 'rating': [1, 1, 4, 0, 4, 8, 1, 0, 5, 0, 9, 0, 0, 0, 0, 0] } df = DataFrame(data_dict, column_order=['beef', 'pb', 'condiments']) df = df.create_dummy_variables() df = df.append_pairwise_interactions() df = df.append_columns({ 'constant': [1 for _ in range(len(data_dict['rating']))], 'rating': data_dict['rating'] }) df = df.apply('rating', lambda x: 0.1 if x == 0 else x) regressor = LogisticRegressor(df, prediction_column='rating', max_val=10) assert regressor.multipliers == [ -0.039, -0.0205, 1.7483, -0.3978, 0.1497, -0.7485, 0.4682, 0.3296, -0.5288, 2.6441, 1.0125 ], 'Wong multipliers' assert regressor.predict({