Polyfit(または私が見つけたこのNice logfitツールボックス ここ )のような多くのカーブフィッティングおよび補間ツールがありますが、sigmoid
関数に適合するものを見つけることができないようです。私のxyデータ。
そのようなツールは存在しますか、それとも自分で作成する必要がありますか?
nlinfit
、特にgatool
は、この問題の大きなハンマーです。シグモイドは特定の関数ではありません。最も一般的には、ロジスティック関数と同じであると見なされます(計算するのに最も効率的であることがよくあります)。
y = 1./(1+exp(-x));
または一般化されたロジスティック。しかし、あらゆる種類の曲線は シグモイド形状 を持つことができます。データが特定のデータに対応するかどうかがわかっている場合は、フィッティングを改善し、より効率的な方法を適用できます。たとえば、 エラー関数 (erf
)はシグモイド形状であり、 [〜#〜] cdf [〜#〜] の 正規分布 。データがガウス過程の結果であることがわかっていて(つまり、データがCDFである)、統計ツールボックスがある場合は、normfit
関数を使用できます。この関数は 最尤推定 (MLE)に基づいています。パフォーマンス上の理由から、カスタムのフィッティング関数を作成する必要が生じた場合は、フィッティングしたい特定の形式のシグモイドのMLE手法を調査します。
MATLABの Global Optimization Toolbox 、特に Genetic Algorithm Solver を使用することをお勧めします。これは、最適化(=データに最適なものを見つける)によって問題に使用できます。 )遺伝的アルゴリズムによるシグモイド関数のパラメーター。使いやすいGUIを備えています。
遺伝的アルゴリズムソルバー のGUI。gatool
を使用して呼び出すことができます。