def remote_predict(models, test_reader, prediction_file, api, resume=False, verbosity=True, output_path=None, method=PLURALITY_CODE, tags="", session_file=None, log=None, debug=False, prediction_info=None): """Retrieve predictions remotely, combine them and save predictions to file """ predictions_files = [] prediction_args = {"tags": tags} test_set_header = test_reader.has_headers() if output_path is None: output_path = u.check_dir(prediction_file) message_logged = False for model in models: model = bigml.api.get_model_id(model) predictions_file = get_predictions_file_name(model, output_path) predictions_files.append(predictions_file) if (not resume or not c.checkpoint(c.are_predictions_created, predictions_file, test_reader.number_of_tests(), debug=debug)): if not message_logged: message = u.dated("Creating remote predictions.") u.log_message(message, log_file=session_file, console=verbosity) message_logged = True predictions_file = csv.writer(open(predictions_file, 'w', 0), lineterminator="\n") for input_data in test_reader: prediction = api.create_prediction(model, input_data, by_name=test_set_header, wait_time=0, args=prediction_args) u.check_resource_error(prediction, "Failed to create prediction: ") u.log_message("%s\n" % prediction['resource'], log_file=log) prediction_row = u.prediction_to_row(prediction) predictions_file.writerow(prediction_row) u.combine_votes(predictions_files, Model(models[0]).to_prediction, prediction_file, method, prediction_info)
def remote_predict(models, test_reader, prediction_file, api, resume=False, verbosity=True, output_path=None, method=PLURALITY_CODE, tags="", session_file=None, log=None, debug=False, prediction_info=None): """Retrieve predictions remotely, combine them and save predictions to file """ predictions_files = [] prediction_args = { "tags": tags } test_set_header = test_reader.has_headers() if output_path is None: output_path = u.check_dir(prediction_file) message_logged = False for model in models: model = bigml.api.get_model_id(model) predictions_file = get_predictions_file_name(model, output_path) predictions_files.append(predictions_file) if (not resume or not c.checkpoint(c.are_predictions_created, predictions_file, test_reader.number_of_tests(), debug=debug)): if not message_logged: message = u.dated("Creating remote predictions.") u.log_message(message, log_file=session_file, console=verbosity) message_logged = True predictions_file = csv.writer(open(predictions_file, 'w', 0), lineterminator="\n") for input_data in test_reader: prediction = api.create_prediction(model, input_data, by_name=test_set_header, wait_time=0, args=prediction_args) u.check_resource_error(prediction, "Failed to create prediction: ") u.log_message("%s\n" % prediction['resource'], log_file=log) prediction_row = u.prediction_to_row(prediction) predictions_file.writerow(prediction_row) u.combine_votes(predictions_files, Model(models[0]).to_prediction, prediction_file, method, prediction_info)
def remote_predict_ensemble(ensemble_id, test_reader, prediction_file, api, resume=False, verbosity=True, output_path=None, method=PLURALITY_CODE, tags="", session_file=None, log=None, debug=False, prediction_info=None): """Retrieve predictions remotely and save predictions to file """ prediction_args = {"tags": tags, "combiner": method} test_set_header = test_reader.has_headers() if output_path is None: output_path = u.check_dir(prediction_file) if (not resume or not c.checkpoint(c.are_predictions_created, prediction_file, test_reader.number_of_tests(), debug=debug)): message = u.dated("Creating remote predictions.") u.log_message(message, log_file=session_file, console=verbosity) predictions_file = csv.writer(open(prediction_file, 'w', 0), lineterminator="\n") for input_data in test_reader: prediction = api.create_prediction(ensemble_id, input_data, by_name=test_set_header, wait_time=0, args=prediction_args) prediction = bigml.api.check_resource(prediction, api.get_prediction) u.check_resource_error(prediction, "Failed to create prediction: ") u.log_message("%s\n" % prediction['resource'], log_file=log) prediction_row = u.prediction_to_row(prediction, prediction_info) predictions_file.writerow(prediction_row)
def remote_predict(models, headers, output_path, number_of_tests, resume, verbosity, test_reader, exclude, fields, api, prediction_file, method, tags, objective_field, session_file, test_set_header, log, debug): """Retrieve predictions remotely, combine them and save predictions to file """ predictions_files = [] prediction_args = { "tags": tags } for model in models: if not isinstance(model, basestring) and 'resource' in model: model = model['resource'] predictions_file = get_predictions_file_name(model, output_path) predictions_files.append(predictions_file) if (not resume or not u.checkpoint(u.are_predictions_created, predictions_file, number_of_tests, debug=debug)): message = u.dated("Creating remote predictions.\n") u.log_message(message, log_file=session_file, console=verbosity) predictions_file = csv.writer(open(predictions_file, 'w', 0)) for row in test_reader: for index in exclude: del row[index] input_data = fields.pair(row, headers, objective_field) prediction = api.create_prediction(model, input_data, by_name=test_set_header, wait_time=0, args=prediction_args) u.log_message("%s\n" % prediction['resource'], log_file=log) prediction_row = u.prediction_to_row(prediction) predictions_file.writerow(prediction_row) u.combine_votes(predictions_files, Model(models[0]).to_prediction, prediction_file, method)
def remote_predict_ensemble(ensemble_id, test_reader, prediction_file, api, resume=False, verbosity=True, output_path=None, method=PLURALITY_CODE, tags="", session_file=None, log=None, debug=False, prediction_info=None): """Retrieve predictions remotely and save predictions to file """ prediction_args = { "tags": tags, "combiner": method } test_set_header = test_reader.has_headers() if output_path is None: output_path = u.check_dir(prediction_file) if (not resume or not c.checkpoint(c.are_predictions_created, prediction_file, test_reader.number_of_tests(), debug=debug)): message = u.dated("Creating remote predictions.") u.log_message(message, log_file=session_file, console=verbosity) predictions_file = csv.writer(open(prediction_file, 'w', 0), lineterminator="\n") for input_data in test_reader: prediction = api.create_prediction(ensemble_id, input_data, by_name=test_set_header, wait_time=0, args=prediction_args) prediction = bigml.api.check_resource(prediction, api.get_prediction) u.check_resource_error(prediction, "Failed to create prediction: ") u.log_message("%s\n" % prediction['resource'], log_file=log) prediction_row = u.prediction_to_row(prediction, prediction_info) predictions_file.writerow(prediction_row)