编程语言
首页 > 编程语言> > 以下代码为动态时间序列算法主函数,其中N为RNN的参考长度,即超参数:

以下代码为动态时间序列算法主函数,其中N为RNN的参考长度,即超参数:

作者:互联网

    """将source post对应的posts划分成不定长的post batch序列
    Params:
        weibo_id (str), source post对应的id,用于读取对应数据
        N (int), 时间序列的基准time steps个数
    Returns:
        output (list), interval list, 每一个interval包含一定数量的post index
    """
    # 不同时间间隔内的post数量不必相同)
    path = "Weibo" + os_sep + "{}.json".format(weibo_id)
    data = load_rawdata(data_path + path) # 基于weibo id加载包含转帖文本及时间戳的原始数据
    tweet_list = [(idx, tweet["t"]) for idx, tweet in enumerate(data)]
    total_timespan = tweet_list[-1][1] - tweet_list[0][1]  # L(i)
    time_interval = total_timespan / N  # l
 
    k = 0
    pre_max_inters = []  # U_(k_1)
    while True:
        # Spliting series by the current time interval
        k += 1
        interval_num = int(total_timespan / time_interval)
        output, inter_index = ConstructSeries(tweet_list, interval_num, time_interval)
        max_inters = GetContinueInterval(inter_index)  # maximum continue interval index
        if len(pre_max_inters) < len(max_inters) < N:
            time_interval = int(time_interval * 0.5)  # Shorten the intervals
            pre_max_inters = max_inters
            if time_interval == 0:
                output = output[max_inters[0]:max_inters[-1] + 1]
                break
        else:
            output = output[max_inters[0]:max_inters[-1] + 1]
            break
 
    return output

  

标签:RNN,max,interval,list,inters,算法,time,output,即超
来源: https://www.cnblogs.com/huangjiangyong/p/16458311.html