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()