【发布时间】:2021-08-15 18:28:46
【问题描述】:
我正在尝试将每日稳定性计算为 Python 中机器学习分类的一项功能。我的数据是多天的 - 我正在使用this dataset (sample CSV)。该数据以分钟的频率进行采样,即我们每小时进行 60 次测量。公式为:
所以我的做法是:
def interdaily_stability(df: pd.DataFrame) -> float:
X_mean = df["activity"].mean()
hourly_means = df.resample("H", on="timestamp").mean()["activity"].values
p = len(hourly_means)
numerator = (1/p) * np.sum(np.square((hourly_means - X_mean)))
denominator = df["activity"].var()
return numerator / denominator
- 这个公式对吗?特别是
p对吗? - 特别是,我是否在计算这个权利好几天?如果没有,我该如何纠正?
我知道pyActigraphy 存在,但那里的实现似乎不适合我的情况,例如那里的数据首先用.resample("1H").sum()重新采样,然后按小时、分钟和秒分组(我什至没有这样的分辨率)。
我还尝试在 R 中翻译 nparACT 库中的代码,但我对 R 的了解不够:nparACT implementation。
【问题讨论】:
-
如果你想用python回答,请不要标记R
-
...当您使用 pandas 和数据框时,做相应地标记您的问题。
标签: python pandas dataframe time-series signal-processing