关于

作者: Dorrrris | 来源:发表于2019-03-27 23:34 被阅读0次
    1. 不知道为什么pop_size要取36
    2. 不知道为什么要reframed.drop column index在18*8之后的七个
    3. 梳理一下函数的顺序就是:
    • 一共有16个函数
    # Initialize random population
    def get_first_pop(pop_size, param_num, encode_length)
    # Decoding parameter
    def encode(individual_code)
    # Decoding parameter combination
    def get_param(individual_code,param_num, encode_length)
    # Decoding population
    def pop2param(pop) 没用
    # Initialization parameter population
    def get_first_param(pop_size, param_num, encode_length)
    # Get random index
    def get_cross_seg_id(param_num)
    # Crossover
    def cross_over(individual_1,individual_2)
    # variation 
    def variation(individual_code)
    # Population grouping
    def pop2group(pop,group_num)
    # Conversion of parameter sequences to key values
    def c_pop2str(c_pop)
    # select
    def select(pop,n_selected,step)
    # Population reconstruction
    def pop_reconstruct(pop_selected,target_num)
    # preprocessing
    def series_to_supervised(data, n_in = 1, n_out = 1, dropnan = True)
    # produce attention weights 
    def get_attenton_rate_df(param,df,n_feature,time_step)
    # Get the training error of the attention weight on the validation set
    def get_rmse(param,reframed)
    
    def search_best_attention_rate(max_step)
    
    • .csv数据输入部分,对PM2.5数值所在的列values[:,4]作编码(encoder)
      把整个values当中的数值统一在(0,1)之间->存入sclaed

    • sliding window部分:

    ```
    series_to_supervised(scaled, 18, 1)
    ```
    

    这里18和1不知道是怎么来的!!??!?!?
    函数的作用:把整个表格向下移动i行,(移动18次,从18开始移,然后17,16....)这样前面肯定会有空出来的行,就写nan;这样每一次移动完的表格(dataframe格式)存入cols这个list当中。因为shift这个操作做了18次,所以最后cols的列数就是18*属性个数,列的名称分别是var1(t-18) var2(t-18)... var11(t-18)...var1(t) var2(t)... var11(t)

    search_best_attention_rate部分 调用get_first_param(36,18,6)select(pop,6,step)pop_reconstruct(selected[0],36)
    进行epoch:20

    • get_first_param

      • get_first_param(36,18,6)调用get_first_pop(36,18,6)get_param(基因,18,6)
        返回一个维度为2的list,前一半(维度为36)是基因,后一半(36)是小数,前一半存入pop
      • get_first_pop独立:返回了一个维度为36的list。每个维度代表一条基因,是18*6位的(0,1,1,0,1,0........)每一位数都是随机产生的,这也过于随机了吧。。
      • get_param:调用encode( )18次。对每条基因操作,返回[0.38, 0.13, 0.59, 0.7, 0.32, 0.76, 0.29, 0.62, 0.94, 0.54, 0.13, 0.01, 1.0, 0.83, 0.73, 0.21, 0.43, 0.17]里面有18个小数。长度为18*6的基因,六个单位算一次。
      • encode:return一个小数。[0,0,1,1,0,1]六位对应一个小数。
    • select

      • select(pop,6,step)调用pop2group(pop,6)c_pop2str(each)get_rmse
      • pop2group(pop,6)独立:最后返回的len(group_pop)=6,len(group_pop[0])=6,len(group_pop[0][0])=108,也就是随机六条基因一组,一共六组。
      • d

    相关文章

      网友评论

          本文标题:关于

          本文链接:https://www.haomeiwen.com/subject/lkrxbqtx.html