Source code for pyFTS.hyperparam.Util
"""
Common facilities for hyperparameter optimization
"""
import sqlite3
[docs]def open_hyperparam_db(name):
"""
Open a connection with a Sqlite database designed to store benchmark results.
:param name: database filenem
:return: a sqlite3 database connection
"""
conn = sqlite3.connect(name)
#performance optimizations
conn.execute("PRAGMA journal_mode = WAL")
conn.execute("PRAGMA synchronous = NORMAL")
create_hyperparam_tables(conn)
return conn
[docs]def create_hyperparam_tables(conn):
"""
Create a sqlite3 table designed to store benchmark results.
:param conn: a sqlite3 database connection
"""
c = conn.cursor()
c.execute('''CREATE TABLE if not exists hyperparam(
ID integer primary key, Date int, Dataset text, Tag text,
Model text, Transformation text, mf text, 'Order' int,
Partitioner text, Partitions int, alpha real, lags text,
Measure text, Value real)''')
conn.commit()
[docs]def insert_hyperparam(data, conn):
"""
Insert benchmark data on database
:param data: a tuple with the benchmark data with format:
Dataset: Identify on which dataset the dataset was performed
Tag: a user defined word that indentify a benchmark set
Model: FTS model
Transformation: The name of data transformation, if one was used
mf: membership function
Order: the order of the FTS method
Partitioner: UoD partitioning scheme
Partitions: Number of partitions
alpha: alpha cut
lags: lags
Measure: accuracy measure
Value: the measure value
:param conn: a sqlite3 database connection
:return:
"""
c = conn.cursor()
c.execute("INSERT INTO hyperparam(Date, Dataset, Tag, Model, "
+ "Transformation, mf, 'Order', Partitioner, Partitions, "
+ "alpha, lags, Measure, Value) "
+ "VALUES(datetime('now'),?,?,?,?,?,?,?,?,?,?,?,?)", data)
conn.commit()