def bolt_obj_2_feature_vector(all_features_obj_dict, feature_name_list): """ For each object - pull out features and store in feature_obj with the same structure as all_bolt_data Dictionary - "tap", "slide", "slow_slide", "thermal_hold", "squeeze" Directly store the features into a vector See createFeatureVector for more details on structure """ # Store in feature class object all_features_vector_dict = dict() # For all motions for motion_name in all_features_obj_dict: feature_obj_list = all_features_obj_dict.get(motion_name) all_adjective_labels_dict = dict() feature_vector_list = list() feature_label_list = list() # For all objects for bolt_feature_obj in feature_obj_list: # Create feature vector feature_vector, object_id = utilities.createFeatureVector( bolt_feature_obj, feature_name_list) feature_vector_list.append(feature_vector) feature_label_list.append(object_id) # Create label dictionary labels = bolt_feature_obj.labels for adjective in labels: # Check if it is the first time adjective added if (all_adjective_labels_dict.has_key(adjective)): adjective_array = all_adjective_labels_dict[adjective] else: adjective_array = list() # Store array adjective_array.append(labels[adjective]) all_adjective_labels_dict[adjective] = adjective_array # Store all of the objects away all_features_vector_dict[motion_name] = (np.array(feature_vector_list), feature_label_list) return (all_features_vector_dict, all_adjective_labels_dict)
def bolt_obj_2_feature_vector(all_features_obj_dict, feature_name_list): """ For each object - pull out features and store in feature_obj with the same structure as all_bolt_data Dictionary - "tap", "slide", "slow_slide", "thermal_hold", "squeeze" Directly store the features into a vector See createFeatureVector for more details on structure """ # Store in feature class object all_features_vector_dict = dict() # For all motions for motion_name in all_features_obj_dict: feature_obj_list = all_features_obj_dict.get(motion_name) all_adjective_labels_dict = dict() feature_vector_list = list() feature_label_list = list() # For all objects for bolt_feature_obj in feature_obj_list: # Create feature vector feature_vector, object_id = utilities.createFeatureVector(bolt_feature_obj, feature_name_list) feature_vector_list.append(feature_vector) feature_label_list.append(object_id) # Create label dictionary labels = bolt_feature_obj.labels for adjective in labels: # Check if it is the first time adjective added if (all_adjective_labels_dict.has_key(adjective)): adjective_array = all_adjective_labels_dict[adjective] else: adjective_array = list() # Store array adjective_array.append(labels[adjective]) all_adjective_labels_dict[adjective] = adjective_array # Store all of the objects away all_features_vector_dict[motion_name] = (np.array(feature_vector_list), feature_label_list) return (all_features_vector_dict, all_adjective_labels_dict)
def bolt_obj_2_feature_vector(all_features_obj_dict, feature_name_list): """ Pull out PCA components from all data For each object - pull out features and store in feature_obj with the same structure as all_bolt_data Dictionary - "tap", "slide", "slow_slide", "thermal_hold", "squeeze" Directly store the features into a vector See createFeatureVector for more details on structure """ # DO PCA Calculations here # Store in feature class object all_features_vector_dict = dict() # Store labels for motion_name in all_features_obj_dict: feature_obj_list = all_features_obj_dict.get(motion_name) all_adjective_labels_dict = dict() feature_vector_list = list() # For all objects for bolt_feature_obj in feature_obj_list: # Create feature vector feature_vector = utilities.createFeatureVector(bolt_feature_obj, feature_name_list) feature_vector_list.append(feature_vector) # Create label dictionary labels = bolt_feature_obj.labels for adjective in labels: # Check if it is the first time adjective added if (all_adjective_labels_dict.has_key(adjective)): adjective_array = all_adjective_labels_dict[adjective] else: adjective_array = list() # Store array adjective_array.append(labels[adjective]) all_adjective_labels_dict[adjective] = adjective_array # Store all of the objects away all_features_vector_dict[motion_name] = np.array(feature_vector_list) return (all_features_vector_dict, all_adjective_labels_dict) """ def true_false_results(predicted_labels, true_labels): #FP = (predicted_labels - true_labels).tolist().count(1) #FN = (predicted_labels - true_labels).tolist().count(-1) #TP = (predicted_labels & true_labels).tolist().count(1) #TN = ((predicted_labels | true_labels) ^ True).tolist().count(1) return(TP, TN, FP, FN) #def matthews_corr_coef(TP,TN,FP,FN): try: MCC = (TP*TN - FP*FN)/(np.sqrt(((TP+FP)*(TP+FN)*(TN+FP)*(TN+FN)))) except: MCC = (TP*TN - FP*FN)/1 return (MCC) """ #def train_knn(train_vector, train_labels, test_vector, test_labels): """ train_knn - expects a vector of features and a nx1 set of corresponding labels. Finally the number of neighbors used for comparison Returns a trained knn classifier """ """