首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据的sigmoid拟合

数据的sigmoid拟合
EN

Stack Overflow用户
提问于 2013-05-13 00:42:29
回答 3查看 23.2K关注 0票数 10

有许多曲线拟合和插值工具,比如polyfit (甚至是我找到的这个漂亮的logfit工具箱here),但我似乎找不到任何适合我的x-y数据的sigmoid函数。

这样的工具是否存在,或者我是否需要自己制作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-13 01:04:18

如果已安装统计工具箱,则可以在nlinfit中使用nonlinear regression

代码语言:javascript
复制
sigfunc = @(A, x)(A(1) ./ (A(2) + exp(-x)));
A0 = ones(size(A)); %// Initial values fed into the iterative algorithm
A_fit = nlinfit(x, y, sigfunc, A0);

这里sigfunc只是一个sigmoid函数的例子,A是拟合系数的向量。

票数 13
EN

Stack Overflow用户

发布于 2013-05-13 04:31:52

nlinfit,尤其是gatool,是解决这个问题的大力士。sigmoid不是一个特定的函数。通常认为它与逻辑函数相同(通常也是计算效率最高的函数):

代码语言:javascript
复制
y = 1./(1+exp(-x));

或者是广义逻辑。但是所有形式的曲线都可以有sigmoidal shapes。如果您知道您的数据是否与某个特定数据相对应,则可以改进拟合,并可以应用更有效的方法。例如,error function (erf)具有S形形状,并显示在normal distributionCDF中。如果您知道您的数据是高斯过程的结果(即,数据是CDF),并且您有统计工具箱,则可以使用normfit函数。此函数基于maximum likelihood estimation (MLE)。如果您最终需要编写自定义拟合函数--比如说,出于性能原因--我将针对您想要拟合的特定形式的sigmoid研究MLE技术。

票数 9
EN

Stack Overflow用户

发布于 2013-05-13 01:04:26

我建议你使用MATLAB的Global Optimization Toolbox,特别是Genetic Algorithm Solver,你可以通过遗传算法优化sigmoid函数的参数来解决你的问题。它有一个易于使用的GUI。

您可以使用gatool调用Genetic Algorithm Solver的图形用户界面:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16509696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档