Example #1
0
 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({