Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;_C++_Machine Learning_Regression_Polynomials - Fatal编程技术网

C++ C++;

C++ C++;,c++,machine-learning,regression,polynomials,C++,Machine Learning,Regression,Polynomials,我是ML的新手,我正在尝试这个问题。他们的观察结果之一是 “每平方英尺的价格(近似)是一个多项式函数 观察表中的特征。此多项式始终具有 少于4英寸的订单 所以我想解决方案应该是应用多项式回归,我发现了很多(令人困惑的信息),但只有两个特征。但在这种情况下,它们最多可以是5个特征,因此答案可以是一个多项式,如:ax^5+bx^2*y^3+c*z^2*x 因此,似乎更难找到一种方法来创建或计算多项式,函数如下: float eval(vector<float> x, vector<

我是ML的新手,我正在尝试这个问题。他们的观察结果之一是

“每平方英尺的价格(近似)是一个多项式函数 观察表中的特征。此多项式始终具有 少于4英寸的订单

所以我想解决方案应该是应用多项式回归,我发现了很多(令人困惑的信息),但只有两个特征。但在这种情况下,它们最多可以是5个特征,因此答案可以是一个多项式,如:ax^5+bx^2*y^3+c*z^2*x

因此,似乎更难找到一种方法来创建或计算多项式,函数如下:

float eval(vector<float> x, vector<float> o)
float eval(向量x,向量o)
有了这个,我希望用线性回归中的梯度下降法来最小化成本函数


我这样做对吗?我正确使用多项式回归吗?我应该如何创建和计算该多项式?

问题是多项式次数最多为4次,因此它不应该有
x^5
x^2 y^3
项。有5个特征,它只是意味着你有多达5个独立变量,这与多项式次数无关。如果特征为
v
w
x
y
z
,则多项式的最一般形式为:
a1 v^4+…+a5 z^4+b1 v^3 w+…+b4 v^3 z+…+c
。此外,您仍然可以使用线性回归,但您需要将自变量从实际特征更改为特征的组合,如
v^4
x^3 z
v w^2 y
,…好的,但是怎么做呢?我需要在之前创造所有的可能性?比如‘sum=sum+a4*z^5;总和=+a5+v*w^2;…'依此类推?我能想到的最简单的方法是:每个项是一个常数乘以从
X=[1,v,w,X,y,z]
中选择的四个值,总共625项。现在,如果你有四个从0到5的嵌套循环和一个从0到625的计数器,然后乘以
a[counter]*X[i]*X[j]*X[k]*X[l]*X[m]
,其中
i
j
k
l
m
是循环的索引,
a[counter]
是对应于每个项的系数,这会给你所有的术语。你可能想忽略一些术语,例如,只考虑最多两个特征的倍数,而不是更多,除非你相信某些特征的组合影响可能是重要的。这将大大减少条款的数量。是的,你是绝对正确的。很抱歉给你带来了困惑。另外,您只需要
i
j
k
l
,不需要最后一个循环,因为您希望阶数是四而不是五。