Exemplo n.º 1
0
 def test_cost_function(self):
     self.X = np.concatenate([np.ones((self.m, 1)), self.X], axis=1)
     theta = np.zeros((self.n + 1, 1))
     cost_loop = cost_function_loop(self.X, self.y, theta)
     cost = cost_function(self.X, self.y, theta)
     self.assertAlmostEqual(cost_loop, 0.693, places=3)
     self.assertAlmostEqual(cost, 0.693, places=3)
 def lrm_descent(self):
     self.theta_values = [1] * (len(self.training_features[0]))
     X = self.training_features
     if not all(np.transpose(X)[0]) == 1:
         X = np.transpose(
             np.insert(np.transpose(X),
                       0, [1] * (len(self.training_values)),
                       axis=0))
     cj = utils.cost_function(self.theta_values, X, self.training_values)
     J = 999999999999999999999
     while abs(J - cj) > self.min_diff:
         J = cj
         self.theta_values = utils.minimized_theta(self.theta_values, X,
                                                   self.alpha,
                                                   self.training_values)
         cj = utils.cost_function(self.theta_values, X,
                                  self.training_values)
     return J
Exemplo n.º 3
0
 def test_cost_function(self):
     initial_theta = np.ones(self.n + 1)
     lamda = 1.0
     cost = cost_function(initial_theta, self.X, self.y, lamda)
     self.assertAlmostEqual(cost, 303.993, places=3)
            idx += 1
            if idx > 9:
                min_idx = assign_min_day()
                result.append((row.family_id, min_idx+1, row.n_people, idx, preference_cost(idx,row.n_people)))
                index.append(10)
                flag = True
            else:
                ch = choices[idx]

f = pd.DataFrame(result, columns=['family_id','day','n','ch','pc'])
f.sort_values('family_id', inplace=True)
assign_day = f['day'].to_list()
c = Counter(index)
pen = f[f['ch'] > 0]
pen.sort_values(['pc','ch'], ascending=False, inplace=True)
pen = pen.merge(df, how='inner', on='family_id')

#%%
score, pcost, acost, daily_double, pc, ap = cost_function(assign_day, family_size_dict, choice_dict)
print(f'Score = {score[0]:,.0f}')
above = np.where(daily_double > 300,1,0).sum()
below = np.where(daily_double < 125,1,0).sum()
print(f'Above 300: {above} - max: {np.max(daily_double)}')
print(f'Below 125: {below} - min: {np.min(daily_double)}')
f.set_index('family_id', inplace=True)
submission = f[['day']].copy()
submission.columns = ['assigned_day']
assert submission.shape[0] == 5000
submission.to_csv('submission.csv')
    
Exemplo n.º 5
0
 def test_cost_function(self):
     initial_theta = np.ones(self.n+1)
     lamda = 1.0
     cost = cost_function(initial_theta, self.X, self.y, lamda)
     self.assertAlmostEqual(cost, 303.993, places=3)