Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Gurneet1928/TryMLEasy/llms.txt

Use this file to discover all available pages before exploring further.

The Feature Selection page (pages/2_feature_selection.py) is where you define what your model will learn from and how the data should be prepared before training. This page sits at the centre of the TryMLEasy workflow — the choices you make here directly shape the quality of every model result that follows. You will pick which columns serve as inputs (features), which column represents the output (target), apply optional preprocessing and dimensionality reduction, and decide how much data is reserved for testing.

Correlation Heatmap

As soon as the page loads, TryMLEasy automatically renders a correlation heatmap for all columns in your dataset. The heatmap is built with seaborn.heatmap() on top of dataset.corr() and is displayed at full width using matplotlib. Use the heatmap to:
  • Identify feature pairs that are strongly correlated with each other (multicollinearity), which can hurt model accuracy.
  • Find which features are most correlated with your target column — good predictors tend to show a strong colour contrast in the target column or row.
  • Decide which columns are worth including versus which can be dropped before training.

Selecting Features and Target

Below the heatmap, two selection widgets let you specify the ML inputs and output:
  • Feature columns — a st.multiselect widget listing every column in your dataset. Select one or more columns that will be used as input variables (X).
  • Target column — a st.selectbox widget (defaulting to the last column) that specifies the output variable (y) the model should learn to predict.
The target column must not appear in your features list. If it does, TryMLEasy displays the error "Target exists in features! Try Again" and disables the Next button until the conflict is resolved. Always double-check that the same column name is not selected in both widgets.
Your current selections are echoed back on screen in real time so you can confirm the exact column names before proceeding.

Preprocessing Step (Optional)

The preprocessing selectbox lets you choose a scaling or normalisation technique to apply to your feature matrix before it is passed to the model. The available options are:
Optionscikit-learn ClassEffect
NoneNo transformation applied
Standard ScalerStandardScalerZero mean, unit variance
MinMax ScalerMinMaxScalerScales values to [0, 1] range
Robust ScalerRobustScalerScales using median and IQR; robust to outliers
NormalizationNormalizerScales each sample to unit norm
This step becomes the first stage in the scikit-learn Pipeline that is built on the Traditional Model page.
The preprocessing step is applied only to Traditional ML models. When you choose the Neural Network path, this setting is not used — you should scale your data manually before uploading, or select features that are already on similar scales.

Decomposition Step (Optional)

The decomposition selectbox lets you reduce the dimensionality of your feature space before passing data to the model. The available options are:
Optionscikit-learn ClassDescription
NoneNo decomposition applied
PCAPCAPrincipal Component Analysis — linear dimensionality reduction
Kernal PCAKernelPCAKernel-based non-linear dimensionality reduction
FastICAFastICAIndependent Component Analysis via FastICA algorithm
When a decomposition method is selected alongside a scaler, the pipeline runs in order: scale → decompose → model.
Like preprocessing, the decomposition step is applied only to Traditional ML models. It is ignored when training neural networks.

Train/Test Split

A slider lets you control what fraction of your dataset is held out for evaluation:
  • Range: 1 – 50 (integer percentage)
  • Default: 25 (i.e., 25% of data is used for testing)
TryMLEasy calls sklearn.model_selection.train_test_split with test_size=test_ratio/100 to produce four arrays:
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    dataset[features],
    dataset[target],
    test_size=test_ratio / 100  # e.g. 0.25 for the default 25% split
)
A larger test ratio gives you a more robust evaluation but leaves less data for training. For small datasets (under a few hundred rows), consider reducing this value to 10–15%.

Proceeding to Model Selection

Once you have made valid selections (at least one feature, a non-overlapping target), click Next (Model Type Selection). TryMLEasy stores your configuration into st.session_state and navigates to the Model Selection page, where you choose between Traditional ML or Neural Networks. The following values are saved into session state on click:
Session State KeyContents
model_config['features']List of selected feature column names
model_config['target']Name of the selected target column
model_config['scaler_step']Selected preprocessing step (or 'None')
model_config['decomp_step']Selected decomposition step (or 'None')
train_test_data['xtrain']Training feature DataFrame
train_test_data['xtest']Test feature DataFrame
train_test_data['ytrain']Training target Series
train_test_data['ytest']Test target Series
You can return to this page at any time using the Back (Dataset View) button, which navigates back to the Show Dataset page without clearing your current selections.

Build docs developers (and LLMs) love