for col_name in use_cols: Xshuff = X[test,:].copy() col_idx = col_dict[col_name] obj = slice(col_idx[0],col_idx[-1]+1) shuff_R2 = np.zeros(n_feature_shuffs) for n in np.arange(n_feature_shuffs): np.random.shuffle(Xshuff[:,obj]) shuff_R2[n] = model.score(Xshuff, y[test]) RF_feature_imp[col_name].append(test_R2[name][-1] - np.mean(shuff_R2)) returns[name].append(LCM.pick_K_returns( test_pred, net_returns[test], prnc_weights[test], pick_K_list, n_boots=100, sub_marg=False)) grade_returns[name].append(LCM.pick_K_returns_by_grade( test_pred, net_returns[test], prnc_weights[test], LD.iloc[test][grade_group], grade_pick_K)) grade_makeup[name][cnt,:] = LCM.get_choice_grade_makeup(test_pred, LD.iloc[test][grade_group], unique_grades, grade_pick_K) cnt += 1 # Annualize portfolio returns, and convert them into numpy arrays as needed rel_returns = {} marg_returns = LCM.annualize_returns(np.array(marg_returns)) for name, model in model_set: returns[name] = LCM.annualize_returns(np.array(returns[name])) rel_returns[name] = returns[name] - marg_returns[:,np.newaxis,np.newaxis] returns[name] = returns[name].reshape(-1, len(pick_K_list)) rel_returns[name] = rel_returns[name].reshape(-1, len(pick_K_list))
np.random.shuffle(Xshuff[:, obj]) shuff_R2[n] = model.score(Xshuff, y[test]) RF_feature_imp[col_name].append(test_R2[name][-1] - np.mean(shuff_R2)) returns[name].append( LCM.pick_K_returns(test_pred, net_returns[test], prnc_weights[test], pick_K_list, n_boots=100, sub_marg=False)) grade_returns[name].append( LCM.pick_K_returns_by_grade(test_pred, net_returns[test], prnc_weights[test], LD.iloc[test][grade_group], grade_pick_K)) grade_makeup[name][cnt, :] = LCM.get_choice_grade_makeup( test_pred, LD.iloc[test][grade_group], unique_grades, grade_pick_K) cnt += 1 # Annualize portfolio returns, and convert them into numpy arrays as needed rel_returns = {} marg_returns = LCM.annualize_returns(np.array(marg_returns)) for name, model in model_set: returns[name] = LCM.annualize_returns(np.array(returns[name])) rel_returns[name] = returns[name] - marg_returns[:, np.newaxis, np.newaxis] returns[name] = returns[name].reshape(-1, len(pick_K_list)) rel_returns[name] = rel_returns[name].reshape(-1, len(pick_K_list))