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)