for srand in srand_list: preds_dev = np.loadtxt('preds_{}/best_preds_dev_0.001_srand_{}.txt'.format( feat_type, srand)) coef_dev, p_std = stats.spearmanr(y_dev, preds_dev) print("SRAND {} - dev".format(srand), coef_dev) best_preds_dev.append(preds_dev) comb_dev = np.mean((best_preds_dev), axis=0) res_dev_t = sh.linear_trans_preds_dev(y_train=y_train, preds_dev=comb_dev) tot_coef_dev, p_std = stats.spearmanr(y_dev, res_dev_t) util.results_to_csv( file_name='exp_results/bests_comb_srand_xvecs_{}.csv'.format(feat_type), list_columns=['Exp. Details', 'C', 'SPE', 'STD', 'SET', 'SRAND'], list_values=['xvecs_srand', c, tot_coef_dev, std_flag, 'DEV', "ALL"]) # LOAD TEST PREDICTIONS for srand in srand_list: preds_test = np.loadtxt('preds_{}/preds_test_0.001_srand_{}.txt'.format( feat_type, srand)) coef_test, p_std = stats.spearmanr(y_test, preds_test) print("SRAND {} - test".format(srand), coef_test) print() best_preds_test.append(preds_test) comb_test = np.mean((best_preds_test), axis=0) res_test_t = sh.linear_trans_preds_test(y_train=y_train, preds_dev=comb_dev,
std_scaler = preprocessing.StandardScaler() x_train = std_scaler.fit_transform(x_train) # PCA pca_flag = False if pca_flag == True: pca = PCA(n_components=0.97) x_train = pca.fit_transform(x_train) for c in list_c: preds, trues, posteriors = svm_fits.leave_one_out_cv(x_train, y_train.ravel(), c=c) acc = accuracy_score(trues, preds) auc = roc_auc_score(trues, preds, average='weighted') prec = precision_score(trues, preds) rec = recall_score(trues, preds) f1 = f1_score(trues, preds) # np.savetxt('exp_results/posteriors_{0}_loocv_{1}_pretrained.txt'.format(c, task), posteriors) # np.savetxt('exp_results/trues_{0}_loocv_{1}_pretrained.txt'.format(c, task), trues) file_n = os.path.basename(file_train) print("with", c, "-", ga, "acc:", acc, " f1:", f1, " prec:", prec, " recall:", rec, 'AUC:', auc) util.results_to_csv(file_name='exp_results/results_mszny_{}_{}.csv'.format(task, feat_type[0]), list_columns=['Exp. Details', 'Gaussians', 'Deltas', 'C', 'Accuracy', 'F1', 'Precision', 'Recall', 'AUC', 'PCA', 'STD'], list_values=[os.path.basename(file_n), ga, feat_type[2], c, acc, f1, prec, rec, auc, pca_flag, std_flag])
preds_orig = preds preds = sh.linear_trans_preds_dev(y_train=y_train, preds_dev=preds) coef, p_std = stats.spearmanr(y_dev, preds) dev_preds_dic['dev_{}_srand_{}'.format(c, srand)] = preds spear_scores.append(coef) print("with", c, "- spe:", coef) # Train SVM model on the whole training data with optimum complexity and get predictions on test data optimum_complexity = list_c[np.argmax(spear_scores)] best_coef = np.argmax(spear_scores) print('\nOptimum complexity: {0:.6f}'.format(optimum_complexity)) util.results_to_csv(file_name='exp_results/results_{}_{}_srand_spec.csv'.format(task, feat_type[0]), list_columns=['Exp. Details', 'Gaussians', 'Deltas', 'C', 'SPE', 'STD', 'SET', 'SRAND'], list_values=[os.path.basename(file_n), ga, feat_type[2], optimum_complexity, best_coef, std_flag, 'DEV', srand]) # Saving best dev posteriors # dev_preds = svm_fits.train_svr_gpu(x_train, y_train.ravel(), X_eval=x_dev, c=optimum_complexity, nu=0.5) # np.savetxt('preds_{}/best_preds_dev_{}_srand_{}.txt'.format(feat, optimum_complexity, srand), dev_preds) y_pred = svm_fits.train_svr_gpu(x_combined, y_combined.ravel(), X_eval=x_test, c=optimum_complexity, nu=list_nu[0]) y_pred = sh.linear_trans_preds_test(y_train=y_train, preds_dev=preds_orig, preds_test=y_pred) coef_test, p_2 = stats.spearmanr(y_test, y_pred) # coef_test2 = np.corrcoef(y_test, y_pred) print(os.path.basename(file_n), "\nTest results with", optimum_complexity, "- spe:", coef_test) print(20*'-') util.results_to_csv(file_name='exp_results/results_{}_{}_srand_spec.csv'.format(task, feat_type[0]), list_columns=['Exp. Details', 'Gaussians', 'Deltas', 'C', 'SPE', 'STD', 'SET', 'SRAND'], list_values=[os.path.basename(file_n), ga, feat_type[2], optimum_complexity, coef_test,
c=c, X_eval=x_dev, class_weight='balanced') # posteriors = svm_fits.train_rbfsvm_cpu(x_train, y_train.ravel(), c=c, X_eval=x_dev, gamma=0.55555555555555) # np.savetxt('/media/jose/hk-data/PycharmProjects/the_speech/data/mask/probs_mask_k{}_{}_fisher_{}.txt'.format(folds, c, kernel), posteriors) y_pred = np.argmax(posteriors, axis=1) uar = recall_score(y_dev, y_pred, average='macro') scores.append(uar) print("with", c, "-", uar) best_c = list_c[np.argmax(scores)] best_uar = np.max(scores) util.results_to_csv( file_name='exp_results/results_{}_{}.csv'.format(task, feat_type[0]), list_columns=['Exp. Details', 'C', 'UAR', 'STD', 'NET', 'SET'], list_values=[ os.path.basename(file_n), best_c, best_uar, std_flag, net, 'DEV' ]) # Train SVM model on the whole training data with optimum complexity and get predictions on test data optimum_complexity = list_c[np.argmax(scores)] print('\nOptimum complexity: {0:.6f}'.format(optimum_complexity), best_uar) # Saving best dev posteriors # dev_preds = svm_fits.train_svr_gpu(x_train, y_train.ravel(), X_eval=x_dev, c=optimum_complexity, nu=0.5) # np.savetxt('preds_{}/best_preds_dev_{}_srand_{}.txt'.format(feat, optimum_complexity, srand), dev_preds) # # y_pred = svm_fits.train_svr_gpu(x_combined, y_combined.ravel(), X_eval=x_test, c=optimum_complexity, nu=list_nu[0]) # # y_pred = sh.linear_trans_preds_test(y_train=y_train, preds_dev=preds_orig, preds_test=y_pred) # coef_test, p_2 = stats.spearmanr(y_test, y_pred) # # coef_test2 = np.corrcoef(y_test, y_pred)
# Train SVM model on the whole training data with optimum complexity and get predictions on test data optimum_complexity = list_c2[np.argmax(uar_scores)] print('\nOptimum complexity: {0:.6f}'.format(optimum_complexity)) clf = svm.LinearSVC(C=optimum_complexity, max_iter=100000, class_weight='balanced') clf.fit(x_combined_resampled, y_combined_resampled.ravel()) # y_pred = svm_fits.train_svr_gpu(x_combined, y_combined.ravel(), X_eval=x_test, c=optimum_complexity, nu=list_nu[0]) # y_pred = sh.linear_trans_preds_test(y_train=y_train, preds_dev=preds_orig, preds_test=y_pred) test_probs = clf._predict_proba_lr(x_test) test_preds = np.argmax(test_probs, axis=1) uar_final = recall_score(y_test, test_preds, labels=np.unique(y_train), average='macro') print(os.path.basename(file_n), "\nTest results with", optimum_complexity, "- UAR:", uar_final) util.results_to_csv( file_name='exp_results/results_{}_{}.csv'.format(task, feat_info[0]), list_columns=['Exp. details', 'UAR', 'PCA', 'STD'], list_values=[os.path.basename(file_n), uar_final, pca_flag, std_flag]) # Inverse-transforming labels to their original (from 0,1...,4 to 1,...,5) # lbls_train = le.inverse_transform(y_train) # lbls_test = le.inverse_transform(y_test) # lbls_preds = le.inverse_transform(test_preds) # a = confusion_matrix(y_test, y_train, labels=np.unique(y_train)) # util.plot_confusion_matrix_2(a, np.unique(y_train), 'conf2.png', cmap='Oranges', title="UAR 0.61")