From afdd20883c23af3ba9069df649ab37d76154d4cb Mon Sep 17 00:00:00 2001 From: Shing Chan Date: Mon, 25 Sep 2023 11:41:39 +0100 Subject: [PATCH] fix: check features finite with .all() --- src/accelerometer/classification.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/accelerometer/classification.py b/src/accelerometer/classification.py index 82b46831..b2e154ed 100644 --- a/src/accelerometer/classification.py +++ b/src/accelerometer/classification.py @@ -46,17 +46,15 @@ def activityClassification(epoch, activityModel="walmsley"): activityModel = resolveModelPath(activityModel) featureCols = joblib.load(getFileFromTar(activityModel, 'featureCols')) - - X = epoch[featureCols].to_numpy() - mask = np.isfinite(X).any(axis=1) - X = X[mask] - print(f"{len(epoch) - np.sum(mask)} rows with NaN or Inf values, out of {len(epoch)}") - model = joblib.load(getFileFromTar(activityModel, 'model')) hmmParams = joblib.load(getFileFromTar(activityModel, 'hmmParams')) labels = joblib.load(getFileFromTar(activityModel, 'labels')).tolist() - Y = viterbi(model.predict(X), hmmParams) + X = epoch[featureCols].to_numpy() + ok = np.isfinite(X).all(axis=1) + print(f"{len(epoch) - np.sum(ok)} rows with NaN or Inf values, out of {len(epoch)}") + + Y = viterbi(model.predict(X[ok]), hmmParams) if smooth_sleep: sleep = pd.Series(Y == 'sleep') @@ -79,7 +77,7 @@ def activityClassification(epoch, activityModel="walmsley"): # Append predicted activities to epoch dataframe epoch["label"] = np.nan - epoch.loc[mask, "label"] = Y + epoch.loc[ok, "label"] = Y # MET prediction METs = joblib.load(getFileFromTar(activityModel, 'METs'))