我有这段代码:
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
。
我知道如果行列式为零,矩阵是奇异的,但我有很多观察。 有谁知道问题出在哪里? 谢谢Daniel,