-
-
Notifications
You must be signed in to change notification settings - Fork 40
Pre processing library
Omega Joctan edited this page Apr 13, 2024
·
2 revisions
This MQL5 library, preprocessing.mqh
, provides three essential normalization techniques for machine learning:
- RobustScaler
- MinMaxScaler
- StandardizationScaler
- CLabelEncoder (for label encoding)
These functions help prepare your data for machine learning algorithms by scaling or encoding features to a common range or representation. This step is crucial for improving the performance and stability of many machine learning models.
Key Functionalities:
Scalers:
-
RobustScaler:
- Uses the median and interquartile range (IQR) for scaling.
- Less prone to outliers compared to other scalers.
-
MinMaxScaler:
- Scales features to a range between
0
and1
. - Useful for algorithms sensitive to feature scales.
- Scales features to a range between
-
StandardizationScaler:
- Standardizes features by subtracting the mean and dividing by the standard deviation.
- Leads to features with zero mean and unit variance.
Label Encoder:
-
CLabelEncoder:
- Encodes categorical string labels into numerical labels.
- Useful for converting categorical features into numerical representations usable by machine learning models.
Usage:
Each scaler class provides:
-
fit_transform(const matrix &X)
: Fits the scaler on the data matrixX
and performs the transformation. -
transform(const matrix &X)
: Transforms the data matrixX
using the fitted scaler. -
transform(const vector &X)
: Transforms the data vectorX
using the fitted scaler.
The CLabelEncoder
class offers:
-
encode(string &Arr[])
: Encodes a string array into a numerical vector.
Saving and Loading Models (Scalers):
- Each scaler class supports saving and loading models:
-
save(string save_dir)
: Saves the scaler model to a given directory/folder. -
load(string dir)
: Loads a previously saved scaler model from a given folder.
-
Additional Notes:
- Remember to include this library file (
#include "preprocessing.mqh"
) in your MQL5 code where you want to use its functionalities.