Mercurial > hg > plosone_underreview
diff scripts/classification.py @ 62:4425a4918102 branch-tests
fixed indices for feature components
author | Maria Panteli <m.x.panteli@gmail.com> |
---|---|
date | Thu, 21 Sep 2017 17:35:07 +0100 |
parents | d118b6ca8370 |
children | e83ecc296669 |
line wrap: on
line diff
--- a/scripts/classification.py Thu Sep 21 15:25:20 2017 +0100 +++ b/scripts/classification.py Thu Sep 21 17:35:07 2017 +0100 @@ -8,6 +8,7 @@ import pandas as pd import pickle from sklearn import metrics +from sklearn.model_selection import train_test_split import map_and_average import util_feature_learning @@ -22,6 +23,13 @@ return X, Y, Yaudio +def feat_inds_from_pickle(filename): + X_list, Y, Yaudio = pickle.load(open(filename,'rb')) + feat_inds = [len(X_list[0]), len(X_list[1]), len(X_list[2]), len(X_list[3])] + feat_labels = ['rhy', 'mel', 'mfc', 'chr'] + return feat_labels, feat_inds + + def get_train_test_indices(audiolabs): trainset, valset, testset = map_and_average.load_train_val_test_sets() trainaudiolabels, testaudiolabels = trainset[2], testset[2] @@ -52,15 +60,16 @@ X_train, X_val_test, Y_train, Y_val_test = train_test_split(X, Y, train_size=0.6, random_state=12345, stratify=Y) X_val, X_test, Y_val, Y_test = train_test_split(X_val_test, Y_val_test, train_size=0.5, random_state=12345, stratify=Y_val_test) df_result = feat_learner.classify(X_train, Y_train, X_test, Y_test, transform_label=transform_label) - df_result_feat = classify_each_feature(X_train, Y_train, X_test, Y_test, transform_label=transform_label) + df_result_feat = classify_each_feature(X_train, Y_train, X_test, Y_test, filename, transform_label=transform_label) df_result = pd.concat([df_result, df_result_feat], axis=1, ignore_index=True) df_results = pd.concat([df_results, df_result], axis=0, ignore_index=True) return df_results -def classify_each_feature(X_train, Y_train, X_test, Y_test, transform_label=" "): +def classify_each_feature(X_train, Y_train, X_test, Y_test, filename, transform_label=" "): n_dim = X_train.shape[1] - feat_labels, feat_inds = map_and_average.get_feat_inds(n_dim=n_dim) + #feat_labels, feat_inds = map_and_average.get_feat_inds(n_dim=n_dim) + feat_labels, feat_inds = feat_inds_from_pickle(filename) #df_results = pd.DataFrame() # first the classification with all features together df_results = feat_learner.classify(X_train, Y_train, X_test, Y_test, transform_label=transform_label)