def shell_execute(command, output, test=None, options=None, data=None, test_split=None): """Excute bigmler command in shell """ command = check_debug(command) world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call(command, shell=True) if retcode < 0: assert False else: if test is not None: world.test_lines = file_number_of_lines(test) world.test_lines -= 1 # prediction file has headers in it, # so first line must be ignored world.prediction_header = options is not None and \ options.find('--prediction-header') > -1 if test_split is not None: data_lines = file_number_of_lines(data) - 1 world.test_lines = int(data_lines * float(test_split)) world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def shell_execute(command, output, test=None, options=None, data=None, test_split=None): """Excute bigmler command in shell """ command = check_debug(command) world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call(command, shell=True) if retcode < 0: assert False else: if test is not None: world.test_lines = file_number_of_lines(test) if options is None or options.find('--prediction-header') == -1: # test file has headers in it, so first line must be ignored world.test_lines -= 1 if test_split is not None: data_lines = file_number_of_lines(data) - 1 world.test_lines = int(data_lines * float(test_split)) world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_resources_and_ensembles_from_dataset( step, multi_label=None, number_of_models=None, test=None, output=None ): if test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) multi_label = "" if multi_label is None else " --multi-label " test = res_filename(test) try: command = ( "bigmler " + multi_label + "--dataset " + world.dataset["resource"] + " --number-of-models " + str(number_of_models) + " --test " + test + " --store --output " + output ) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_predict_ml_from_model_tag_with_labels(step, labels=None, tag=None, test=None, output=None): if tag is None or labels is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) test = res_filename(test) try: command = ( "bigmler --multi-label --model-tag " + tag + " --labels " + labels + " --test " + test + " --store --output " + output + " --max-batch-models 1" ) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_all_resources_with_options(step, data=None, test=None, output=None, options=""): if data is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: command = ( "bigmler --train " + data + " --test " + test + " --store --output " + output + " --max-batch-models 1 " + options ) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored if options.find("--prediction-header") == -1: world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_find_predictions_files(step, directory1=None, directory2=None, output=None, method=None): if directory1 is None or directory2 is None or output is None or method is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call( "bigmler --combine-votes " + directory1 + "," + directory2 + " --store --output " + output + " --method " + method, shell=True, ) if retcode < 0: assert False else: world.test_lines = file_number_of_lines("%s%spredictions.csv" % (directory1, os.sep)) world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_resources_from_ensemble_generic(step, number_of_models=None, no_replacement="", test=None, output=None): if number_of_models is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call( "bigmler --dataset " + world.dataset["resource"] + " --test " + test + " --number-of-models " + str(number_of_models) + " --tag my_ensemble --store --output " + output + no_replacement, shell=True, ) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output world.number_of_models = int(number_of_models) assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_resources_from_ensemble_generic(step, number_of_models=None, no_replacement="", test=None, output=None): if number_of_models is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: command = ("bigmler --dataset " + world.dataset['resource'] + " --test " + test + " --number-of-models " + str(number_of_models) + " --tag my_ensemble --store" + " --output " + output + no_replacement) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output world.number_of_models = int(number_of_models) assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_resources_and_ensembles_from_dataset(step, multi_label=None, number_of_models=None, test=None, output=None): if test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) multi_label = "" if multi_label is None else " --multi-label " test = res_filename(test) try: command = ("bigmler " + multi_label + "--dataset " + world.dataset['resource'] + " --number-of-models " + str(number_of_models) + " --test " + test + " --store --output " + output) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_all_ml_resources(step, tag=None, label_separator=None, number_of_labels=None, data=None, training_separator=None, test=None, output=None): if tag is None or label_separator is None or training_separator is None or number_of_labels is None or data is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) world.number_of_models = int(number_of_labels) test = res_filename(test) try: command = ("bigmler --multi-label --train " + res_filename(data) + " --label-separator \"" + label_separator + "\" --training-separator \"" + training_separator + "\" --test " + test + " --store --output " + output + " --tag " + tag + " --max-batch-models 1") command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_all_mc_resources(step, data, max_categories=None, objective=None, test=None, output=None): if max_categories is None or test is None or output is None or objective is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) test = res_filename(test) try: command = ( "bigmler --train " + res_filename(data) + " --max-categories " + max_categories + " --objective " + objective + " --test " + test + " --store --output " + output ) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def shell_execute(command, output, test=None, options=None, test_rows=None, project=True): """Excute bigmler command in shell """ command = check_debug(command, project=project) world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call(command, shell=True) if retcode < 0: assert False else: if test is not None: world.test_lines = file_number_of_lines(test) if options is None or \ options.find('--prediction-header') == -1: # test file has headers in it, so first line must be ignored world.test_lines -= 1 elif test_rows is not None: world.test_lines = test_rows if options is not None and \ options.find('--prediction-header') > -1: world.test_lines += 1 elif options is not None and \ options.find('--prediction-header') > -1: world.test_lines += 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_all_mc_resources_from_source(step, max_categories=None, objective=None, test=None, output=None): if max_categories is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) test = res_filename(test) try: command = ("bigmler --source " + world.source['resource'] + " --max-categories " + max_categories + " --objective " + objective + " --test " + test + " --store --output " + output) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def shell_execute(command, output, test=None, options=None, test_rows=None, project=True): """Excute bigmler command in shell """ command = check_debug(command, project=project) world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call(command, shell=True) if retcode < 0: assert False else: if test is not None: world.test_lines = file_number_of_lines(test) if options is None or \ options.find('--projection-header') == -1: # test file has headers in it, so first line must be ignored world.test_lines -= 1 elif test_rows is not None: world.test_lines = test_rows if options is not None and \ options.find('--projection-header') > -1: world.test_lines += 1 elif options is not None and \ options.find('--projection-header') > -1: world.test_lines += 1 world.output = output except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_resources_from_model(step, test=None, output=None): if test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: retcode = check_call( "bigmler --model " + world.model["resource"] + " --test " + test + " --store --output " + output + " --max-batch-models 1", shell=True, ) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_predict_ml_from_model_tag_with_labels(step, labels=None, tag=None, test=None, output=None): if tag is None or labels is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) test = res_filename(test) try: command = ("bigmler --multi-label --model-tag " + tag + " --labels " + labels + " --test " + test + " --store --output " + output + " --max-batch-models 1") command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def number_of_rows(self): """Returns the number of rows in the test file """ rows = file_number_of_lines(self.training_set) if self.training_set_header: rows -= 1 return rows
def number_of_tests(self): """Returns the number of tests in the test file """ tests = file_number_of_lines(self.test_set) if self.test_set_header: tests -= 1 return tests
def i_create_resources_from_models_file(step, multi_label=None, models_file=None, test=None, output=None): if models_file is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) multi_label = "" if multi_label is None else " --multi-label " try: retcode = check_call( "bigmler " + multi_label + "--models " + models_file + " --test " + test + " --store --output " + output, shell=True, ) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_create_all_mc_resources_from_models(step, models_file=None, test=None, output=None): if models_file is None or test is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: command = ("bigmler --models " + models_file + " --method combined --test " + test + " --store --output " + output) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines(test) # test file has headers in it, so first line must be ignored world.test_lines -= 1 world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)
def i_find_predictions_files(step, directory1=None, directory2=None, output=None): if directory1 is None or directory2 is None or output is None: assert False world.directory = os.path.dirname(output) world.folders.append(world.directory) try: command = ("bigmler --combine-votes " + directory1 + "," + directory2 + " --store --output " + output) command = check_debug(command) retcode = check_call(command, shell=True) if retcode < 0: assert False else: world.test_lines = file_number_of_lines("%s%spredictions.csv" % (directory1, os.sep)) world.output = output assert True except (OSError, CalledProcessError, IOError) as exc: assert False, str(exc)