2017-04-15 4 views
0

6つのピークを含むデータセットに複数のガウス曲線をフィッティングする方法を誰かが見せてくれるのかと疑問に思っていました(銅金合金結晶の回折パターンからデータが得られます)。私が現時点で持っている方法は、複数のガウス方程式を一緒に使うことです。つまり、カーブフィッティングのときに複数の値を推測する必要があります。Gaussianの6つのピークの和を曲線に合わせる

+0

Googleで「非線形カーブフィッティングPython」を試してみてください – Craig

+0

あなたのデータにガウス混合モデル(GMM)を適合させることはできますが、必ずしもあなたが期待するフィット感を見つけることはできません。 sklearn.mixture.GaussianMixtureを参照してください。 –

+1

lmfitが役に立つかもしれません。たとえば、2ガウスと指数関数的減衰に適合するhttps://lmfit.github.io/lmfit-py/builtin_models.html#example-3-fitting-multiple-peaks-and-using-prefixesを参照してください。より多くのGaussiansに拡張するのは簡単なはずです。 –

答えて

0

私は、エラー空間を検索し、scipyのLevenberg-Marquardt非線形ソルバの初期パラメータ推定値を見つけるのに、遺伝的アルゴリズムをうまく使用しました。最新版のscipyには、私が使っていたDifferential Evolution遺伝的アルゴリズムが含まれています。集団サイズや遺伝的交叉戦略などを調整するためにあらかじめ適合したデータセットを試してみることになりますが、この方法でコンピュータが初期パラメータ推定値を見つける方法が必要です。走るにはしばらく時間がかかりますので、一晩は過ごしてください。ただし、自動化することはできます。

関連する問題