0

我有这个代码:

OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
double[] consumptions = new double[vec.size()];  
double[][] x = new double[(int) (trainPart * vec.size())][3];

 while (it_vec.hasNext() ) {
   Vector<Double> tmp = new Vector<Double>();
   tmp = it_vec.next();

   if (count < trainPart * (vec.size())) {
     consumptions[count] = tmp.get(0);
     x[count] = new double []{tmp.get(1), tmp.get(4), season(tmp.get(5))};
    } else {
       //do something else  
       }        
    count++;
 }

regression.newSampleData(consumptions, x);
double[] coeff = regression.estimateRegressionParameters(); 

我将耗电量(双倍)循环保存到数组consumptions中。while数组x保持三个双打,这个:x[count] = new double []{tmp.get(1), tmp.get(4), season(tmp.get(5))};tmp.get(1)是一天中的小时,tmp.get(4)是 1.0 或 0.0(如果是周末,则为 1.0),season(tmp.get(5))返回 1.0 或 0.0(如果有冬季月份,则为 1.0)。我在最后一行得到的错误: matrix is singular

如果行列式为零,我知道矩阵是奇异的,但我有很多观察结果。有谁知道问题可能出在哪里?谢谢你,丹尼尔

4

0 回答 0