metacountregressor 0.1.136__tar.gz → 0.1.138__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/PKG-INFO +1 -1
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/helperprocess.py +50 -6
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/metaheuristics.py +14 -4
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/solution.py +6 -6
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/PKG-INFO +1 -1
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/LICENSE.txt +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/README.rst +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/__init__.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/_device_cust.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/app_main.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/data_split_helper.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/halton.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/main.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/main_old.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/pareto_file.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/pareto_logger__plot.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/setup.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/single_objective_finder.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/test_generated_paper2.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/SOURCES.txt +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/dependency_links.txt +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/not-zip-safe +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/requires.txt +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/top_level.txt +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/setup.cfg +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/setup.py +0 -0
- {metacountregressor-0.1.136 → metacountregressor-0.1.138}/tests/test.py +0 -0
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/helperprocess.py
RENAMED
@@ -1,12 +1,29 @@
|
|
1
|
+
from os.path import exists
|
2
|
+
|
1
3
|
import numpy as np
|
2
4
|
import pandas as pd
|
3
5
|
import csv
|
4
6
|
import matplotlib.pyplot as plt
|
5
7
|
from scipy import stats as st
|
6
8
|
from sklearn.preprocessing import StandardScaler
|
9
|
+
from win32comext.shell.demos.IActiveDesktop import existing_item
|
7
10
|
|
8
11
|
plt.style.use('https://github.com/dhaitz/matplotlib-stylesheets/raw/master/pitayasmoothie-dark.mplstyle')
|
9
12
|
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
from itertools import product
|
18
|
+
|
19
|
+
# Function to create a list of dictionaries from a parameter grid
|
20
|
+
def generate_param_combinations(param_grid):
|
21
|
+
keys = param_grid.keys()
|
22
|
+
values = param_grid.values()
|
23
|
+
combinations = [dict(zip(keys, v)) for v in product(*values)]
|
24
|
+
return combinations
|
25
|
+
|
26
|
+
|
10
27
|
##Select the best Features Based on RF
|
11
28
|
def select_features(X_train, y_train, n_f=16):
|
12
29
|
try:
|
@@ -179,17 +196,38 @@ config = {
|
|
179
196
|
}
|
180
197
|
}
|
181
198
|
'''
|
182
|
-
def
|
199
|
+
def null_handler(vari):
|
200
|
+
if vari in locals():
|
201
|
+
return vari
|
202
|
+
else:
|
203
|
+
print(f'{vari} does not exist, setting None..')
|
204
|
+
return None
|
205
|
+
|
206
|
+
|
207
|
+
def set_up_analyst_constraints(data_characteristic, model_terms, variable_decisions_alt = None):
|
208
|
+
|
209
|
+
|
183
210
|
name_data_characteristics = data_characteristic.columns.tolist()
|
184
|
-
|
185
|
-
|
211
|
+
# Get non-None values as a list
|
212
|
+
non_none_terms = [value for value in model_terms.values() if value is not None]
|
213
|
+
# how to make name_data_characteristics - non_none_terms
|
214
|
+
|
215
|
+
result = [item for item in name_data_characteristics if item not in non_none_terms]
|
216
|
+
distu = ['Normal', 'Uniform', 'Triangular']
|
217
|
+
tra = ['no', 'sqrt', 'arcsinh']
|
218
|
+
if model_terms.get('grouped') is None:
|
219
|
+
print('cant have grouped rpm, removing level 4 from every item')
|
220
|
+
MAKE_ALL_4_FALSE = True
|
221
|
+
else:
|
222
|
+
MAKE_ALL_4_FALSE = False
|
223
|
+
|
186
224
|
variable_decisions = {
|
187
225
|
name: {
|
188
226
|
'levels': list(range(6)),
|
189
227
|
'distributions': distu,
|
190
228
|
'transformations': tra
|
191
229
|
}
|
192
|
-
for name in
|
230
|
+
for name in result
|
193
231
|
}
|
194
232
|
# Override elements in the original dictionary with the alt dictionary
|
195
233
|
if variable_decisions_alt is not None:
|
@@ -208,7 +246,11 @@ def set_up_analyst_constraints(data_characteristic, variable_decisions_alt = Non
|
|
208
246
|
|
209
247
|
# Add levels as True/False for Level 0 through Level 5
|
210
248
|
for level in range(6): # Assuming Level 0 to Level 5
|
211
|
-
|
249
|
+
|
250
|
+
if level == 4 and MAKE_ALL_4_FALSE:
|
251
|
+
row[f'Level {level}'] = False
|
252
|
+
else:
|
253
|
+
row[f'Level {level}'] = level in details['levels']
|
212
254
|
|
213
255
|
# Add distributions and transformations directly
|
214
256
|
row['distributions'] = details['distributions']
|
@@ -218,7 +260,9 @@ def set_up_analyst_constraints(data_characteristic, variable_decisions_alt = Non
|
|
218
260
|
|
219
261
|
# Create the DataFrame
|
220
262
|
df = pd.DataFrame(rows)
|
221
|
-
|
263
|
+
|
264
|
+
data_new = data_characteristic.rename(columns={v: k for k, v in model_terms.items() if v in data_characteristic.columns})
|
265
|
+
return df, data_new
|
222
266
|
|
223
267
|
# Function to guess Low, Medium, High ranges
|
224
268
|
def guess_low_medium_high(column_name, series):
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/metaheuristics.py
RENAMED
@@ -787,7 +787,7 @@ class SimulatedAnnealing(object):
|
|
787
787
|
self.accept = 0
|
788
788
|
self.profiler = []
|
789
789
|
self.update_t = self.cooling_linear_m
|
790
|
-
self.
|
790
|
+
self.get_directory()
|
791
791
|
self._crossover_perc = float(kwargs.get('_crossover_perc', 0.2)) or float(kwargs.get('_cr', 0.2))
|
792
792
|
self._obj_fun = objective_function
|
793
793
|
if objective_function.is_multi: # TODO Define more specific objectives in the intialiser
|
@@ -801,7 +801,7 @@ class SimulatedAnnealing(object):
|
|
801
801
|
self.pf = Pareto(self.obj_1, self.obj_2, False)
|
802
802
|
self._sa_memory = list()
|
803
803
|
|
804
|
-
def
|
804
|
+
def get_directory(self):
|
805
805
|
# checking if the directory demo_folder2
|
806
806
|
# exist or not.
|
807
807
|
if not os.path.isdir(self.instance_number):
|
@@ -1237,6 +1237,16 @@ class HarmonySearch(object):
|
|
1237
1237
|
Initialize HS with the specified objective function. Note that this objective function must implement ObjectiveFunctionInterface.
|
1238
1238
|
"""
|
1239
1239
|
self._obj_fun = objective_function
|
1240
|
+
## NEW CODE, TRYING TO EXCTACT OUT THE PARAMATERS
|
1241
|
+
self._hms = kwargs.get('_hms', 20)
|
1242
|
+
self._par = kwargs.get(_'par', .30)
|
1243
|
+
self.F = kwargs.get('_AI', 2) # mutation scale
|
1244
|
+
self.iter = kwargs.get('_max_iter', 10000)
|
1245
|
+
self.cr = kwargs.get('_crossover_perc') or kwargs.get('_cr', 0.2)
|
1246
|
+
self.instance_number = str(kwargs.get('instance_number', 1))
|
1247
|
+
|
1248
|
+
|
1249
|
+
|
1240
1250
|
# for printing basics metrics
|
1241
1251
|
self.print_verbose = True
|
1242
1252
|
# harmony_memory stores the best hms harmonies
|
@@ -1245,7 +1255,7 @@ class HarmonySearch(object):
|
|
1245
1255
|
self._harmony_history = list()
|
1246
1256
|
# saves the best fitness
|
1247
1257
|
self.instance_number = str(objective_function.instance_number)
|
1248
|
-
self.
|
1258
|
+
self.get_directory()
|
1249
1259
|
self._harmony_trace_best = list()
|
1250
1260
|
self._harmony_trace_incumbent = list()
|
1251
1261
|
if self._obj_fun.is_multi: # TODO Define more specific objectives in the intialiser
|
@@ -1261,7 +1271,7 @@ class HarmonySearch(object):
|
|
1261
1271
|
|
1262
1272
|
self.pf = Pareto(self.obj_1, self.obj_2, False)
|
1263
1273
|
|
1264
|
-
def
|
1274
|
+
def get_directory(self):
|
1265
1275
|
# checking if the directory demo_folder2
|
1266
1276
|
# exist or not.
|
1267
1277
|
if not os.path.isdir(self.instance_number):
|
@@ -153,14 +153,14 @@ class ObjectiveFunction(object):
|
|
153
153
|
|
154
154
|
self.MAE = None
|
155
155
|
self.best_obj_1 = 1000000.0
|
156
|
-
self._obj_1 = 'bic'
|
157
|
-
self._obj_2 = 'MSE'
|
156
|
+
self._obj_1 = kwargs.get('_obj_1', 'bic')
|
157
|
+
self._obj_2 = kwargs.get('_obj_2', 'MSE')
|
158
158
|
self.numerical_hessian_calc = 0 # calculates hessian by statsmodels otherwise scipy
|
159
159
|
self.full_model = None
|
160
160
|
self.GP_parameter = 0
|
161
|
-
self.is_multi =
|
161
|
+
self.is_multi = kwargs.get('is_multi', False)
|
162
162
|
self.complexity_level = 6
|
163
|
-
self._max_iterations_improvement =
|
163
|
+
self._max_iterations_improvement = 10000
|
164
164
|
self.generated_sln = set()
|
165
165
|
self.ave_mae = 0
|
166
166
|
# defalt paramaters for hs #TODO unpack into harmony search class
|
@@ -168,7 +168,7 @@ class ObjectiveFunction(object):
|
|
168
168
|
self._hms = 20
|
169
169
|
self._max_time = 60 * 60 * 24
|
170
170
|
self._hmcr = .5
|
171
|
-
self._par = 0.3
|
171
|
+
self._par = 0.3 #dont think this gets useted
|
172
172
|
self._mpai = 1
|
173
173
|
self._max_imp = 100000
|
174
174
|
self._WIC = 1000 # Number of Iterations without Multiobjective Improvement #tod chuck into solution
|
@@ -395,7 +395,7 @@ class ObjectiveFunction(object):
|
|
395
395
|
|
396
396
|
|
397
397
|
|
398
|
-
self.Ndraws = 200
|
398
|
+
self.Ndraws = kwargs.get('Ndraws', 200)
|
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
|
File without changes
|
File without changes
|
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/_device_cust.py
RENAMED
File without changes
|
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/data_split_helper.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor/pareto_logger__plot.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/not-zip-safe
RENAMED
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/requires.txt
RENAMED
File without changes
|
{metacountregressor-0.1.136 → metacountregressor-0.1.138}/metacountregressor.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|