polyfit(またはこの素晴らしいlogfitツールボックスも私が見つけたのはhere)のような多くのカーブフィッティングと補間ツールがありますが、xyデータにsigmoid
関数を適合させることができません。データにシグモイドをフィッティング
このようなツールが存在するのですか、自分で作成する必要がありますか?
polyfit(またはこの素晴らしいlogfitツールボックスも私が見つけたのはhere)のような多くのカーブフィッティングと補間ツールがありますが、xyデータにsigmoid
関数を適合させることができません。データにシグモイドをフィッティング
このようなツールが存在するのですか、自分で作成する必要がありますか?
あなたはStatistics Toolboxには、インストールされている場合、あなたはnlinfit
でnonlinear regressionを使用することができます。
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
はシグモイド関数の一例であり、A
はフィッティング係数のベクトルです。
MATLABのGlobal Optimization Toolbox、特にGenetic Algorithm Solverを使用することをお勧めします。これは遺伝的アルゴリズムによるSigmoid関数のパラメータを最適化(=最適なデータを見つける)することによって問題に使用できます。それは使いやすいGUIを持っています。
あなたがgatool
を使用して呼び出すことができますGenetic Algorithm SolverのGUI、:
nlinfit
、特にgatool
は、この問題の大きなハンマーです。シグモイドは特定の機能ではありません。
y = 1./(1+exp(-x));
または一般的なロジスティック:最も一般的にはロジスティック関数(計算することもしばしば最も効率的な)と同じであると解釈されます。しかし、すべての曲線はsigmoidal shapesです。あなたのデータが特にデータに対応しているかどうかを知っていれば、フィッティングを改善し、より効率的な方法を適用することができます。例えば、error function(erf
)は、S字状の形状を有し、のCDFに現れます。データがGaussianプロセスの結果(データがCDF)であり、Statsツールボックスがあることがわかっている場合は、normfit
関数を使用できます。この機能はmaximum likelihood estimation(MLE)に基づいています。パフォーマンス上の理由から、カスタムフィッティング関数を書く必要が生じた場合は、フィットしたい特定のシグモイドのMLEテクニックを調べます。
私は以下のsigfuncがより有用であることを発見しました。 'sigfunc = @(A、x)(A(1)./(1 + exp(-A(2)* x)));' – ohnoplus
@user92519問題ありません、私は例としてこれを与えました。 –
こんにちは。 「フィッティング係数のベクトル」とはどういう意味ですか? –