Add nodes/leaves/depth to oc1 process

This commit is contained in:
2021-04-11 11:22:04 +02:00
parent 4d8f060b0e
commit b19309cc79
4 changed files with 66 additions and 55 deletions

View File

@@ -5,7 +5,7 @@ from experimentation.Database import MySQL
from statistics import mean, stdev
def store_result(database, dataset, accuracy, time_spent):
def store_result(database, dataset, accuracy, time_spent, nodes, leaves, depth):
attributes = [
"date",
"time",
@@ -19,6 +19,9 @@ def store_result(database, dataset, accuracy, time_spent):
"time_spent",
"time_spent_std",
"parameters",
"nodes",
"leaves",
"depth"
]
command_insert = (
"insert into results ("
@@ -43,6 +46,9 @@ def store_result(database, dataset, accuracy, time_spent):
mean(time_spent),
stdev(time_spent),
"{}",
nodes,
leaves,
depth
)
print(command_insert % values, file=database)
#cursor = database.cursor()
@@ -58,12 +64,15 @@ def get_result(name):
result_file = open(filename, "r")
lines = result_file.readlines()
result_file.close()
data = lines[-6:-1]
data = lines[-9:-4]
for line in data:
acc, time_s = line.split("***")[2:4]
accuracy.append(float(acc))
time_spent.append(float(time_s))
return accuracy, time_spent
leaves = float(lines[-3:-2][0].split("=")[1])
nodes = float(lines[-2:-1][0].split("=")[1])
depth = float(lines[-1:][0].split("=")[1])
return accuracy, time_spent, nodes, leaves, depth
#dbh = MySQL()
@@ -72,14 +81,15 @@ database = open("oc1.sql", "w")
dt = Datasets(False, False, "tanveer")
for dataset in dt:
print(f"Processing {dataset[0]:30s}", end=" ")
accuracy, time_spent = get_result(dataset[0])
accuracy, time_spent, nodes, leaves, depth = get_result(dataset[0])
accuracy_mean, accuracy_std = mean(accuracy), stdev(accuracy)
time_mean, time_std = mean(time_spent), stdev(time_spent)
print(
f"nodes={nodes:6.2f} leaves={leaves:6.2f} depth={depth:5.2f} "
f"accuracy=[{accuracy_mean:05.3f}\u00B1{accuracy_std:05.3f}] "
f"time=[{time_mean:05.3f}\u00B1{time_std:05.3f}] "
f"elements=[{len(accuracy)} {len(time_spent)}]"
)
store_result(database, dataset[0], accuracy, time_spent)
store_result(database, dataset[0], accuracy, time_spent, nodes, leaves, depth)
#dbh.close()
database.close