Debugging EDA signal - preliminary step for imputation.
parent
9ea39dc557
commit
212cf300f8
|
@ -484,7 +484,7 @@ EMPATICA_ACCELEROMETER:
|
||||||
FEATURES: ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"]
|
FEATURES: ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"]
|
||||||
SRC_SCRIPT: src/features/empatica_accelerometer/dbdp/main.py
|
SRC_SCRIPT: src/features/empatica_accelerometer/dbdp/main.py
|
||||||
CR:
|
CR:
|
||||||
COMPUTE: True
|
COMPUTE: False
|
||||||
FEATURES: ["totalMagnitudeBand", "absoluteMeanBand", "varianceBand"] # Acc features
|
FEATURES: ["totalMagnitudeBand", "absoluteMeanBand", "varianceBand"] # Acc features
|
||||||
WINDOWS:
|
WINDOWS:
|
||||||
COMPUTE: True
|
COMPUTE: True
|
||||||
|
@ -512,7 +512,7 @@ EMPATICA_TEMPERATURE:
|
||||||
FEATURES: ["maxtemp", "mintemp", "avgtemp", "mediantemp", "modetemp", "stdtemp", "diffmaxmodetemp", "diffminmodetemp", "entropytemp"]
|
FEATURES: ["maxtemp", "mintemp", "avgtemp", "mediantemp", "modetemp", "stdtemp", "diffmaxmodetemp", "diffminmodetemp", "entropytemp"]
|
||||||
SRC_SCRIPT: src/features/empatica_temperature/dbdp/main.py
|
SRC_SCRIPT: src/features/empatica_temperature/dbdp/main.py
|
||||||
CR:
|
CR:
|
||||||
COMPUTE: True
|
COMPUTE: False
|
||||||
FEATURES: ["maximum", "minimum", "meanAbsChange", "longestStrikeAboveMean", "longestStrikeBelowMean",
|
FEATURES: ["maximum", "minimum", "meanAbsChange", "longestStrikeAboveMean", "longestStrikeBelowMean",
|
||||||
"stdDev", "median", "meanChange", "sumSquared", "squareSumOfComponent", "sumOfSquareComponents"]
|
"stdDev", "median", "meanChange", "sumSquared", "squareSumOfComponent", "sumOfSquareComponents"]
|
||||||
WINDOWS:
|
WINDOWS:
|
||||||
|
@ -553,7 +553,7 @@ EMPATICA_BLOOD_VOLUME_PULSE:
|
||||||
FEATURES: ["maxbvp", "minbvp", "avgbvp", "medianbvp", "modebvp", "stdbvp", "diffmaxmodebvp", "diffminmodebvp", "entropybvp"]
|
FEATURES: ["maxbvp", "minbvp", "avgbvp", "medianbvp", "modebvp", "stdbvp", "diffmaxmodebvp", "diffminmodebvp", "entropybvp"]
|
||||||
SRC_SCRIPT: src/features/empatica_blood_volume_pulse/dbdp/main.py
|
SRC_SCRIPT: src/features/empatica_blood_volume_pulse/dbdp/main.py
|
||||||
CR:
|
CR:
|
||||||
COMPUTE: True
|
COMPUTE: False
|
||||||
FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features
|
FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features
|
||||||
'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features
|
'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features
|
||||||
WINDOWS:
|
WINDOWS:
|
||||||
|
@ -572,7 +572,7 @@ EMPATICA_INTER_BEAT_INTERVAL:
|
||||||
FEATURES: ["maxibi", "minibi", "avgibi", "medianibi", "modeibi", "stdibi", "diffmaxmodeibi", "diffminmodeibi", "entropyibi"]
|
FEATURES: ["maxibi", "minibi", "avgibi", "medianibi", "modeibi", "stdibi", "diffmaxmodeibi", "diffminmodeibi", "entropyibi"]
|
||||||
SRC_SCRIPT: src/features/empatica_inter_beat_interval/dbdp/main.py
|
SRC_SCRIPT: src/features/empatica_inter_beat_interval/dbdp/main.py
|
||||||
CR:
|
CR:
|
||||||
COMPUTE: True
|
COMPUTE: False
|
||||||
FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features
|
FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features
|
||||||
'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features
|
'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features
|
||||||
PATCH_WITH_BVP: True
|
PATCH_WITH_BVP: True
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
Binary file not shown.
After Width: | Height: | Size: 98 KiB |
|
@ -38,8 +38,8 @@ def extract_second_order_features(intraday_features, so_features_names, prefix="
|
||||||
so_features[prefix+"SO_numPeaksNonZero"] = intraday_features.groupby(groupby_cols)[prefix+"numPeaks"].apply(lambda x: (x!=0).sum())
|
so_features[prefix+"SO_numPeaksNonZero"] = intraday_features.groupby(groupby_cols)[prefix+"numPeaks"].apply(lambda x: (x!=0).sum())
|
||||||
|
|
||||||
# numWindowsNonZero specialized for BVP and IBI sensors
|
# numWindowsNonZero specialized for BVP and IBI sensors
|
||||||
if "hrv_num_windows_non_zero" in so_features_names and prefix+"meanHr" in intraday_features.columns:
|
if "hrv_num_windows_non_nan" in so_features_names and prefix+"meanHr" in intraday_features.columns:
|
||||||
so_features[prefix+"SO_numWindowsNonZero"] = intraday_features.groupby(groupby_cols)[prefix+"meanHr"].apply(lambda x: (x!=0).sum())
|
so_features[prefix+"SO_numWindowsNonNaN"] = intraday_features.groupby(groupby_cols)[prefix+"meanHr"].apply(lambda x: (x!=0).sum())
|
||||||
|
|
||||||
so_features.reset_index(inplace=True)
|
so_features.reset_index(inplace=True)
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,50 @@
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import seaborn as sns
|
import seaborn as sns
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
from itertools import compress
|
||||||
|
|
||||||
# path = "/rapids/data/processed/features/all_participants/all_sensor_features.csv" # all features all participants
|
# path = "/rapids/data/processed/features/all_participants/all_sensor_features.csv" # all features all participants
|
||||||
# path = "/rapids/data/interim/p03/empatica_accelerometer_features/empatica_accelerometer_python_cr_windows.csv"
|
# path = "/rapids/data/interim/p03/empatica_accelerometer_features/empatica_accelerometer_python_cr_windows.csv"
|
||||||
path = "/rapids/data/interim/p031/empatica_electrodermal_activity_features/empatica_electrodermal_activity_python_cr_windows.csv"
|
path = "/rapids/data/interim/p01/empatica_electrodermal_activity_features/empatica_electrodermal_activity_python_cr_windows.csv"
|
||||||
# path = "/rapids/data/interim/p02/empatica_inter_beat_interval_features/empatica_inter_beat_interval_python_cr_windows.csv"
|
# path = "/rapids/data/interim/p02/empatica_inter_beat_interval_features/empatica_inter_beat_interval_python_cr_windows.csv"
|
||||||
# path = "/rapids/data/interim/p02/empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_python_cr_windows.csv"
|
# path = "/rapids/data/interim/p02/empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_python_cr_windows.csv"
|
||||||
# path = "/rapids/data/interim/p02/empatica_temperature_features/empatica_temperature_python_cr_windows.csv"
|
# path = "/rapids/data/interim/p02/empatica_temperature_features/empatica_temperature_python_cr_windows.csv"
|
||||||
|
|
||||||
df = pd.read_csv(path)
|
df = pd.read_csv(path)
|
||||||
print(df)
|
df_num_peaks_zero = df[df["empatica_electrodermal_activity_cr_numPeaks"] == 0]
|
||||||
is_NaN = df.isnull()
|
columns_num_peaks_zero = df_num_peaks_zero.columns[df_num_peaks_zero.isna().any()].tolist()
|
||||||
df = df[df["empatica_electrodermal_activity_cr_numPeaks"]]
|
|
||||||
print(df)
|
df_num_peaks_non_zero_t = df[df["empatica_electrodermal_activity_cr_numPeaks"] != 0]
|
||||||
|
df_num_peaks_non_zero = df_num_peaks_non_zero_t[columns_num_peaks_zero]
|
||||||
|
|
||||||
|
|
||||||
# row_has_NaN = is_NaN. any(axis=1)
|
# row_has_NaN = is_NaN. any(axis=1)
|
||||||
# rows_with_NaN = df[row_has_NaN]
|
# rows_with_NaN = df[row_has_NaN]
|
||||||
# print(rows_with_NaN.size)
|
# print(rows_with_NaN.size)
|
||||||
|
pd.set_option('display.max_columns', None)
|
||||||
|
# # pd.set_option('display.max_rows', None)
|
||||||
|
# print(df_num_peaks_non_zero)
|
||||||
|
df_q = pd.DataFrame()
|
||||||
|
for col in df_num_peaks_non_zero:
|
||||||
|
df_q[col] = pd.to_numeric(pd.cut(df_num_peaks_non_zero[col], bins=[-1,0,0.000000000001,1000], labels=[-1,0,1], right=False))
|
||||||
|
|
||||||
# sns.heatmap(df.isna(), cbar=False)
|
sns.heatmap(df_q)
|
||||||
plt.savefig('eda_windows_p03_window_60_thresh_default.png', bbox_inches='tight')
|
plt.savefig('eda_windows_p01_window_non_zero.png', bbox_inches='tight')
|
||||||
|
plt.close()
|
||||||
|
|
||||||
|
# Filter columns that do not contain 0
|
||||||
|
non_zero_cols = list(compress(columns_num_peaks_zero, df_num_peaks_non_zero.all().tolist()))
|
||||||
|
zero_cols = list(set(columns_num_peaks_zero) - set(non_zero_cols))
|
||||||
|
|
||||||
|
print(non_zero_cols, "\n")
|
||||||
|
print(zero_cols)
|
||||||
|
|
||||||
|
# maxPeakAmplitudeChangeBefore
|
||||||
|
|
||||||
|
mpacb = df_num_peaks_non_zero_t\
|
||||||
|
[(df_num_peaks_non_zero_t['empatica_electrodermal_activity_cr_avgPeakAmplitudeChangeBefore'] != 0) \
|
||||||
|
& (df_num_peaks_non_zero_t['empatica_electrodermal_activity_cr_numPeaks'] != 0)]
|
||||||
|
print(mpacb['empatica_electrodermal_activity_cr_numPeaks'])
|
||||||
|
sns.heatmap(mpacb['empatica_electrodermal_activity_cr_numPeaks'])
|
||||||
|
plt.savefig('maxPeakAmplitudeChangeBefore.png', bbox_inches='tight')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue