Modelado y Pronóstico Dinámico con SysIdentPy

SysIdentPy es una biblioteca de Python fácil de usar para la identificación de sistemas y el pronóstico de series temporales.

Primeros Pasos pip install sysidentpy
Gráfico de fondo

Introducción a SysIdentPy

                
    from sysidentpy.model_structure_selection import FROLS
    from sysidentpy.basis_function import Polynomial
    from sysidentpy.utils.generate_data import get_siso_data

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.0001, train_percentage=90
    )

    basis_function = Polynomial(degree=2)
    model = FROLS(ylag=2, xlag=2, basis_function=basis_function)

    model.fit(X=x_train, y=y_train)
    yhat = model.predict(X=x_valid, y=y_valid)
                
              
                
    from sysidentpy.model_structure_selection import FROLS
    from sysidentpy.basis_function import Legendre
    from sysidentpy.utils.generate_data import get_siso_data

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.0001, train_percentage=90
    )

    basis_function = Legendre(degree=2)
    model = FROLS(ylag=2, xlag=2, basis_function=basis_function)

    model.fit(X=x_train, y=y_train)
    yhat = model.predict(X=x_valid, y=y_valid)
                
              
                
    from sysidentpy.model_structure_selection import FROLS
    from sysidentpy.basis_function import Fourier
    from sysidentpy.utils.generate_data import get_siso_data

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.0001, train_percentage=90
    )

    basis_function = Fourier(degree=2)
    model = FROLS(ylag=2, xlag=2, basis_function=basis_function)

    model.fit(X=x_train, y=y_train)
    yhat = model.predict(X=x_valid, y=y_valid)
                
              
                
    from torch import nn
    from sysidentpy.neural_network import NARXNN

    from sysidentpy.basis_function import Polynomial
    from sysidentpy.utils.generate_data import get_siso_data

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.01, train_percentage=80
    )

    class NARX(nn.Module):
        def __init__(self):
            super().__init__()
            self.lin = nn.Linear(4, 30)
            self.lin2 = nn.Linear(30, 1)
            self.tanh = nn.Tanh()

        def forward(self, xb):
            z = self.lin(xb)
            z = self.tanh(z)
            z = self.lin2(z)
            return z


    narx_net2 = NARXNN(
        net=NARX(),
        ylag=2,
        xlag=2,
        basis_function=Polynomial(degree=1),
        optimizer="Adam",
        optim_params={
            "betas": (0.9, 0.999),
            "eps": 1e-05,
        },
    )

    narx_net2.fit(X=x_train, y=y_train)
    yhat = narx_net2.predict(X=x_valid, y=y_valid)
                
              
                
    from sysidentpy.utils.generate_data import get_siso_data
    from sysidentpy.general_estimators import NARX
    from sklearn.linear_model import BayesianRidge
    from sysidentpy.basis_function import Polynomial

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.0001, train_percentage=90
    )

    BayesianRidge_narx = NARX(
        base_estimator=BayesianRidge(),
        xlag=2,
        ylag=2,
        basis_function=Polynomial(degree=2),
        model_type="NARMAX",
    )

    BayesianRidge_narx.fit(X=x_train, y=y_train)
    yhat = BayesianRidge_narx.predict(X=x_valid, y=y_valid)
                
              
                
    from catboost import CatBoostRegressor
    from sysidentpy.utils.generate_data import get_siso_data
    from sysidentpy.general_estimators import NARX
    from sysidentpy.basis_function import Polynomial

    x_train, x_valid, y_train, y_valid = get_siso_data(
        n=1000, colored_noise=False, sigma=0.0001, train_percentage=90
    )

    catboost_narx = NARX(
        base_estimator=CatBoostRegressor(
            iterations=300,
            learning_rate=0.1
        ),
        xlag=2,
        ylag=2,
        basis_function=Polynomial(degree=2),
        model_type="NARMAX",
        fit_params={"verbose": False},
    )

    catboost_narx.fit(X=x_train, y=y_train)
    yhat = catboost_narx.predict(X=x_valid, y=y_valid, steps_ahead=None)
                
              

Empresas que usan

A3Data Gcom Technium A3Data

Identificación y Pronóstico de Sistemas No Lineales

Bienvenido a nuestro libro complementario sobre Identificación de Sistemas. Este libro es una guía completa para aprender sobre modelos dinámicos y pronóstico.

El objetivo principal de este libro es describir un conjunto completo de algoritmos para la identificación, el pronóstico y el análisis de sistemas no lineales.

Ícono de E‑book Descargar el E‑book

Desarrollador Principal

Wilson Rocha
Wilson Rocha

Head de Ciencia de Datos en RD. Máster en Ingeniería Eléctrica. Profesor. Miembro del Grupo de Control y Modelado (GCOM).

Nuestros Colaboradores

Nuestros números

  • +80% Cobertura
  • 56K Descargas
  • 1.5k Descargas/mes

Usuarios compartiendo su experiencia

Nuestras Publicaciones Recientes

Wilson Rocha

Paquetes Open Source (en portugués)

Ver más

Wilson Rocha

Presentación Meetup Nubank (en portugués)

Ver más

Wilson Rocha

Meetup GCoM (en portugués)

Ver más