test_R2[name].append(model.score(X[test,:],y[test])) test_pred = model.predict(X[test,:]) if name == 'RF': #test feature importance for RF model 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]))
if name == 'RF': #test feature importance for RF model 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 = {}