我使用Accord.NET在C#中使用多元线性回归,我按照这个例子,该方法需要2个参数输入,这是一个2d数组,输出的是1d数组,这两个数组必须有相同的长度。
public static double[] RegressionLineaire(double[][]input,double[]output)
{
double[] coeff = new double[40];
var ols = new OrdinaryLeastSquares();
{
ols.UseIntercept = true;
};
Console.WriteLine("inputs length = " + input.Length + " outputs
length = " + output.Length);
MultipleLinearRegression regression = ols.Learn(input, output);
coeff = regression.Weights;
return coeff;
}
输入和输出具有相同的长度,但我得到了这个激发
System.InvalidOperationException : 'Matrix is rank deficient.'
答案 0 :(得分:4)
我刚刚找到问题的解决方案,它不是输入形状问题,我不知道什么是exatly矩阵的原因是排名不足的例外,但我管理de通过添加此行使其工作
var ols = new OrdinaryLeastSquares();
{
ols.UseIntercept = true;
ols.IsRobust = true;
};