mirror of
https://github.com/Doctorado-ML/beflask.git
synced 2025-08-15 23:25:51 +00:00
Add fields to dataset table report
This commit is contained in:
BIN
app/app.db
BIN
app/app.db
Binary file not shown.
@@ -106,6 +106,7 @@ def report(file_name):
|
|||||||
os.chdir(current_user.benchmark.folder)
|
os.chdir(current_user.benchmark.folder)
|
||||||
back = request.args.get("url") or ""
|
back = request.args.get("url") or ""
|
||||||
back_name = request.args.get("url_name") or ""
|
back_name = request.args.get("url_name") or ""
|
||||||
|
app_config = dotenv_values(".env")
|
||||||
with open(os.path.join(Folders.results, file_name)) as f:
|
with open(os.path.join(Folders.results, file_name)) as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
try:
|
try:
|
||||||
@@ -121,6 +122,7 @@ def report(file_name):
|
|||||||
summary=summary,
|
summary=summary,
|
||||||
back=back,
|
back=back,
|
||||||
back_name=back_name,
|
back_name=back_name,
|
||||||
|
app_config=app_config,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
76
app/results/templates/_table_dataset.html
Normal file
76
app/results/templates/_table_dataset.html
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<table id="report-table"
|
||||||
|
class="table table-striped table-hover table-bordered bg-light"
|
||||||
|
data-toggle="table"
|
||||||
|
data-sticky-header="true"
|
||||||
|
data-sticky-header-offset-y="50"
|
||||||
|
data-sortable="true">
|
||||||
|
<thead>
|
||||||
|
<tr class="bg-primary text-white">
|
||||||
|
<th class="text-center" data-field="model" data-sortable="true">Model</th>
|
||||||
|
<th class="text-center" data-field="metric" data-sortable="true">Metric</th>
|
||||||
|
<th class="text-center" data-field="platform" data-sortable="true">Platform</th>
|
||||||
|
<th class="text-center" data-field="stratified" data-sortable="true">Stratified</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="samples"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">Samples</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="features"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">Features</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="classes"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">Classes</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="nodes"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">{{ app_config.nodes }}</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="leaves"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">{{ app_config.leaves }}</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="depth"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">{{ app_config.depth }}</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="score"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_plus">Score</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="time"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_plus">Time</th>
|
||||||
|
<th class="text-center" data-field="hyperparameters" data-sortable="true">Hyperparameters</th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for file_name, item in results.items() %}
|
||||||
|
{% set parts = file_name.split('_') %}
|
||||||
|
{% set stratified = parts[6].split('.')[0] %}
|
||||||
|
<tr>
|
||||||
|
<td class="text-left">{{ parts[2] }}</td>
|
||||||
|
<td class="text-center">{{ parts[1] }}</td>
|
||||||
|
<td class="text-center">{{ parts[3] }}</td>
|
||||||
|
<td class="text-center">{{ 'True' if stratified =='1' else 'False' }}</td>
|
||||||
|
<td class="text-end">{{ '{:,}'.format(item.samples) }}</td>
|
||||||
|
<td class="text-end">{{"%d" % item.features }}</td>
|
||||||
|
<td class="text-end">{{"%d" % item.classes }}</td>
|
||||||
|
<td class="text-end">{{ '{:,.2f}'.format(item.nodes) }}</td>
|
||||||
|
<td class="text-end">{{ '{:,}'.format(item.leaves) }}</td>
|
||||||
|
<td class="text-end">{{ '{:,}'.format(item.depth) }}</td>
|
||||||
|
<td class="text-end">{{"%.6f±%.4f" % (item.score, item.score_std)}}</td>
|
||||||
|
<td class="text-end">{{"%.6f±%.4f" % (item.time, item.time_std)}}</td>
|
||||||
|
<td class="text-left">{{ item.hyperparameters }}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<button class="btn btn-primary btn-small"
|
||||||
|
onclick='location.href="{{ url_for("results.report", file_name=file_name) }}?url={{ url }}&url_name={{ dataset_name }} Results"'>
|
||||||
|
<i class="mdi mdi-table-eye"></i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
@@ -1,5 +1,9 @@
|
|||||||
<table id="report-table"
|
<table id="report-table"
|
||||||
class="table table-striped table-hover table-bordered bg-light">
|
class="table table-striped table-hover table-bordered bg-light"
|
||||||
|
data-toggle="table"
|
||||||
|
data-sticky-header="true"
|
||||||
|
data-sticky-header-offset-y="50"
|
||||||
|
data-sortable="true">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="bg-primary text-white">
|
<tr class="bg-primary text-white">
|
||||||
<th class="text-center">Dataset</th>
|
<th class="text-center">Dataset</th>
|
||||||
|
@@ -52,7 +52,7 @@
|
|||||||
</table>
|
</table>
|
||||||
<div>{{ excel_button([ file ]) }}</div>
|
<div>{{ excel_button([ file ]) }}</div>
|
||||||
<table class="table table-striped table-hover table-bordered bg-light"
|
<table class="table table-striped table-hover table-bordered bg-light"
|
||||||
id="table-report"
|
id="report-table"
|
||||||
data-toggle="table"
|
data-toggle="table"
|
||||||
data-sticky-header="true"
|
data-sticky-header="true"
|
||||||
data-sticky-header-offset-y="50"
|
data-sticky-header-offset-y="50"
|
||||||
@@ -75,7 +75,15 @@
|
|||||||
<th class="text-center"
|
<th class="text-center"
|
||||||
data-field="nodes"
|
data-field="nodes"
|
||||||
data-sortable="true"
|
data-sortable="true"
|
||||||
data-sorter="remove_dot">Nodes</th>
|
data-sorter="remove_dot">{{ app_config.nodes }}</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="leaves"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">{{ app_config.leaves }}</th>
|
||||||
|
<th class="text-center"
|
||||||
|
data-field="depth"
|
||||||
|
data-sortable="true"
|
||||||
|
data-sorter="remove_dot">{{ app_config.depth }}</th>
|
||||||
<th class="text-center"
|
<th class="text-center"
|
||||||
data-field="score"
|
data-field="score"
|
||||||
data-sortable="true"
|
data-sortable="true"
|
||||||
@@ -88,18 +96,6 @@
|
|||||||
<th class="text-center" data-field="hyperparameters" data-sortable="true">Hyperparameters</th>
|
<th class="text-center" data-field="hyperparameters" data-sortable="true">Hyperparameters</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<script>
|
|
||||||
function remove_plus(a, b) {
|
|
||||||
var aa = a.split('±')[0]
|
|
||||||
var bb = b.split('±')[0]
|
|
||||||
return aa - bb
|
|
||||||
}
|
|
||||||
function remove_dot(a, b) {
|
|
||||||
var aa = a.replace(',', '').replace('.', '')
|
|
||||||
var bb = b.replace(',', '').replace('.', '')
|
|
||||||
return aa - bb
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for item in data.results %}
|
{% for item in data.results %}
|
||||||
<tr>
|
<tr>
|
||||||
@@ -110,6 +106,8 @@
|
|||||||
<td class="text-end">{{"%d" % item.features}}</td>
|
<td class="text-end">{{"%d" % item.features}}</td>
|
||||||
<td class="text-end">{{"%d" % item.classes}}</td>
|
<td class="text-end">{{"%d" % item.classes}}</td>
|
||||||
<td class="text-end">{{ '{:,.2f}'.format(item.nodes) }}</td>
|
<td class="text-end">{{ '{:,.2f}'.format(item.nodes) }}</td>
|
||||||
|
<td class="text-end">{{ '{:,}'.format(item.leaves) }}</td>
|
||||||
|
<td class="text-end">{{ '{:,}'.format(item.depth) }}</td>
|
||||||
<td class="text-end">{{"%.6f±%.4f" % (item.score, item.score_std)}}</td>
|
<td class="text-end">{{"%.6f±%.4f" % (item.score, item.score_std)}}</td>
|
||||||
<td class="text-center">{{ item.symbol|safe }}</td>
|
<td class="text-center">{{ item.symbol|safe }}</td>
|
||||||
<td class="text-end">{{"%.6f±%.4f" % (item.time, item.time_std)}}</td>
|
<td class="text-end">{{"%.6f±%.4f" % (item.time, item.time_std)}}</td>
|
||||||
|
@@ -3,44 +3,9 @@
|
|||||||
<div class="alert alert-primary" role="alert">
|
<div class="alert alert-primary" role="alert">
|
||||||
<h3>Results for {{ dataset_name }}</h3>
|
<h3>Results for {{ dataset_name }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<table id="files-table"
|
{% include "_table_dataset.html" %}
|
||||||
class="table table-striped table-hover table-bordered bg-light"
|
{% endblock %}
|
||||||
data-toggle="table"
|
{% block jscript %}
|
||||||
data-sticky-header="true"
|
{{ super() }}
|
||||||
data-sticky-header-offset-y="50"
|
<script src="{{ url_for('static', filename="js/report.js") }}"></script>
|
||||||
data-sortable="true">
|
|
||||||
<thead>
|
|
||||||
<tr class="bg-primary text-white">
|
|
||||||
<th class="text-center" data-field="file" data-sortable="true">File Name</th>
|
|
||||||
<th class="text-center" data-field="samples" data-sortable="true">Samples</th>
|
|
||||||
<th class="text-center" data-field="features" data-sortable="true">Features</th>
|
|
||||||
<th class="text-center" data-field="classes" data-sortable="true">Classes</th>
|
|
||||||
<th class="text-center" data-field="nodes" data-sortable="true">{{ app_config.nodes }}</th>
|
|
||||||
<th class="text-center" data-field="leaves" data-sortable="true">{{ app_config.leaves }}</th>
|
|
||||||
<th class="text-center" data-field="depth" data-sortable="true">{{ app_config.depth }}</th>
|
|
||||||
<th class="text-center" data-field="score" data-sortable="true">Score</th>
|
|
||||||
<th class="text-center" data-field="time" data-sortable="true">Time</th>
|
|
||||||
<th class="text-center" data-field="hyperparameters" data-sortable="true">Hyperparameters</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for file_name, item in results.items() %}
|
|
||||||
<tr>
|
|
||||||
<td class="text-left">
|
|
||||||
{% set url = url_for(request.endpoint, **request.view_args)|urlencode %}
|
|
||||||
<a href="{{ url_for('results.report', file_name=file_name) }}?url={{ url }}&url_name={{ dataset_name }} report">{{ file_name }}</a>
|
|
||||||
</td>
|
|
||||||
<td class="text-end">{{ '{:,}'.format(item.samples) }}</td>
|
|
||||||
<td class="text-end">{{"%d" % item.features}}</td>
|
|
||||||
<td class="text-end">{{"%d" % item.classes}}</td>
|
|
||||||
<td class="text-end">{{ '{:,.2f}'.format(item.nodes) }}</td>
|
|
||||||
<td class="text-end">{{ '{:,}'.format(item.leaves) }}</td>
|
|
||||||
<td class="text-end">{{ '{:,}'.format(item.depth) }}</td>
|
|
||||||
<td class="text-end">{{"%.6f±%.4f" % (item.score, item.score_std)}}</td>
|
|
||||||
<td class="text-end">{{"%.6f±%.4f" % (item.time, item.time_std)}}</td>
|
|
||||||
<td class="text-left">{{ item.hyperparameters }}</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
{% from "macros.html" import excel_button %}
|
{% from "macros.html" import excel_button %}
|
||||||
{% extends "base.html" %}
|
{% extends "report_tables.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{{ excel_button(["datasets"]) }}
|
{{ excel_button(["datasets"]) }}
|
||||||
{% include "_table_datasets.html" %}
|
{% include "_table_datasets.html" %}
|
||||||
|
@@ -44,5 +44,8 @@ body {
|
|||||||
padding-left: 0.5rem;
|
padding-left: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-benchmark{
|
||||||
|
color:yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -14,4 +14,14 @@ $(document).ready(function () {
|
|||||||
$(document).ajaxStop(function(){
|
$(document).ajaxStop(function(){
|
||||||
$("body").removeClass('ajaxLoading');
|
$("body").removeClass('ajaxLoading');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
function remove_plus(a, b) {
|
||||||
|
var aa = a.split('±')[0]
|
||||||
|
var bb = b.split('±')[0]
|
||||||
|
return aa - bb
|
||||||
|
}
|
||||||
|
function remove_dot(a, b) {
|
||||||
|
var aa = a.replace(',', '').replace('.', '')
|
||||||
|
var bb = b.replace(',', '').replace('.', '')
|
||||||
|
return aa - bb
|
||||||
|
}
|
@@ -14,7 +14,10 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarToggler">
|
<div class="collapse navbar-collapse" id="navbarToggler">
|
||||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||||
{% if current_user.is_authenticated %}
|
{% if current_user.is_authenticated %}
|
||||||
<li>{{ render_nav_item('main.index', "on " + current_user.benchmark.name) }}</li>
|
<li class="nav-benchmark">
|
||||||
|
<a href="{{ url_for("main.index") }}"
|
||||||
|
class="nav-item nav-link nav-benchmark">on {{ current_user.benchmark.name }}</a>
|
||||||
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li>{{ render_nav_item('results.select', 'Results') }}</li>
|
<li>{{ render_nav_item('results.select', 'Results') }}</li>
|
||||||
<li>{{ render_nav_item('results.datasets', 'Datasets') }}</li>
|
<li>{{ render_nav_item('results.datasets', 'Datasets') }}</li>
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
<nav class="navbar fixed-bottom navbar-dark bg-dark navbar-custom">
|
<nav class="navbar fixed-bottom navbar-dark bg-dark navbar-custom">
|
||||||
<ul class="navbar-nav mr-auto pie">
|
<ul class="navbar-nav mr-auto pie">
|
||||||
<p class="pie">
|
<small>Versión <b>1.00</b></small>
|
||||||
<small>Versión <b>1.00</b></small>
|
|
||||||
</p>
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
Reference in New Issue
Block a user