java 高斯拟合_在某些情况下,将单个高斯拟合到'noisy'数据会产生差的拟合

博主探讨了在Java中使用高斯拟合处理包含多个高斯形状的嘈杂数据时遇到的问题。他们提出了一种算法,通过样条曲线拟合、一阶导数求解以及数据点选择来拟合高斯,但在某些情况下,这种方法效果不佳。文章附带了Python实现和示例数据,寻求对问题原因的见解和解决方案。
摘要由CSDN通过智能技术生成

我有一些可以包含0和n高斯形状的嘈杂数据,我正在尝试实现一种算法,该算法采用最高数据点并按照以下“方案”拟合高斯数据:

新尝试,步骤:

通过所有数据点拟合样条曲线

得到样条函数的一阶导数

得到两个数据点(左/右),其中f'(x)=大约0,具有最大强度的数据点

通过从3返回的数据点拟合高斯

4A . 在pdf中绘制高斯(在基线处停止)

计算高斯曲线下的面积

计算原始数据点下的面积

计算高斯区域解释的总面积百分比

我使用以下代码实现了这个概念(最小的工作示例):

#! /usr/bin/env python

from scipy.interpolate import InterpolatedUnivariateSpline

from scipy.optimize import curve_fit

from scipy.signal import argrelextrema

import numpy as np

import matplotlib

import matplotlib.pyplot as plt

data = [(9.60380153195,187214),(9.62028167623,181023),(9.63676350256,174588),(9.65324602212,169389),(9.66972824591,166921),(9.68621215187,167597),(9.70269675106,170838),(9.71918105436,175816),(9.73566703995,181552),(9.75215371878,186978),(9.76864010158,191718),(9.78512816681,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值