spark-timeseries
spark-timeseries copied to clipboard
MathIllegalStateException exception ARIMA`
org.apache.commons.math3.exception.MathIllegalStateException: unable to bracket optimum in line search I'm trying to fit arima model to my data(electricity_power) and i'm getting this error. Below is my java code
breeze.linalg.Vector<Object> vec = new breeze.linalg.DenseVector<Object>(total); ARIMAModel fitModel = ARIMA.fitModel(1, 0, 1, vec, true, "css-cgd", null);
If anyone can help how to reslove this issue?
Hi @anshulemc. This is caused by having an old version of Apache Commons Math on the classpath. Are you using Maven? If so, you should be able to avoid it by explicitly including Commons Math dependency in your project:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.4.1</version>
</dependency>
@sryza i tried going ahead with the suggestion and already did the change which you have done in your example
In my pom.xml i have linked the repository like this
and the above dependency. I'm using spark version 1.4.0. could ypu please help me in how to resolve this error WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS 16/02/19 14:20:49 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS Exception in thread "main" org.apache.commons.math3.exception.MathIllegalStateException: unable to bracket optimum in line search at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.findUpperBound(NonLinearConjugateGradientOptimizer.java:336) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.doOptimize(NonLinearConjugateGradientOptimizer.java:234) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.doOptimize(NonLinearConjugateGradientOptimizer.java:45) at org.apache.commons.math3.optim.BaseOptimizer.optimize(BaseOptimizer.java:136) at org.apache.commons.math3.optim.BaseMultivariateOptimizer.optimize(BaseMultivariateOptimizer.java:70) at org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer.optimize(MultivariateOptimizer.java:67) at org.apache.commons.math3.optim.nonlinear.scalar.GradientMultivariateOptimizer.optimize(GradientMultivariateOptimizer.java:80) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.optimize(NonLinearConjugateGradientOptimizer.java:190) at com.cloudera.sparkts.models.ARIMA$.fitWithCSSCGD(ARIMA.scala:190) at com.cloudera.sparkts.models.ARIMA$.fitModel(ARIMA.scala:101) at com.cloudera.sparkts.models.ARIMA.fitModel(ARIMA.scala) at sparkMLlib.ReadingCass.run(ReadingCass.java:80) at sparkMLlib.ReadingCass.start(ReadingCass.java:41) at sparkMLlib.ReadingCass.main(ReadingCass.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:665) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Can you send me the pom.xml you're using? You can send to the personal email listed on my profile.
Also, how are you running your code? Inside an editor? Via mvn exec? With spark-submit? java -cp?
May also be worth sending over a run of "mvn dependency:tree" on that pom.
@sryza I also having same problem but as per your suggestions I have been replace org.apache.commons.math3 with 3.6.1 with spark 2.0.1 and still same problem also I am not using maven add jar externally to build path
ARIMAXModel model = ARIMAX.fitModel(1, 0, 0, tsvector, xreg, 10, true, true, userInitParams)
Exception in thread "main" org.apache.commons.math3.exception.MathIllegalStateException: unable to bracket optimum in line search at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.findUpperBound(NonLinearConjugateGradientOptimizer.java:336) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.doOptimize(NonLinearConjugateGradientOptimizer.java:228) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.doOptimize(NonLinearConjugateGradientOptimizer.java:49) at org.apache.commons.math3.optim.BaseOptimizer.optimize(BaseOptimizer.java:143) at org.apache.commons.math3.optim.BaseMultivariateOptimizer.optimize(BaseMultivariateOptimizer.java:66) at org.apache.commons.math3.optim.nonlinear.scalar.MultivariateOptimizer.optimize(MultivariateOptimizer.java:64) at org.apache.commons.math3.optim.nonlinear.scalar.GradientMultivariateOptimizer.optimize(GradientMultivariateOptimizer.java:74) at org.apache.commons.math3.optim.nonlinear.scalar.gradient.NonLinearConjugateGradientOptimizer.optimize(NonLinearConjugateGradientOptimizer.java:187) at com.cloudera.sparkts.models.ARIMAX$.fitWithCSSCGD(ARIMAX.scala:159) at com.cloudera.sparkts.models.ARIMAX$.fitModel(ARIMAX.scala:81) at com.cloudera.sparkts.models.ARIMAX.fitModel(ARIMAX.scala) at com.cloudera.sparkts.models.DemoARIMAX.main(DemoARIMAX.java:151)