From e3b78c8a85084b4cd873350df5bc2b75009fae83 Mon Sep 17 00:00:00 2001 From: Primoz Date: Fri, 16 Sep 2022 10:58:57 +0000 Subject: [PATCH] Impute selected phone features with 0. Wifi visible, screen, and light. --- src/features/phone_light/rapids/main.py | 2 +- src/features/phone_screen/rapids/main.py | 2 +- src/features/phone_wifi_visible/rapids/main.R | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/features/phone_light/rapids/main.py b/src/features/phone_light/rapids/main.py index 32df47ef..f5644c7e 100644 --- a/src/features/phone_light/rapids/main.py +++ b/src/features/phone_light/rapids/main.py @@ -29,7 +29,7 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se if "medianlux" in features_to_compute: light_features["medianlux"] = light_data.groupby(["local_segment"])["double_light_lux"].median() if "stdlux" in features_to_compute: - light_features["stdlux"] = light_data.groupby(["local_segment"])["double_light_lux"].std() + light_features["stdlux"] = light_data.groupby(["local_segment"])["double_light_lux"].std().fillna(0) light_features = light_features.reset_index() diff --git a/src/features/phone_screen/rapids/main.py b/src/features/phone_screen/rapids/main.py index 5740e430..26580640 100644 --- a/src/features/phone_screen/rapids/main.py +++ b/src/features/phone_screen/rapids/main.py @@ -15,7 +15,7 @@ def getEpisodeDurationFeatures(screen_data, time_segment, episode, features, ref if "avgduration" in features: duration_helper = pd.concat([duration_helper, screen_data_episode.groupby(["local_segment"])[["duration"]].mean().rename(columns = {"duration":"avgduration" + episode})], axis = 1) if "stdduration" in features: - duration_helper = pd.concat([duration_helper, screen_data_episode.groupby(["local_segment"])[["duration"]].std().rename(columns = {"duration":"stdduration" + episode})], axis = 1) + duration_helper = pd.concat([duration_helper, screen_data_episode.groupby(["local_segment"])[["duration"]].std().fillna(0).rename(columns = {"duration":"stdduration" + episode})], axis = 1) if "firstuseafter" + "{0:0=2d}".format(reference_hour_first_use) in features: screen_data_episode_after_hour = screen_data_episode.copy() screen_data_episode_after_hour["hour"] = pd.to_datetime(screen_data_episode["local_start_date_time"]).dt.hour diff --git a/src/features/phone_wifi_visible/rapids/main.R b/src/features/phone_wifi_visible/rapids/main.R index 8a973809..fc914397 100644 --- a/src/features/phone_wifi_visible/rapids/main.R +++ b/src/features/phone_wifi_visible/rapids/main.R @@ -18,12 +18,15 @@ compute_wifi_feature <- function(data, feature, time_segment){ filter(N == max(N)) %>% head(1) %>% # if there are multiple device with the same amount of scans pick the first one only pull(bssid) + data <- data %>% filter_data_by_segment(time_segment) + return(data %>% filter(bssid == mostuniquedevice) %>% group_by(local_segment) %>% summarise(!!feature := n()) %>% - replace(is.na(.), 0)) + mutate_all(~replace(., is.na(.), 0)) + ) } } @@ -44,5 +47,6 @@ rapids_features <- function(sensor_data_files, time_segment, provider){ features <- merge(features, feature, by="local_segment", all = TRUE) } + features <- features %>% mutate_all(~replace(., is.na(.), 0)) return(features) }