将三维乙状体拟合到d

2024-04-26 12:16:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有关于多变量乙状窦函数的数据:xyr(x,y)

x           y         r(x,y)

0.468848997 0.487599    0
0.468848997 0.512929    0
0.468848997 0.538259    0
0.468848997 0.563589    0
0.468848997 0.588918    0
0.468848997 0.614248    0
0.468848997 0.639578    0
0.468848997 0.664908    0.000216774
0.468848997 0.690238    0.0235043
0.468848997 0.715568    0.319768
0.468848997 0.740897    0.855861
0.468848997 0.766227    0.994637
0.468848997 0.791557    0.999524
0.468848997 0.816887    0.99954
0.468848997 0.842217    0.99958
0.468848997 0.867547    0.999572
0.468848997 0.892876    0.999634
0.468848997 0.918206    0.999566
0.468848997 0.943536    0.999656
0.468848997 0.968866    0.999637
0.468848997 0.994196    0.999685
.           .            .
.           .            .
.           .            .
0.481520591 0.487599    0
0.481520591 0.512929    0
0.481520591 0.538259    0
0.481520591 0.563589    0
0.481520591 0.588918    0
0.481520591 0.614248    0
0.481520591 0.639578    1.09E-06
0.481520591 0.664908    0.000755042
0.481520591 0.690238    0.0498893
0.481520591 0.715568    0.449531
0.481520591 0.740897    0.919786
0.481520591 0.766227    0.998182
0.481520591 0.791557    0.99954

我想知道是否有一个sigmoid函数可以用来拟合我的三维数据。 我遇到了这个答案for 2D data,但我不能扩展它来解决我的问题。在

我想辅助函数应该是这样的:

^{pr2}$

我不知道怎么从这里开始思考。在

我会很感激任何意见或建议,因为我现在完全无助。在


Tags: 数据函数答案fordata建议意见我会
1条回答
网友
1楼 · 发布于 2024-04-26 12:16:55

在您的例子中,输出变量(我将表示为r_xy)似乎在范围[01]内。在这种情况下,可以如下模拟多变量乙状结肠:

x = -10:0.5:10;
y = -10:0.5:10;

x_grid = reshape(repmat(x, numel(x), 1), 1, numel(x) ^ 2);
y_grid = repmat(y, 1, numel(y));

% Add some noise
x_noise = x_grid + randn(size(x_grid));
y_noise = y_grid + randn(size(y_grid));

% Randomly define the B parameter of the sigmoid, with the number of
% variables and an offset.
B = randn(1, 3) + 1;

% Calculate the sample data
r_xy = (1 ./ (1+exp(-B * ([ones(size(x_noise)); x_noise; y_noise]))));

% Plot the data
figure
scatter3(x_grid, y_grid, r_xy)

这在三个维度上看起来像一个乙状结肠:

{a1}

这可以看作是一个广义线性模型,具有二项分布和一个logit链接函数。在

Matlab可以使用fitglm函数拟合一般线性模型,如下所示:

^{pr2}$

结果如下:

enter image description here

模型的参数可以从model变量中读取。在

相关问题 更多 >