Exemple #1
0
def test_extract_vectors_from_dict_returns_expected_numpy_arrays():
    given = {
        (2, "Walking"): ((186, 15.5), (6, 0.5)),
        (2, "Standing"): ((0, 0), (6, 0.5))
    }
    expected = (np.array([186, 6, 0, 6]), np.array([15.5, 0.5, 0.0, 0.5]))
    result = features.extract_vectors_from_dict(given)
    assert_array_equal(result[0], expected[0])
    assert_array_equal(result[1], expected[1])
Exemple #2
0
def feature_histograms_for_activities(interval_features, activities, bins):
    for activity in activities:
        activity_intervals = parse.collect_dict_values_by_key_content(interval_features, activity)
        feature_vectors = features.extract_vectors_from_dict(activity_intervals)
        for i, vector in enumerate(feature_vectors):
            plt.figure(figsize=(15, 5))
            plt.hist(
                vector,
                bins=bins,
                normed=1, facecolor='blue', alpha=0.5)
            plt.title(activity + " x_" + str(i))
            plt.show()
Exemple #3
0
def test_extract_vectors_from_dict_handles_three_entry_case():
    given = {
        (1, 'Downstairs'): (
            (85, 12),
            (81, 12),
            (70, 12),
        ),
    }
    expected = (np.array([85, 81, 70]), np.array([12, 12, 12]))
    result = features.extract_vectors_from_dict(given)
    assert_array_equal(result[0], expected[0])
    assert_array_equal(result[1], expected[1])
Exemple #4
0
def test_extract_vectors_from_dict_handles_keys_mapping_to_empty_tuples():
    given = {
        (2, "Walking"): ((186, 15.5), (6, 0.5)),
        (2, "Jogging"): (),
        (2, "Standing"): ((0, 0), (6, 0.5)),
        (3, "Standing"): ((0, 0), (6, 0.5))
    }
    expected = (np.array([186, 6, 0, 6, 0,
                          6]), np.array([15.5, 0.5, 0.0, 0.5, 0, 0.5]))
    result = features.extract_vectors_from_dict(given)
    assert_array_equal(result[0], expected[0])
    assert_array_equal(result[1], expected[1])
 def feature_means_and_variances(
     data: Dict[Tuple[int, str], Sequence[Sequence[float]]],
     activities: Set[str]
 ) -> Dict[str, Sequence[Tuple[float, float]]]:
     out = dict()
     for activity in activities:
         activity_features = parse.collect_dict_values_by_key_content(data, activity)
         value_vectors = features.extract_vectors_from_dict(activity_features)
         means_and_variances = []
         for vector in value_vectors:
             means_and_variances.append((float(np.mean(vector)), float(np.var(vector))))
         out[activity] = means_and_variances
     return out
Exemple #6
0
def feature_scatter_for_activities(interval_features, activities, colours):
    fig, ax = plt.subplots(figsize=(10, 10))
    for i, activity in enumerate(activities):
        activity_intervals = parse.collect_dict_values_by_key_content(interval_features, activity)
        x = features.extract_vectors_from_dict(activity_intervals)
        ax.scatter(x[0], x[1], c=colours[i], alpha=0.4, marker='.', label=activity)
    ax.set_xlim((0, 200))
    ax.set_ylim((0, 40))
    x0, x1 = ax.get_xlim()
    y0, y1 = ax.get_ylim()
    ax.set_aspect(abs(x1 - x0) / abs(y1 - y0))
    ax.set_title("")
    plt.xlabel("mean absolute magnitude change per second")
    plt.ylabel("mean angle change per second")
    ax.legend()
    plt.show()