Regression not working for arrays longer than 405 elements (overflow in matrix)
JanNalivaika opened this issue · 1 comments
I am trying to do some regression on time series on different length.
But I'm having issues with lengths longer than 406 elements
The error message is:
ValueError: Input X contains NaN.
SVR does not accept missing values encoded as NaN natively.
Function: "njit_gak" has an overflow issue
To Reproduce
####################################################################
import numpy as np
from tslearn.utils import to_time_series_dataset
from tslearn.svm import TimeSeriesSVR
from numpy import random
from tslearn.preprocessing import TimeSeriesScalerMinMax
def fun():
x = np.arange(500) # Length of array here
y = x**2*random.rand()/2000+ np.sin(x) + np.cos(x)
return abs(y)
input = []
output = []
for reps in range(3):
y = fun()
input.append(list(y))
output.append(np.sqrt(np.min(y)))
X = to_time_series_dataset(input)
X1 = TimeSeriesScalerMinMax().fit_transform(X)
clf = TimeSeriesSVR(C=1.0, kernel="gak")
y_reg = output
clf.fit(X1, y_reg)
###################################################################
Does anyone have the same issue?
Thank you very much!
@JanNalivaika
Two notes:
-
Try to edit your question by ensuring that the code is enclosed by three back-ticks ```. I think it is not in the correct format. For instance
def func()
and its next couple of lines should have been in the code box. But, they are not. -
Does
abs(y)
return what you want to? Or, did you meannp.abs
? If it is the former, then tryprint(y)
and see if that is what you want. If it is the latter and you meantnp.abs
, then try to review your bug report one more time and revise any other parts if necessary.