Updated v2 to use f1 score and dont retrain model
This commit is contained in:
@@ -126,7 +126,7 @@ def load_previous_results(filename):
|
||||
return results
|
||||
|
||||
def main_two_v2(model_type):
|
||||
seq_length = range(20,31, 10)
|
||||
seq_length = range(10,31, 5)
|
||||
for sequence_length in seq_length:
|
||||
for data_filename in os.listdir(dataset_path):
|
||||
timespan_id = hour_timespan_str
|
||||
@@ -156,13 +156,13 @@ def main_two_v2(model_type):
|
||||
user_data_train = prepare_user_data(tr)
|
||||
user_data_val = prepare_user_data(val)
|
||||
|
||||
best_models = train_models_v2(user_data_train, user_data_val,
|
||||
best_model = train_models_v2(user_data_train, user_data_val,
|
||||
sequence_length=sequence_length,
|
||||
model_type=model_type)
|
||||
|
||||
results = load_previous_results(result_filename_v2)
|
||||
results = pd.concat([results,
|
||||
evaluate_model_on_test_data(model=best_models[sequence_length]['model'],
|
||||
evaluate_model_on_test_data(model=best_model,
|
||||
test_df=te,
|
||||
sequence_length=sequence_length,
|
||||
time_span_id=timespan_id,
|
||||
@@ -259,8 +259,35 @@ def visualise_results_v1():
|
||||
# Fazit: keine eindeutig besseren Versionen erkennbar
|
||||
|
||||
|
||||
def visualise_results_v2():
|
||||
results = pd.DataFrame(json.load(open(result_filename_v2)))
|
||||
with_threshold = results[results[threshold_str] == with_threshold_str]
|
||||
without_threshold = results[results[threshold_str] == without_threshold_str]
|
||||
fig, axes = plt.subplots(2, 3)
|
||||
ax_col_id = 0
|
||||
ax_row_id = -1
|
||||
for timespan in [hour_timespan_str,min_timespan_str]:
|
||||
ax_row_id +=1
|
||||
for model in [model_type_lstm, model_type_bilstm, model_type_gru]:
|
||||
with_sub = with_threshold[(with_threshold[timespan_str] == timespan) & (with_threshold[model_type_str] == model)]
|
||||
without_sub = without_threshold[(without_threshold[timespan_str] == timespan) & (without_threshold[model_type_str] == model)]
|
||||
with_sub = with_sub.sort_values(sequence_length_str)
|
||||
without_sub = without_sub.sort_values(sequence_length_str)
|
||||
ax = axes[ax_row_id, ax_col_id]
|
||||
ax.set_title(model+' '+timespan)
|
||||
ax.plot(with_sub[sequence_length_str], with_sub[f1_string], label=with_threshold_str)
|
||||
ax.plot(without_sub[sequence_length_str], without_sub[f1_string], label=without_threshold_str)
|
||||
ax.legend()
|
||||
ax_col_id +=1
|
||||
ax_col_id %= 3
|
||||
fig.tight_layout()
|
||||
fig.savefig(figure_path+'v2_results.svg')
|
||||
# Fazit: keine eindeutig besseren Versionen erkennbar
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# main_two_v1()
|
||||
# visualise_results_v1()
|
||||
main_two_v2(model_type=model_type_gru)
|
||||
#visualise_results_v2()
|
||||
print('Done')
|
||||
|
||||
Reference in New Issue
Block a user