Fotomics

The Fotomics method transforms tabular data into synthetic images using the Fourier Transform. It computes the Fourier Transform of the input set, averages the real and imaginary values across samples to determine feature coordinates, and maps them to a 2D grid. This implementation extends the original method by introducing multiple techniques for mapping features to pixels, optimization algorithms for handling feature collisions, and flexible pixel value aggregation strategies including relevance-weighted calculations.

Image created by the Fotomics method, visualizing data transformed using the Fourier Transform.

Import Fotomics

To import Fotomics model use:

>>> from TINTOlib.fotomics import Fotomics
>>> model = Fotomics(image_dim=30)

Inherited base functionality

Fotomics inherits from ParamImageMethod (see Base classes), so it also provides:

  • Feature coordinates: a feature-to-pixel mapping exported to features_positions.csv after fit/fit_transform.

  • Programmatic access: _get_features_mapping() returns the feature coordinates as a DataFrame once the model is fitted.

  • Shared utilities: saveHyperparameters / loadHyperparameters and the standard fit / transform / fit_transform workflow.

Hyperparameters & Configuration

When creating the Fotomics class, some parameters can be modified. The parameters are:

Parameters

Description

Default value

Valid values

image_dim

Order size for a square matrix image.

Required

integer

problem

The type of problem, defining how the images are grouped.

‘classification’

[‘classification’, ‘unsupervised’, ‘regression’]

transformer

Preprocessing transformations like scaling, normalization, etc.

LogScaler()

Scikit Learn transformers or custom implementation inheriting CustomTransformer.

verbose

Show execution details in the terminal.

False

[True, False]

outliers

Treat outliers after Fourier transform.

True

[True, False]

min_percentile

Minimum percentile for outlier detection.

10

integer

max_percentile

Maximum percentile for outlier detection.

90

integer

outliers_treatment

Technique to treat outliers.

‘zero’

[‘zero’, ‘max_min’, ‘avg’]

assignment_method

Technique to map features to pixels.

‘bin_digitize’

str (e.g., ‘bin_digitize’)

relocate

Relocate features so that each pixel can represent a single feature.

False

[True, False]

algorithm_opt

Optimization algorithm applied in the pixel assignment stage.

‘linear_sum’

str (e.g., ‘linear_sum’)

group_method

Technique to calculate pixel values sharing multiple features.

‘avg’

str (e.g., ‘avg’)

zoom

Multiplication factor determining the size of the saved image relative to the original size.

1

integer > 0

format

Output format using images with matplotlib with [0,255] range for pixel or using npy format.

‘png’

[‘png’, ‘npy’]

cmap

Color map to use with matplotlib.

‘gray’

‘viridis’, ‘plasma’, ‘inferno’, ‘magma’, ‘cividis’, ‘Greys’, etc.

random_seed

Seed for reproducibility.

1

integer

Code example:

>>> model = Fotomics(image_dim=30, outliers=False, zoom=2)

All the parameters that aren’t specifically set will have their default values.

Functions

Fotomics has the following functions:

Function

Description

Output

saveHyperparameters(filename)

Allows to save the defined parameters.

.pkl file with the configuration

loadHyperparameters(filename)

Load Fotomics configuration previously saved with saveHyperparameters(filename)

  • filename: .pkl file path

fit(data)

Trains the model on the tabular data. This step computes the Fourier Transform and determines feature coordinates.

  • data: A path to a CSV file or a Pandas DataFrame containing the features and targets. The target column must be the last column.

transform(data, folder)

Generates and saves synthetic images in a specified folder. Requires the model to be fitted first.

  • data: A path to a CSV file or a Pandas DataFrame containing the features and targets. The target column must be the last column.

  • folder: Path to the folder where the synthetic images will be saved.

Folders with synthetic images

fit_transform(data, folder)

Combines the training and image generation steps. Fits the model to the data and generates synthetic images in one step.

  • data: A path to a CSV file or a Pandas DataFrame containing the features and targets. The target column must be the last column.

  • folder: Path to the folder where the synthetic images will be saved.

Folders with synthetic images

  • The model must be fitted before using the transform method. If the model isn’t fitted, a RuntimeError will be raised.

Citation

Paper: https://doi.org/10.1007/s10462-022-10357-4

Code Repository: https://github.com/VafaeeLab/Fotomics-Imagification