def test(device, use_features, clf_name, with_feature_selection, activities_to_use, dataset_path): print(device, use_features, clf_name, str(with_feature_selection), dataset_path) file_name = device if with_feature_selection: file_name += '_selected' df = pd.read_pickle(dataset_path + file_name + '.p') df_labels = pd.read_pickle(dataset_path + device + '_labels.p') ## filter activities df_labels = df_labels.loc[df_labels.label.isin(activities_to_use)] df = df.loc[df.index.isin(df_labels.index)] ## filter features df = df.filter(regex=(use_features)) if len(df.columns) == 0: print('No features found for') return None X_train, y_train, X_test, y_test = split_one_df(df, df_labels, 0.7) try: y_pred = classify(X_train, y_train, X_test, clf_name) except ValueError as ex: print(ex) return None r = log_of_classification_results(y_test, y_pred) return r
def test(source_device, target_device, dataset_path, use_features, use_activities, with_feature_selection, clf_name): source_file_name = source_device + '_selected' if with_feature_selection else source_device ## read features df_source = pd.read_pickle(dataset_path + source_file_name + '.p') df_target = pd.read_pickle(dataset_path + target_device + '.p') ## read labels df_source_labels = pd.read_pickle(dataset_path + source_device + '_labels.p') df_target_labels = pd.read_pickle(dataset_path + target_device + '_labels.p') ## filter activities df_source, df_source_labels, df_target, df_target_labels = \ filter_by_activities(df_source, df_source_labels, df_target, df_target_labels, use_activities) if df_source is None: return None ## split activities into 70/30 ratio = 0.7 window_ids = df_source_labels['window_id'].tolist( ) + df_target_labels['window_id'].tolist() window_ids = np.unique(window_ids) np.random.shuffle(window_ids) split = int(round(ratio * len(window_ids))) training_i = window_ids[:split] testing_i = window_ids[split:] df_source_labels = df_source_labels.loc[df_source_labels.window_id.isin( training_i)] df_target_labels = df_target_labels.loc[df_target_labels.window_id.isin( testing_i)] df_source = df_source.loc[df_source.index.isin(df_source_labels.index)] df_target = df_target.loc[df_target.index.isin(df_target_labels.index)] df_source, df_target = filter_by_features(df_source, df_target, use_features) if df_source is None: return None y_source = df_source_labels['label'] y_target = df_target_labels['label'] X_source = X_sort(df_source) X_target = X_sort(df_target) try: y_target_pred = classify(X_source, y_source, X_target, clf_name) except ValueError as ex: print(ex) return None r = log_of_classification_results(y_target, y_target_pred) return r
def test(sources, target, use_features, clf_name): df_sources = [ pd.read_pickle(dataset_path + source + '.p') for source in sources ] df_target = pd.read_pickle(dataset_path + target + '.p') df_labels = pd.DataFrame.from_csv(dataset_path + 'activity_labels.csv') df_sources = [df.filter(regex=(use_features)) for df in df_sources] df_target = df_target.filter(regex=(use_features)) X_train, y_train, X_test, y_test = \ split_with_multiple_sources(df_sources, df_target, df_labels, 0.7) y_pred = classify(X_train, y_train, X_test, clf_name) r = log_of_classification_results(y_test, y_pred) return r
def test(source, target, use_features, clf_name, target_data_ratio): df_train = pd.read_pickle(dataset_path + source + '.p') df_test = pd.read_pickle(dataset_path + target + '.p') df_labels = pd.DataFrame.from_csv(dataset_path + 'activity_labels.csv') df_train = df_train.filter(regex=(use_features)) df_test = df_test.filter(regex=(use_features)) X_train, y_train, X_test, y_test = \ split_with_target_training_data(df_source=df_train, df_target=df_test, df_labels=df_labels, ratio=0.7, target_data_ratio=target_data_ratio) y_pred = classify(X_train, y_train, X_test, clf_name) r = log_of_classification_results(y_test, y_pred) return r
def test(source_device, target_device, source_dataset_path, target_dataset_path, use_features, use_activities, with_feature_selection, clf_name): # print(source_device, target_device, source_dataset_path, target_dataset_path) source_file_name = source_device + '_selected' if with_feature_selection else source_device ## read features df_source = pd.read_pickle(source_dataset_path + source_file_name + '.p') df_target = pd.read_pickle(target_dataset_path + target_device + '.p') ## read labels df_source_labels = pd.read_pickle(source_dataset_path + source_device + '_labels.p') df_target_labels = pd.read_pickle(target_dataset_path + target_device + '_labels.p') df_source, df_target = filter_by_features(df_source, df_target, use_features) if df_source is None: return None ## filter activities df_source, df_source_labels, df_target, df_target_labels = \ filter_by_activities(df_source, df_source_labels, df_target, df_target_labels, use_activities) if df_source is None: return None y_source = df_source_labels['label'] y_target = df_target_labels['label'] X_source = X_sort(df_source) X_target = X_sort(df_target) try: y_target_pred = classify(X_source, y_source, X_target, clf_name) except ValueError as ex: print(ex) return None r = log_of_classification_results(y_target, y_target_pred) return r