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)