def get_data_label_pair(f, model_config, meta, predict_day, isShift=True): single_stock = tv_gen._selectData2array_specialDate_v2( f, corrDate[s][:model_config['corrDate']], model_config['corrDate'], 21, s) labels = [] data_feature = [] for i in range(model_config['corrDate']): single_stock_tmp, meta_v = f_extr.create_velocity( single_stock[i], meta) single_stock_tmp, meta_ud = f_extr.create_ud_cont_2cls( single_stock_tmp, meta_v) features_tmp, label_tmp = dp.get_data_from_normal( single_stock_tmp, meta_ud, predict_day, model_config['features'], isShift) label_tmp = reduce_label(label_tmp) labels += list(label_tmp) feature_concat = [] for i in range(model_config['days']): for k in features_tmp[i]: feature_concat.append(features_tmp[i][k]) data_feature.append(np.concatenate(feature_concat, axis=1)) data = np.vstack(data_feature) label = np.array(labels) return data, label
mConfig = open( '/home/dashmoment/workspace/etf_prediction/trainer/config/20180526/best_config_xgb_dow_all.pkl', 'rb') #mConfig = open('/home/ubuntu/shared/workspace/etf_prediction/trainer/config/best_config_xgb_dow_all.pkl', 'rb') best_config = pickle.load(mConfig) predict_ud = {} for s in stock_list: predict_ud[s] = [] for predict_day in predict_days: model_config = best_config[s][predict_day] single_stock = tv_gen._selectData2array(f, [s], model_config['period']) single_stock, meta_v = f_extr.create_velocity(single_stock, meta) train_data, train_label = get_data_label_pair(single_stock, model_config, meta_v) single_stock_test = tv_gen._selectData2array(f, [s], ['20180401', '20180620']) single_stock_test, meta_v = f_extr.create_velocity( single_stock_test, meta) test_data, test_label = get_data_label_pair(single_stock_test, model_config, meta_v, False) model = model_dict('xgb', model_config).get model.fit(train_data, train_label)