Populate results with mean and std deviation
This commit is contained in:
parent
9ab8ec3d8a
commit
3e0dbb9168
|
@ -12,41 +12,67 @@ def file_list(path):
|
||||||
return file_list
|
return file_list
|
||||||
|
|
||||||
|
|
||||||
def create_dataframes(datasets):
|
def create_dataframes():
|
||||||
greedy = DataFrame(columns=["dataset", "distancia"])
|
greedy = DataFrame(columns=["dataset", "distancia", "desviacion"])
|
||||||
local = DataFrame(columns=["dataset", "distancia"])
|
local = DataFrame(columns=["dataset", "distancia", "desviacion"])
|
||||||
greedy["dataset"] = datasets
|
|
||||||
local["dataset"] = datasets
|
|
||||||
return greedy, local
|
return greedy, local
|
||||||
|
|
||||||
|
|
||||||
def process_output(results):
|
def process_output(results):
|
||||||
for line in results:
|
distances = []
|
||||||
if line.startswith(bytes("Total distance:", encoding="utf-8")):
|
for element in results:
|
||||||
line_elements = line.split(sep=bytes(":", encoding="utf-8"))
|
for line in element:
|
||||||
distance = float(line_elements[1])
|
if line.startswith(bytes("Total distance:", encoding="utf-8")):
|
||||||
return distance
|
line_elements = line.split(sep=bytes(":", encoding="utf-8"))
|
||||||
|
distances.append(float(line_elements[1]))
|
||||||
|
return distances
|
||||||
|
|
||||||
|
|
||||||
|
def populate_dataframes(greedy, local, greedy_list, local_list, dataset):
|
||||||
|
greedy_results = process_output(greedy_list)
|
||||||
|
local_results = process_output(local_list)
|
||||||
|
greedy_dict = {
|
||||||
|
"dataset": dataset,
|
||||||
|
"distancia": mean(greedy_results),
|
||||||
|
"desviacion": std(greedy_results),
|
||||||
|
}
|
||||||
|
local_dict = {
|
||||||
|
"dataset": dataset,
|
||||||
|
"distancia": mean(local_results),
|
||||||
|
"desviacion": std(local_results),
|
||||||
|
}
|
||||||
|
greedy = greedy.append(greedy_dict, ignore_index=True)
|
||||||
|
local = local.append(local_dict, ignore_index=True)
|
||||||
|
return greedy, local
|
||||||
|
|
||||||
|
|
||||||
def script_execution(filenames, greedy, local, iterations=3):
|
def script_execution(filenames, greedy, local, iterations=3):
|
||||||
script = "src/main.py"
|
script = "src/main.py"
|
||||||
for dataset in filenames:
|
for dataset in filenames:
|
||||||
|
print(f"Running on dataset {dataset}")
|
||||||
greedy_list = []
|
greedy_list = []
|
||||||
local_list = []
|
local_list = []
|
||||||
for _ in range(iterations):
|
for _ in range(iterations):
|
||||||
greedy_cmd = run(
|
greedy_cmd = run(
|
||||||
[executable, script, dataset, "greedy"], capture_output=True
|
[executable, script, dataset, "greedy"], capture_output=True
|
||||||
).stdout.splitlines()
|
).stdout.splitlines()
|
||||||
greedy_list.append(greedy_cmd)
|
|
||||||
local_cmd = run(
|
local_cmd = run(
|
||||||
[executable, script, dataset, "local"], capture_output=True
|
[executable, script, dataset, "local"], capture_output=True
|
||||||
).stdout.splitlines()
|
).stdout.splitlines()
|
||||||
|
greedy_list.append(greedy_cmd)
|
||||||
local_list.append(local_cmd)
|
local_list.append(local_cmd)
|
||||||
greedy.loc[greedy["dataset"] == dataset, ["distancia"]] = mean(greedy_list)
|
greedy, local = populate_dataframes(
|
||||||
local.loc[local["dataset"] == dataset, ["distancia"]] = mean(local_list)
|
greedy, local, greedy_list, local_list, dataset
|
||||||
|
)
|
||||||
|
return greedy, local
|
||||||
|
|
||||||
|
|
||||||
|
def export_results(greedy, local):
|
||||||
|
greedy.to_excel()
|
||||||
|
local.to_excel()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
datasets = file_list(path="data/*.txt")
|
datasets = file_list(path="data/*.txt")
|
||||||
greedy, local = create_dataframes(datasets)
|
greedy, local = create_dataframes()
|
||||||
script_execution(filenames=datasets, greedy=greedy, local=local)
|
populated_greedy, populated_local = script_execution(datasets, greedy, local)
|
||||||
|
|
Loading…
Reference in New Issue