Ejemplo n.º 1
0
    qi_sax_filter_pred3 = train_sax_cnt_filter_model(qi_best,qi_best_cont,train_true, cleaner = cleaner);

    pick = [6,7];
    qi_best,qi_best_cont = analysis.take_best_contour([qi_areas[i] for i in pick],[qi_cnts[i] for i in pick],method=3,filter_ll = filter_ll);
    qi_sax_pred4 = train_sax_model(qi_best,train_true, version = 2, cleaner = cleaner);
    qi_sax_cnt_pred4 = train_sax_cnt_model(qi_best, qi_best_cont, train_true,version=2, cleaner = cleaner);
    qi_sax_filter_pred4 = train_sax_cnt_filter_model(qi_best,qi_best_cont,train_true, cleaner = cleaner);
    
    # fit the combined model based on the cnn-sax models.
    # when it fails, fall to the previously fitted fall back model
    print(" --------- average models --");
    #Submit V9
    all_models = [qi_sax_pred,qi_sax_pred2,qi_sax_pred3,\
            qi_sax_cnt_pred, qi_sax_cnt_pred2,qi_sax_cnt_pred3,\
            qi_sax_filter_pred, qi_sax_filter_pred2,qi_sax_filter_pred3,\
            qi_sax_pred4,qi_sax_cnt_pred4,qi_sax_filter_pred4,\
            tencia_predict,default_pred];
    ave_model = AverageModel(ll = 1.0e-4);
    ave_model.fit(all_models,train_true);
    ave_model.set(ave_model.p*1.1);#inflate 10%
    ave_pred = ave_model.predict(all_models);
    
    #apply default model when it fails
    final_pred = analysis.fill_default(ave_pred, default_pred);
    analysis.evaluate_pred(final_pred, train_true);

    #this is for the test part, the test cases are also calculated in the above trainning process
    #we might want to save the parameters of the models, and code another script to calculate the test cases. These fittings are very quick anyway.
    analysis.make_submit(final_pred, 701, 1140, "test"); #inclusive
    analysis.save_intermediate(final_pred, 1, 1140, "test"); #raw 
    # 0.6 * oneslice_predict + 0.4 * ch4_predict; (use fixed 0.6, 0.4)
    default_pred = build_default_model(oneslice_pred, ch4_predict, sa_predict);
    analysis.evaluate_pred(default_pred, train_true);

    ########## sax based CNN models

    pick = [0,1];
    qi_best,qi_best_cont = analysis.take_best_contour([qi_areas[i] for i in pick],[qi_cnts[i] for i in pick],method=1, filter_ll=filter_ll);
    qi_sax_pred = train_sax_model(qi_best,train_true, version = 2, cleaner = cleaner);
    qi_sax_cnt_pred = train_sax_cnt_model(qi_best, qi_best_cont, train_true,version=2, cleaner = cleaner);
    qi_sax_filter_pred = train_sax_cnt_filter_model(qi_best,qi_best_cont,train_true, cleaner = cleaner);

    # fit the combined model based on the cnn-sax models.
    # when it fails, fall to the previously fitted fall back model
    print(" --------- average models --");
    #Submit V9
    all_models = [qi_sax_pred, qi_sax_cnt_pred, qi_sax_filter_pred];
    ave_model = AverageModel(ll = 1.0e-4);
    ave_model.fit(all_models,train_true);
    ave_model.set(ave_model.p*1.05);#inflate 10%
    ave_pred = ave_model.predict(all_models);
    
    #apply default model when it fails
    final_pred = analysis.fill_default(ave_pred, default_pred);
    analysis.evaluate_pred(final_pred, train_true);

    #this is for the test part, the test cases are also calculated in the above trainning process
    #we might want to save the parameters of the models, and code another script to calculate the test cases. These fittings are very quick anyway.
    analysis.make_submit(final_pred, 701, 1140, "simpler"); #inclusive
    analysis.save_intermediate(final_pred, 1, 1140, "simpler"); #raw 
    qi_sax_filter_pred3 = train_sax_cnt_filter_model(qi_best,qi_best_cont,train_true, cleaner = cleaner);

    pick = [6,7];
    qi_best,qi_best_cont = analysis.take_best_contour([qi_areas[i] for i in pick],[qi_cnts[i] for i in pick],method=3,filter_ll = filter_ll);
    qi_sax_pred4 = train_sax_model(qi_best,train_true, version = 2, cleaner = cleaner);
    qi_sax_cnt_pred4 = train_sax_cnt_model(qi_best, qi_best_cont, train_true,version=2, cleaner = cleaner);
    qi_sax_filter_pred4 = train_sax_cnt_filter_model(qi_best,qi_best_cont,train_true, cleaner = cleaner);
    
    # fit the combined model based on the cnn-sax models.
    # when it fails, fall to the previously fitted fall back model
    print(" --------- average models --");
    #Submit V9
    all_models = [qi_sax_pred,qi_sax_pred2,qi_sax_pred3,\
            qi_sax_cnt_pred, qi_sax_cnt_pred2,qi_sax_cnt_pred3,\
            qi_sax_filter_pred, qi_sax_filter_pred2,qi_sax_filter_pred3,\
            qi_sax_pred4,qi_sax_cnt_pred4,qi_sax_filter_pred4,\
            tencia_predict,default_pred];
    ave_model = AverageModel(ll = 1.0e-4);
    ave_model.fit(all_models,train_true);
    ave_model.set(ave_model.p*1.1);#inflate 10%
    ave_pred = ave_model.predict(all_models);
    
    #apply default model when it fails
    final_pred = analysis.fill_default(ave_pred, default_pred);
    analysis.evaluate_pred(final_pred, train_true);

    #this is for the test part, the test cases are also calculated in the above trainning process
    #we might want to save the parameters of the models, and code another script to calculate the test cases. These fittings are very quick anyway.
    analysis.make_submit(final_pred, 701, 1140, "test"); #inclusive
    analysis.save_intermediate(final_pred, 1, 1140, "test"); #raw