metacountregressor 0.1.120__py3-none-any.whl → 0.1.121__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -444,53 +444,57 @@ if __name__ == '__main__':
444
444
  parser = argparse.ArgumentParser(prog='main',
445
445
  epilog=main.__doc__,
446
446
  formatter_class=argparse.RawDescriptionHelpFormatter, conflict_handler='resolve')
447
-
448
- parser.add_argument('-line', type=int, default=1,
449
- help='line to read in csv to pass in argument')
450
-
451
- if vars(parser.parse_args())['line'] is not None:
452
- reader = csv.DictReader(open('set_data.csv', 'r'))
453
- args = list()
454
- line_number_obs = 0
455
- for dictionary in reader: # TODO find a way to handle multiple args
456
- args = dictionary
457
- if line_number_obs == int(vars(parser.parse_args())['line']):
458
- break
459
- line_number_obs += 1
460
- args = dict(args)
461
-
462
- for key, value in args.items():
463
- try:
464
- # Attempt to parse the string value to a Python literal if value is a string.
465
- if isinstance(value, str):
466
- value = ast.literal_eval(value)
467
- except (ValueError, SyntaxError):
468
- # If there's a parsing error, value remains as the original string.
469
- pass
470
-
471
- # Add the argument to the parser with the potentially updated value.
472
- parser.add_argument(f'-{key}', default=value)
473
-
474
- for i, action in enumerate(parser._optionals._actions):
475
- if "-algorithm" in action.option_strings:
476
- parser._optionals._actions[i].help = "optimization algorithm"
477
-
478
- override = False
479
- if override:
480
- print('WARNING: TESTING ENVIRONMENT, TURN OFF FOR RELEASE')
481
- parser.add_argument('-problem_number', default='10')
482
-
483
- if 'algorithm' not in args:
484
- parser.add_argument('-algorithm', type=str, default='hs',
485
- help='optimization algorithm')
486
- elif 'Manual_Fit' not in args:
487
- parser.add_argument('-Manual_Fit', action='store_false', default=None,
488
- help='To fit a model manually if desired.')
489
-
490
- parser.add_argument('-seperate_out_factors', action='store_false', default=False,
491
- help='Trie of wanting to split data that is potentially categorical as binary'
492
- ' we want to split the data for processing')
493
- parser.add_argument('-supply_csv', type = str, help = 'enter the name of the csv, please include it as a full directorys')
447
+
448
+
449
+ BATCH_JOB = True
450
+
451
+ if BATCH_JOB:
452
+ parser.add_argument('-line', type=int, default=1,
453
+ help='line to read in csv to pass in argument')
454
+
455
+ if vars(parser.parse_args())['line'] is not None:
456
+ reader = csv.DictReader(open('set_data.csv', 'r'))
457
+ args = list()
458
+ line_number_obs = 0
459
+ for dictionary in reader: # TODO find a way to handle multiple args
460
+ args = dictionary
461
+ if line_number_obs == int(vars(parser.parse_args())['line']):
462
+ break
463
+ line_number_obs += 1
464
+ args = dict(args)
465
+
466
+ for key, value in args.items():
467
+ try:
468
+ # Attempt to parse the string value to a Python literal if value is a string.
469
+ if isinstance(value, str):
470
+ value = ast.literal_eval(value)
471
+ except (ValueError, SyntaxError):
472
+ # If there's a parsing error, value remains as the original string.
473
+ pass
474
+
475
+ # Add the argument to the parser with the potentially updated value.
476
+ parser.add_argument(f'-{key}', default=value)
477
+
478
+ for i, action in enumerate(parser._optionals._actions):
479
+ if "-algorithm" in action.option_strings:
480
+ parser._optionals._actions[i].help = "optimization algorithm"
481
+
482
+ override = False
483
+ if override:
484
+ print('WARNING: TESTING ENVIRONMENT, TURN OFF FOR RELEASE')
485
+ parser.add_argument('-problem_number', default='10')
486
+
487
+ if 'algorithm' not in args:
488
+ parser.add_argument('-algorithm', type=str, default='hs',
489
+ help='optimization algorithm')
490
+ elif 'Manual_Fit' not in args:
491
+ parser.add_argument('-Manual_Fit', action='store_false', default=None,
492
+ help='To fit a model manually if desired.')
493
+
494
+ parser.add_argument('-seperate_out_factors', action='store_false', default=False,
495
+ help='Trie of wanting to split data that is potentially categorical as binary'
496
+ ' we want to split the data for processing')
497
+ parser.add_argument('-supply_csv', type = str, help = 'enter the name of the csv, please include it as a full directorys')
494
498
 
495
499
  else: # DIDN"T SPECIFY LINES TRY EACH ONE MANNUALY
496
500
  parser.add_argument('-com', type=str, default='MetaCode',
@@ -72,7 +72,7 @@ def dict_mean(dict_list,
72
72
  mean_dict[key] = sum(d[key] for d in dict_list) / len(dict_list)
73
73
  return mean_dict
74
74
  else:
75
-
75
+ mean_dict = {}
76
76
  for key in dict_list[0].keys():
77
77
  if key in ignore:
78
78
  continue
@@ -152,7 +152,7 @@ class ObjectiveFunction(object):
152
152
  self.dist_fit = None
153
153
 
154
154
  self.MAE = None
155
- self.best_obj_1 = 100000000.0
155
+ self.best_obj_1 = 1000000.0
156
156
  self._obj_1 = 'bic'
157
157
  self._obj_2 = 'MSE'
158
158
  self.numerical_hessian_calc = 0 # calculates hessian by statsmodels otherwise scipy
@@ -395,7 +395,7 @@ class ObjectiveFunction(object):
395
395
 
396
396
 
397
397
 
398
- self.Ndraws = 1400 # todo: change back
398
+ self.Ndraws = 200 # todo: change back
399
399
  self.draws1 = None
400
400
  self.initial_sig = 1 # pass the test of a single model
401
401
  self.pvalue_sig_value = .1
@@ -449,8 +449,17 @@ class ObjectiveFunction(object):
449
449
  if 'model_types' in kwargs:
450
450
  model_types = kwargs['model_types']
451
451
  else:
452
- model_types = [[0, 1]] # add 2 for Generalized Poisson
452
+ print('the type of models possible are:')
453
453
 
454
+ model_types = [[0, 1]] # add 2 for Generalized Poisson
455
+ model_types = [[0]]
456
+ #TODO change back and fix NB
457
+ model_t_dict = {'Poisson':0,
458
+ "NB":1}
459
+ # Retrieve the keys (model names) corresponding to the values in model_types
460
+ model_keys = [key for key, value in model_t_dict.items() if value in model_types[0]]
461
+ # Print the formatted result
462
+ print(f'The type of models possible are: {", ".join(model_keys)}')
454
463
  self._discrete_values = self._discrete_values + self.define_poissible_transforms(
455
464
  self._transformations, kwargs.get('decisions',None)) + model_types
456
465
 
@@ -470,6 +479,7 @@ class ObjectiveFunction(object):
470
479
  #Manually fit from analyst specification
471
480
  manual_fit = kwargs.get('Manual_Fit')
472
481
  if manual_fit is not None:
482
+ print('fitting manual')
473
483
  self.process_manual_fit(manual_fit)
474
484
 
475
485
  self.solution_analyst = None
@@ -1372,7 +1382,7 @@ class ObjectiveFunction(object):
1372
1382
  bb = eVy -1
1373
1383
  disp = sm.OLS(ab.ravel(), bb.ravel()).fit()
1374
1384
  gamma = disp.params[0]
1375
- print(f'dispersion is {gamma}')
1385
+ #print(f'dispersion is {gamma}')
1376
1386
  return gamma
1377
1387
 
1378
1388
  def validation(self, betas, y, X, Xr=None, dispersion=0, rdm_cor_fit=None, zi_list=None, exog_infl=None,
@@ -2321,7 +2331,7 @@ class ObjectiveFunction(object):
2321
2331
  sorted(my_dict, key=lambda x: x[0]['pval_percentage'])
2322
2332
 
2323
2333
  def get_fitness(self, vector, multi=False, verbose=False, max_routine=3):
2324
- obj_1 = 10.0 ** 8
2334
+ obj_1 = 10.0 ** 5
2325
2335
  obj_best = None
2326
2336
  sub_slns = list()
2327
2337
 
@@ -2332,7 +2342,7 @@ class ObjectiveFunction(object):
2332
2342
  try:
2333
2343
  self.repair(vector)
2334
2344
  except Exception as e:
2335
- print('prob here')
2345
+ print('prolem repairing here')
2336
2346
  print(vector)
2337
2347
  print(e)
2338
2348
  layout = vector.copy()
@@ -2613,7 +2623,7 @@ class ObjectiveFunction(object):
2613
2623
  self._hmcr = (
2614
2624
  self._hmcr_min + ((self._hmcr_max - self._hmcr_min) / self._max_imp) * iteration)
2615
2625
 
2616
- # end def
2626
+
2617
2627
 
2618
2628
  def update_par(self, iteration, is_sin=False):
2619
2629
  """
@@ -2833,10 +2843,6 @@ class ObjectiveFunction(object):
2833
2843
  '''
2834
2844
  #return score
2835
2845
 
2836
-
2837
-
2838
-
2839
-
2840
2846
  try:
2841
2847
  if alpha is None:
2842
2848
  alpha = np.exp(params[-1])
@@ -3467,6 +3473,8 @@ class ObjectiveFunction(object):
3467
3473
  corr_pairs = list(itertools.combinations(self.Kr, 2))
3468
3474
  else:
3469
3475
  corr_pairs = list(itertools.combinations(corr_indices, 2))
3476
+ if len(corr_pairs) >0:
3477
+ print('maybe get the terms here')
3470
3478
 
3471
3479
  for ii, corr_pair in enumerate(corr_pairs):
3472
3480
  # lower cholesky matrix
@@ -3495,7 +3503,7 @@ class ObjectiveFunction(object):
3495
3503
  a = 0
3496
3504
  b = 0
3497
3505
  stuff = []
3498
- # todo get order
3506
+ # TODO get order
3499
3507
  for j, i in enumerate(list_sizes):
3500
3508
  br_mean = betas_hetro[a:i + a]
3501
3509
  a += i
@@ -3522,7 +3530,30 @@ class ObjectiveFunction(object):
3522
3530
  br_mean = betas_m
3523
3531
  br_sd = betas_sd # Last Kr positions
3524
3532
  # Compute: betas = mean + sd*draws
3525
- betas_random = br_mean[None, :, None] + draws * br_sd[None, :, None]
3533
+ if len(br_sd) != draws.shape[1]:
3534
+ #get the same size as the mean
3535
+ betas_random = self.Br.copy()
3536
+
3537
+ '''
3538
+ c = self.get_num_params()[3:5]
3539
+
3540
+ cor = []
3541
+ for i in range(c[0]):
3542
+ cor.append(i)
3543
+
3544
+ vall =[]
3545
+ for i, val in enumerate(reversed(br_sd)):
3546
+ vall.append()
3547
+
3548
+ remaining = draws.shape[1] - len(betas_sd)
3549
+ '''
3550
+
3551
+ else:
3552
+
3553
+
3554
+ betas_random = br_mean[None, :, None] + draws * br_sd[None, :, None]
3555
+
3556
+
3526
3557
  betas_random = self._apply_distribution(betas_random)
3527
3558
 
3528
3559
  return betas_random
@@ -3959,7 +3990,7 @@ class ObjectiveFunction(object):
3959
3990
  # proba_r = self.poisson_lognormal_pmf(y, eVd, sig)
3960
3991
  proba_r = np.array(store)
3961
3992
  proba_r = np.atleast_2d(proba_r).T
3962
- print(1)
3993
+
3963
3994
 
3964
3995
  else:
3965
3996
  raise Exception('not implemented other modeling forms')
@@ -4137,12 +4168,13 @@ class ObjectiveFunction(object):
4137
4168
  br, draws_, brstd, dis_fit_long) # (N,K,R)
4138
4169
  dprod_r = dev.np.einsum("njk,njr -> nkr", Xdr,
4139
4170
  einsum_model_form, dtype=np.float64) # (N,K,R)
4140
- der_prod_r = dprod_r * der * proba_n[:, None, :] # (N,K,R)
4171
+ #der_prod_r = dprod_r * der * proba_n[:, None, :] # (N,K,R)
4141
4172
  #der_prod_r = dprod_r * der * proba_n[:, X_tril_idx, :] # I think this is the case check
4142
- der_prod_r = dprod_r[:, X_tril_idx, :] * der * proba_n[:, None, :] # or this one
4143
- #print('which one of these')
4173
+
4174
+ der_prod_r = dprod_r * der * proba_n[:, None, :] # or this one
4175
+
4144
4176
  der_t = self._compute_derivatives(
4145
- br, draws_[:, draws_tril_idx, :], brstd, self.dist_fit) # (N,K,R)
4177
+ br[draws_tril_idx], draws_[:, draws_tril_idx, :], brstd, np.array(self.dist_fit)[draws_tril_idx]) # (N,K,R)
4146
4178
  # er_t = self._compute_derivatives(br, draws_, brstd[:, draws_tril_idx,: ], self.dist_fit, draws_tril_idx)
4147
4179
  der_prod_r_t = dprod_r[:, draws_tril_idx, :] * \
4148
4180
  der_t * proba_n[:, None, :] # (N,K,R)
@@ -4209,12 +4241,12 @@ class ObjectiveFunction(object):
4209
4241
  else:
4210
4242
  grad_n = self._concat_gradients(
4211
4243
  (gr_f, gr_u, gr_s, gr_h, gr_hs, gr_d[:, None])) / Rlik # (N,K)
4212
- grad_n = np.nan_to_num(grad_n, nan=0, posinf=10000, neginf=-10000)
4213
- grad_n = np.clip(grad_n, -1000, 1000)
4244
+ grad_n = np.nan_to_num(grad_n, nan=0, posinf=1000, neginf=-1000)
4245
+ grad_n = np.clip(grad_n, -100, 100)
4214
4246
  n = np.shape(grad_n)[0]
4215
4247
  # subtract out mean gradient value
4216
- # grad_n_sub = grad_n-(np.sum(grad_n, axis=0)/n)
4217
- # grad_n = grad_n_sub
4248
+ grad_n_sub = grad_n-(np.sum(grad_n, axis=0)/n)
4249
+ grad_n = grad_n_sub
4218
4250
  grad = grad_n.sum(axis=0)
4219
4251
  return grad, grad_n
4220
4252
 
@@ -4574,7 +4606,7 @@ class ObjectiveFunction(object):
4574
4606
  penalty = self.regularise_l2(betas)
4575
4607
 
4576
4608
  if not np.isreal(loglik):
4577
- loglik = - 1000000000.0
4609
+ loglik = - 10000000.0
4578
4610
 
4579
4611
  output = (-loglik + penalty,)
4580
4612
  if return_gradient:
@@ -4817,7 +4849,7 @@ class ObjectiveFunction(object):
4817
4849
  proba.append(dev.to_cpu(proba_))
4818
4850
 
4819
4851
  lik = np.stack(proba).sum(axis=0) / R # (N, )
4820
- lik = np.clip(lik, min_comp_val, 10000)
4852
+ lik = np.clip(lik, min_comp_val, 1000)
4821
4853
  # lik = np.nan_to_num(lik, )
4822
4854
  loglik = np.log(lik)
4823
4855
  llf_main = loglik
@@ -5435,7 +5467,7 @@ class ObjectiveFunction(object):
5435
5467
 
5436
5468
 
5437
5469
  sol = Solution()
5438
- log_ll = 10.0 ** 9
5470
+
5439
5471
  tol = {'ftol': 1e-8, 'gtol': 1e-6}
5440
5472
  is_delete = 0
5441
5473
  dispersion = mod.get('dispersion')
@@ -5793,7 +5825,7 @@ class ObjectiveFunction(object):
5793
5825
  initial_fit_beta = betas_est.x
5794
5826
  parmas = np.append(initial_fit_beta, nb_parma)
5795
5827
  self.nb_parma = nb_parma
5796
- print(f'neg binomi,{self.nb_parma}')
5828
+ #print(f'neg binomi,{self.nb_parma}')
5797
5829
  betas_est = self._minimize(self._loglik_gradient, initial_fit_beta, args=(
5798
5830
  X, y, draws, X, Xr, self.batch_size, self.grad_yes, self.hess_yes, dispersion, 0, False, 0,
5799
5831
  self.rdm_cor_fit, None, None, draws_grouped, XG, mod),
@@ -5801,7 +5833,7 @@ class ObjectiveFunction(object):
5801
5833
  options={'gtol': tol['gtol']}, bounds=bounds,
5802
5834
  hess_calc=True if method2 == 'Nelder-Mead-BFGS' else False)
5803
5835
 
5804
- print('refit with estimation of NB')
5836
+ #print('refit with estimation of NB')
5805
5837
  # self.numerical_hessian_calc = True
5806
5838
  if self.numerical_hessian_calc:
5807
5839
  try:
@@ -6184,6 +6216,7 @@ class ObjectiveFunction(object):
6184
6216
  df_test[:, :, idx], model_nature.get('transformations')[idx] = self.transformer(
6185
6217
  t, idx, df_test[:, :, idx])
6186
6218
  if np.max(df_tf[:, :, idx]) >= 77000:
6219
+ #TODO need to normalise the data
6187
6220
 
6188
6221
  print('should not be possible')
6189
6222
 
@@ -6242,7 +6275,7 @@ class ObjectiveFunction(object):
6242
6275
  model_nature['XH'] = XH
6243
6276
  X_test = None
6244
6277
  if np.isin(X, [np.inf, -np.inf, None, np.nan]).any(): # type ignore
6245
- raise Exception('there is some kind of error')
6278
+ raise Exception('there is some kind of error in X')
6246
6279
 
6247
6280
  # numpy data setup fpr estimation
6248
6281
  indices2 = self.get_named_indices(self.rdm_fit)
@@ -6393,6 +6426,53 @@ class ObjectiveFunction(object):
6393
6426
 
6394
6427
  return obj_1, model_nature
6395
6428
 
6429
+ def get_X_tril(self):
6430
+ '''For correlations find the repeating terms'''
6431
+ varnames = self.none_join([self.rdm_grouped_fit, self.rdm_fit, self.rdm_cor_fit])
6432
+ rv_count_all = 0
6433
+ chol_count = 0
6434
+ rv_count = 0
6435
+ corr_indices = []
6436
+ rv_indices = []
6437
+ for ii, var in enumerate(varnames): # TODO: BUGFIXf
6438
+ if var in self.none_handler(self.rdm_cor_fit):
6439
+ is_correlated = True
6440
+ else:
6441
+ is_correlated = False
6442
+
6443
+ rv_count_all += 1
6444
+ if is_correlated:
6445
+ chol_count += 1
6446
+ else:
6447
+ rv_count += 1
6448
+
6449
+ if var in self.none_handler(self.rdm_cor_fit):
6450
+
6451
+ corr_indices.append(rv_count_all - 1) # TODO: what does tis do
6452
+
6453
+ else:
6454
+ rv_indices.append(rv_count_all - 1)
6455
+
6456
+ # for s.d.: gr_w = (Obs prob. minus predicted probability) * obs. var * random draw
6457
+ draws_tril_idx = np.array([corr_indices[j]
6458
+ for i in range(len(self.none_handler(self.rdm_cor_fit)))
6459
+ for j in range(i + 1)]) # varnames pos.
6460
+ X_tril_idx = np.array([corr_indices[i]
6461
+ for i in range(len(self.none_handler(self.rdm_cor_fit)))
6462
+ for j in range(i + 1)])
6463
+ # Find the s.d. for random variables that are not correlated
6464
+ var_uncor = self.none_join([self.rdm_grouped_fit, self.rdm_fit])
6465
+ range_var = [x for x in
6466
+ range(len(self.none_handler(var_uncor)))]
6467
+ range_var = sorted(range_var)
6468
+ draws_tril_idx = np.array(np.concatenate((range_var, draws_tril_idx)))
6469
+ X_tril_idx = np.array(np.concatenate((range_var, X_tril_idx)))
6470
+ draws_tril_idx = draws_tril_idx.astype(int)
6471
+ X_tril_idx = X_tril_idx.astype(int)
6472
+ return X_tril_idx
6473
+
6474
+
6475
+
6396
6476
  def modifyn(self, data):
6397
6477
  select_data = self._characteristics_names
6398
6478
  alpha = np.isin(select_data, [item.split(':')[0] for item in data['fixed_fit']]).astype(int).tolist()
@@ -6600,23 +6680,35 @@ class ObjectiveFunction(object):
6600
6680
  # N, D = draws.shape[0], draws.shape[1]
6601
6681
  N, R, Kr = draws.shape[0], draws.shape[2], draws.shape[1]
6602
6682
  der = dev.np.ones((N, Kr, R), dtype=draws.dtype)
6603
- if len(self.none_handler(self.rdm_cor_fit)) == 0:
6604
- Br_come_one = self.Br.copy()
6605
- # Br_come_one =
6606
- else:
6607
6683
 
6608
- Br_come_one = self.Br.copy()
6609
6684
  # betas_random = self._transform_rand_betas(betas, betas_std, draws)
6610
6685
  #todo make sure this works for ln and truncated normal
6611
6686
  if any(set(distribution).intersection(['ln_normal', 'tn_normal'])):
6612
- print('check this, intesection shouldn not happen for all')
6687
+
6688
+ #print('check this, intesection shouldn not happen for all')
6689
+
6690
+ if der.shape[1] != draws.shape[1]:
6691
+ print('why')
6613
6692
  Br_come_one = self._transform_rand_betas(betas, betas_std, draws)
6693
+ if der.shape[1] != draws.shape[1]:
6694
+ print('why')
6695
+ #TODO need to get the stuction of the rdms
6614
6696
  for k, dist_k in enumerate(distribution):
6615
6697
  if dist_k == 'ln_normal':
6698
+ if der.shape[1] != draws.shape[1]:
6699
+ print('why')
6616
6700
  der[:, k, :] = Br_come_one[:, k, :]
6701
+ if der.shape[1] != draws.shape[1]:
6702
+ print('why')
6617
6703
  elif dist_k == 'tn_normal':
6704
+ if der.shape[1] != draws.shape[1]:
6705
+ print('why')
6618
6706
  der[:, k, :] = 1 * (Br_come_one[:, k, :] > 0)
6707
+ if der.shape[1] != draws.shape[1]:
6708
+ print('why')
6619
6709
 
6710
+ if der.shape[1] != draws.shape[1]:
6711
+ print('why')
6620
6712
  return der
6621
6713
 
6622
6714
  def _copy_size_display_as_ones(self, matrix):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: metacountregressor
3
- Version: 0.1.120
3
+ Version: 0.1.121
4
4
  Summary: Extensions for a Python package for estimation of count models.
5
5
  Home-page: https://github.com/zahern/CountDataEstimation
6
6
  Author: Zeke Ahern
@@ -4,17 +4,17 @@ metacountregressor/app_main.py,sha256=vY3GczTbGbBRalbzMkl_9jVW7RMgEOc6z2Dr1IZJv9
4
4
  metacountregressor/data_split_helper.py,sha256=M2fIMdIO8znUaYhx5wlacRyNWdQjNYu1z1wkE-kFUYU,3373
5
5
  metacountregressor/halton.py,sha256=jhovA45UBoZYU9g-hl6Lb2sBIx_ZBTNdPrpgkzR9fng,9463
6
6
  metacountregressor/helperprocess.py,sha256=Sc5gJ7ffFlkya5B5KQwE33xxXuIQyF6OaYtSikLa3pQ,12968
7
- metacountregressor/main.py,sha256=lHrj2Hvj2hTGi-2mLSbuGEHDDILl4V-ml9e9Y_Hjpts,20560
7
+ metacountregressor/main.py,sha256=37yw2weAhaDR-wH83QC4Jy8SeUFIHpxqhO9YPwgmRi4,20764
8
8
  metacountregressor/main_old.py,sha256=eTS4ygq27MnU-dZ_j983Ucb-D5XfbVF8OJQK2hVVLZc,24123
9
- metacountregressor/metaheuristics.py,sha256=UyUmHyuQd5vZ2wdaVL0dWpJfBOBdtCAqcA0GlFzouH8,105849
9
+ metacountregressor/metaheuristics.py,sha256=Kkx1Jfox6NBlm5zVrI26Vc_NI7NFQSS9dinrZU9SpV8,105871
10
10
  metacountregressor/pareto_file.py,sha256=whySaoPAUWYjyI8zo0hwAOa3rFk6SIUlHSpqZiLur0k,23096
11
11
  metacountregressor/pareto_logger__plot.py,sha256=mEU2QN4wmsM7t39GJ_XhJ_jjsdl09JOmG0U2jICrAkI,30037
12
12
  metacountregressor/setup.py,sha256=8w6IqX0tJsbYrOI1BJLIJCIvOnunKli5I9fsF5PhHv4,919
13
13
  metacountregressor/single_objective_finder.py,sha256=jVG7GJBqzSP4_riYr-kMMKy_LE3SlGmKMunNhHYxgRg,8011
14
- metacountregressor/solution.py,sha256=4pfpDcH38eTIGV7DIDL5ZOyB_ND-iDzod964-RBhC5o,274195
14
+ metacountregressor/solution.py,sha256=OJqB00cvGMLFei6RsjphPamOdLm3EWOOzK7k-uVbvFY,277671
15
15
  metacountregressor/test_generated_paper2.py,sha256=pwOoRzl1jJIIOUAAvbkT6HmmTQ81mwpsshn9SLdKOg8,3927
16
- metacountregressor-0.1.120.dist-info/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
17
- metacountregressor-0.1.120.dist-info/METADATA,sha256=ELYCjW0J_jaVjNgBhcEfj8TBwXLe4t2aO-UGyoEt1uI,23415
18
- metacountregressor-0.1.120.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
19
- metacountregressor-0.1.120.dist-info/top_level.txt,sha256=zGG7UC5WIpr76gsFUpwJ4En2aCcoNTONBaS3OewwjR0,19
20
- metacountregressor-0.1.120.dist-info/RECORD,,
16
+ metacountregressor-0.1.121.dist-info/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
17
+ metacountregressor-0.1.121.dist-info/METADATA,sha256=c-c5mHUC6gdf2JEq-DWBuw0F1gAp-Cq0pQeYVLKG_y8,23415
18
+ metacountregressor-0.1.121.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
19
+ metacountregressor-0.1.121.dist-info/top_level.txt,sha256=zGG7UC5WIpr76gsFUpwJ4En2aCcoNTONBaS3OewwjR0,19
20
+ metacountregressor-0.1.121.dist-info/RECORD,,