示例#1
0
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
示例#3
0
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
示例#4
0
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