diff --git a/src/features/phone_activity_recognition/rapids/main.py b/src/features/phone_activity_recognition/rapids/main.py index 063061fe..e5752388 100644 --- a/src/features/phone_activity_recognition/rapids/main.py +++ b/src/features/phone_activity_recognition/rapids/main.py @@ -37,6 +37,6 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se ar_features.index.names = ["local_segment"] ar_features = ar_features.reset_index() - ar_features.fillna(value={"count": 0, "countuniqueactivities": 0, "durationstationary": 0, "durationmobile": 0, "durationvehicle": 0}, inplace=True) + ar_features.fillna(value={"count": 0, "countuniqueactivities": 0, "durationstationary": 0, "durationmobile": 0, "durationvehicle": 0, "mostcommonactivity": 4}, inplace=True) return ar_features diff --git a/src/features/phone_applications_foreground/rapids/main.py b/src/features/phone_applications_foreground/rapids/main.py index f35fa066..4d7814a4 100644 --- a/src/features/phone_applications_foreground/rapids/main.py +++ b/src/features/phone_applications_foreground/rapids/main.py @@ -9,19 +9,19 @@ def compute_features(filtered_data, apps_type, requested_features, apps_features if "timeoffirstuse" in requested_features: time_first_event = filtered_data.sort_values(by="timestamp", ascending=True).drop_duplicates(subset="local_segment", keep="first").set_index("local_segment") if time_first_event.empty: - apps_features["timeoffirstuse" + apps_type] = np.nan + apps_features["timeoffirstuse" + apps_type] = 1000000 # np.nan else: apps_features["timeoffirstuse" + apps_type] = time_first_event["local_hour"] * 60 + time_first_event["local_minute"] if "timeoflastuse" in requested_features: time_last_event = filtered_data.sort_values(by="timestamp", ascending=False).drop_duplicates(subset="local_segment", keep="first").set_index("local_segment") if time_last_event.empty: - apps_features["timeoflastuse" + apps_type] = np.nan + apps_features["timeoflastuse" + apps_type] = 1000000 # np.nan else: apps_features["timeoflastuse" + apps_type] = time_last_event["local_hour"] * 60 + time_last_event["local_minute"] if "frequencyentropy" in requested_features: apps_with_count = filtered_data.groupby(["local_segment","application_name"]).count().sort_values(by="timestamp", ascending=False).reset_index() if (len(apps_with_count.index) < 2 ): - apps_features["frequencyentropy" + apps_type] = np.nan + apps_features["frequencyentropy" + apps_type] = 0 # np.nan else: apps_features["frequencyentropy" + apps_type] = apps_with_count.groupby("local_segment")["timestamp"].agg(entropy) if "countevent" in requested_features: @@ -43,6 +43,7 @@ def compute_features(filtered_data, apps_type, requested_features, apps_features apps_features["sumduration" + apps_type] = filtered_data.groupby(by = ["local_segment"])["duration"].sum() apps_features.index.names = ["local_segment"] + return apps_features def process_app_features(data, requested_features, time_segment, provider, filter_data_by_segment):