In this Google Summer of Code 2020 project I developed a web-based system that helps the user to compare new time-series analysis algorithms to a collection of over 7700 existing algorithms, implemented as the hctsa package. The website takes a new time-series analysis algorithm (as python code) from the user and computes its outputs across a dataset of 1000 diverse time series. It then analyzes the correlation between the output of the user’s algorithm with the hctsa feature library and presents a range of intuitive output visualizations that show the best-matching features. This output helps the user to understand connections between their method and the existing interdisciplinary time-series analysis literature, and therefore to assess whether their algorithm is really contributing progress to the literature.
Here is an example of the website functionality I developed from scratch in this GSoC project:
Since the project needs to be developed from scratch, I have broken down the development process into three parts:
First phase - Backend / logic development
I developed a series of functions to enable successful execution of the user’s code, and to perform systematic comparison of its output to that of existing algorithms:
Second phase - Front-end development
In this phase, I focused on front-end development, that will be used by the user.I implemented a range of functionality, including:
Visualization of pairwise relationships between each of the top 12 matches as a correlation heatmap reordered using linkage clustering.
Third phase - Running user’s code securely and with error handling.
This was one of the major challenges, as executing custom user code on a server could compromise the system.Thus, in order to run user’s code safely, we:
These are the weekly reports that i had submitted to INCF during GSoC period:
Although all the requirements of this project as outlined in the GSoC proposal have been completed, this project represents the important initial steps in the full development of CompEngine-Features. After the official GSoC period, I plan to contribute to this further development by: