gpt4 book ai didi

Matlab:创建 n 次特征的多项式组合。

转载 作者:行者123 更新时间:2023-11-30 08:39:08 25 4
gpt4 key购买 nike

是否有任何Matlab函数或通用代码可以生成n次三变量多项式方程的所有特征组合?对于三个3阶变量,特征组合为1, x, y, z, x^2, y^2, z^2, xy,yz,zx, x^3, y^3, z^3 、x^2y、y^2z、z^2x、xyz......等等。

我已经从 Andrew Ng 的机器学习类(class)中获得了两个变量和 n 阶的 Matlab 代码。

function out = mapFeature(X1, X2)
degree = 6;
out = ones(size(X1(:,1)));
for i = 1:degree
for j = 0:i
out(:, end+1) = (X1.^(i-j)).*(X2.^j);
end
end

end

我想知道是否有关于 n 度的三个变量的代码。提前致谢。

最佳答案

还有一个简单的meshgrid - 基于解决方案:

degree = 3;
[i,j,k]= meshgrid(0:degree);
powers= sortrows([i(:) j(:) k(:)]);
out = [];
for m = 1:size(powers,1)
d= powers(m,:);
if sum(d)<=degree
out(:, end+1) = (X1.^d(1)).*(X2.^d(2)).*(X3.^d(3));
end
end

meshgrid 函数生成三个矩阵,其中包含其参数值的 3D 网格。可以将此矩阵展开为列并使用 [i(:) j(:) k(:)] 连接。它给我们提供了一个矩阵,其行是度数的组合。 sortrows 对矩阵的行进行排序,使组合顺序更加自然。还有一个多维网格生成函数ndgrid,可以在超过3个变量的情况下使用。

关于Matlab:创建 n 次特征的多项式组合。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51553958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com