IJCAI2017_TOOL.py 文件源码

python
阅读 76 收藏 0 点赞 0 评论 0

项目:IJCAI17_Tianchi_Rank4 作者: Jessicamidi 项目源码 文件源码
def eemd(data, noise_std=0.2, num_ensembles=100, num_sifts=10):
    """
    Ensemble Empirical Mode Decomposition (EEMD)

    *** Must still add in post-processing with EMD ***
    """
    # get modes to generate
    num_samples = len(data)
    num_modes = int(np.fix(np.log2(num_samples)))-1

    # normalize incomming data
    dstd = data.std()
    y = data/dstd

    # allocate for starting value
    all_modes = np.zeros((num_modes+2,num_samples))

    # loop over num_ensembles
    for e in range(num_ensembles):
        # perturb starting data
        x0 = y + np.random.randn(num_samples)*noise_std

        # save the starting value
        all_modes[0] += x0

        # loop over modes
        for m in range(num_modes):
            # do the sifts
            imf = x0
            for s in range(num_sifts):
                imf = _do_one_sift(imf)

            # save the imf
            all_modes[m+1] += imf

            # set the residual
            x0 = x0 - imf

        # save the final residual
        all_modes[-1] += x0

    # average everything out and renormalize
    return all_modes*dstd/np.float64(num_ensembles)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号