Documentation for Neural NARX
¶
Utilities fo data validation.
check_X_y(X, y)
¶
Validate input and output data using some crucial tests.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray of floats | The input data. | required |
y | ndarray of floats | The output data. | required |
Source code in sysidentpy/utils/_check_arrays.py
check_dimension(X, y)
¶
Check if X and y have only real values.
If there is any string or object samples a ValueError is raised.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray of floats | The input data. | required |
y | ndarray of floats | The output data. | required |
Source code in sysidentpy/utils/_check_arrays.py
check_infinity(X, y)
¶
Check that X and y have no NaN or Inf samples.
If there is any NaN or Inf samples a ValueError is raised.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray of floats | The input data. | required |
y | ndarray of floats | The output data. | required |
Source code in sysidentpy/utils/_check_arrays.py
check_length(X, y)
¶
Check that X and y have the same number of samples.
If the length of X and y are different a ValueError is raised.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray of floats | The input data. | required |
y | ndarray of floats | The output data. | required |
Source code in sysidentpy/utils/_check_arrays.py
check_nan(X, y)
¶
Check that X and y have no NaN or Inf samples.
If there is any NaN or Inf samples a ValueError is raised.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray of floats | The input data. | required |
y | ndarray of floats | The output data. | required |
Source code in sysidentpy/utils/_check_arrays.py
check_random_state(seed)
¶
Turn seed
into a np.random.RandomState
instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
seed | {None, int, `numpy.random.Generator`, |
If | required |
Returns:
Name | Type | Description |
---|---|---|
seed | {`numpy.random.Generator`, `numpy.random.RandomState`} | Random number generator. |
Source code in sysidentpy/utils/_check_arrays.py
Display results formatted for the user.
results(final_model=None, theta=None, err=None, n_terms=None, theta_precision=4, err_precision=8, dtype='dec')
¶
Write the model regressors, parameters and ERR values.
This function returns the model regressors, its respective parameter and ERR value on a string matrix.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
theta_precision | int (default: 4) | Precision of shown parameters values. | 4 |
err_precision | int (default: 8) | Precision of shown ERR values. | 8 |
dtype | string (default: 'dec') | Type of representation: sci - Scientific notation; dec - Decimal notation. | 'dec' |
Returns:
Name | Type | Description |
---|---|---|
output_matrix | string | Where: First column represents each regressor element; Second column represents associated parameter; Third column represents the error reduction ratio associated to each regressor. |
Source code in sysidentpy/utils/display_results.py
Utilities for data generation.
get_miso_data(n=5000, colored_noise=False, sigma=0.05, train_percentage=90)
¶
Perform the Error Reduction Ration algorithm.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
n | int | The number of samples. | 5000 |
colored_noise | bool | Select white noise or colored noise (autoregressive noise). | False |
sigma | float | The standard deviation of the random distribution to generate the noise. | 0.05 |
train_percentage | int | The percentage of the data to be used as train data. | 90 |
Returns:
Type | Description |
---|---|
x_train, x_valid : array-like | The input data to be used in identification and validation, respectively. |
y_train, y_valid : array-like | The output data to be used in identification and validation, respectively. |
Source code in sysidentpy/utils/generate_data.py
get_siso_data(n=5000, colored_noise=False, sigma=0.05, train_percentage=90)
¶
Perform the Error Reduction Ration algorithm.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
n | int | The number of samples. | 5000 |
colored_noise | bool | Select white noise or colored noise (autoregressive noise). | False |
sigma | float | The standard deviation of the random distribution to generate the noise. | 0.05 |
train_percentage | int | The percentage of the data to be used as train data. | 90 |
Returns:
Type | Description |
---|---|
x_train, x_valid : array-like | The input data to be used in identification and validation, respectively. |
y_train, y_valid : array-like | The output data to be used in identification and validation, respectively. |
Source code in sysidentpy/utils/generate_data.py
Utils methods for NARMAX modeling.
regressor_code(*, X=None, xlag=2, ylag=2, model_type='NARMAX', model_representation=None, basis_function=None)
¶
Generate a regressor code based on the provided parameters.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray | The input feature matrix. | None |
xlag | int | The number of lags for the input features. | 2 |
ylag | int | The number of lags for the target variable. | 2 |
model_type | str | The type of model to be used. Default is "NARMAX". | 'NARMAX' |
model_representation | str | The model representation to be used. | None |
basis_function | object | The basis function object used to transform the regressor space. | None |
Returns:
Name | Type | Description |
---|---|---|
encoding | ndarray | The generated regressor encoding. |
Source code in sysidentpy/utils/narmax_tools.py
set_weights(*, static_function=True, static_gain=True, start=-0.01, stop=-5, num=50, base=2.71)
¶
Set log-spaced weights assigned to each objective in the MO optimization.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
static_function | bool | Indicator for the presence of static function data. Default is True. | True |
static_gain | bool | Indicator for the presence of static gain data. Default is True. | True |
start | float | The starting exponent for the log-spaced weights. Default is -0.01. | -0.01 |
stop | float | The stopping exponent for the log-spaced weights. Default is -5. | -5 |
num | int | The number of weights to generate. Default is 50. | 50 |
base | float | The base of the logarithm used to generate weights. Default is 2.71. | 2.71 |
Returns:
Name | Type | Description |
---|---|---|
weights | ndarray of floats | An array containing the weights for each objective. |
Notes
This method calculates the weights to be assigned to different objectives in multi-objective optimization. The choice of weights depends on the presence of static function and static gain data. If both are present, a set of weights for dynamic, gain, and static objectives is computed. If either static function or static gain is absent, a simplified set of weights is generated.
Source code in sysidentpy/utils/narmax_tools.py
train_test_split(X, y, test_size=0.25)
¶
Split the time series dataset into training and testing sets.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
X | ndarray | The feature matrix. Can be None if there are no features. | required |
y | ndarray | The target vector. | required |
test_size | float | The proportion of the dataset to include in the test split. Default is 0.25. | 0.25 |
Returns:
Name | Type | Description |
---|---|---|
X_train | ndarray or None | The training set feature matrix, or None if X is None. |
X_test | ndarray or None | The testing set feature matrix, or None if X is None. |
y_train | ndarray | The training set target vector. |
y_test | ndarray | The testing set target vector. |
Source code in sysidentpy/utils/narmax_tools.py
Plotting methods.
plot_residues_correlation(data=None, *, figsize=(10, 6), n=100, style='default', facecolor='white', title='Residual Analysis', ylabel='Correlation')
¶
Plot the residual validation.
Source code in sysidentpy/utils/plotting.py
plot_results(y, *, yhat, n=100, title='Free run simulation', xlabel='Samples', ylabel='y, $\\hat{y}$', data_color='#1f77b4', model_color='#ff7f0e', marker='o', model_marker='*', linewidth=1.5, figsize=(10, 6), style='default', facecolor='white')
¶
Plot the results of a simulation.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
y | ndarray | True data values. | required |
yhat | ndarray | Model predictions. | required |
n | int | Number of samples to plot. | 100 |
title | str | Plot title. | 'Free run simulation' |
xlabel | str | Label for the x-axis. | 'Samples' |
ylabel | str | Label for the y-axis. | 'y, $\\hat{y}$' |
data_color | str | Color for the data line. | '#1f77b4' |
model_color | str | Color for the model line. | '#ff7f0e' |
marker | str | Marker style for the data line. | 'o' |
model_marker | str | Marker style for the model line. | '*' |
linewidth | float | Line width for both lines. | 1.5 |
figsize | Tuple[int, int] | Figure size (width, height). | (10, 6) |
style | str | Matplotlib style. | 'default' |
facecolor | str | Figure facecolor. | 'white' |
Source code in sysidentpy/utils/plotting.py
load_model(*, file_name='model', path=None)
¶
Load the model from file "file_name.syspy" located at path "path".
Parameters:
Name | Type | Description | Default |
---|---|---|---|
file_name | model to be loaded | 'model' | |
path | | None |
Returns:
Name | Type | Description |
---|---|---|
model_loaded | model loaded, as a variable, containing model and its attributes | |
Source code in sysidentpy/utils/save_load.py
save_model(*, model=None, file_name='model', path=None)
¶
Save the model "model" in folder "folder" using an extension .syspy.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model | | None | |
file_name | | 'model' | |
path | | None |
Returns:
Type | Description |
---|---|
file file_name.syspy located at "path", containing the estimated model. | |