C++:为什么这段代码会出错?多元线性回归



我是c ++的初学者,我正在编写有关线性回归的代码。 首先,我制作了一个关于单变量线性回归的代码,它有一个 x 和一个 y 变量, 现在我正在将该代码更改为具有超过 2 x 和 1 y 的多元线性回归。 它犯了错误,但我找不到原因。

我不会在这里写头文件。 请认为标题没有错误。 原始代码没有任何错误。

原始代码 :

double LinearRegression::predict(double x)
{
return this->h(x);
}

double LinearRegression::h(double x)
{
return this->w * x + this->b;
}

关于多变量的代码:

double LinearRegression::predict(double x, int index)
{
return this->h(x, index);
}

double LinearRegression::h(double x, int index)
{
double sum = 0;
// return this->w * x + this->b;
for (int i = 0; i < this->multi_num; i++) {
sum += this->w[i] * x[i][index];    // here x is making error
}
sum += this->b;
return sum;
}

我认为在多元线性回归的情况下,您应该将double** x作为参数传递给predicth方法。目前,您正在尝试将单个双精度作为 2D 数组进行操作,它甚至不会编译。

最新更新