python - 如何标准化unix时间戳以求和为离散数值?

标签 python time-series timestamp unix-timestamp

bounty 3 天后到期。这个问题的答案有资格获得 +50 声望奖励。
loretoparisi正在寻找规范的答案。







我有一个“理想”公式,其中我有一个值的总和,例如

score[i] = SUM(properties[i]) * frequency[i] + recency[i]
properties作为值的向量,frequencyrecency标量值,取自给定的 N 项数据集。虽然这里的所有变量都是数字和离散整数值,但 recency value 是给定时间范围内的 UNIX 时间戳(例如从现在开始的 1 个月,或从现在开始的 1 周,等等)。
在数据集中,每一项 i有一个日期值表示为 recency[i] ,以及频率值 frequency[i] ,以及列表 properties[i] . item[i]的所有属性因此在每一天都被评估为 recency[i]在建议的时间范围内。
根据这个公式,对 score 的近因贡献item[i] 的值是负贡献:时间戳越旧,得分越好(因此该公式中的 + 符号)。
我的想法是在给定范围内使用重新缩放方法,例如
scaler = MinMaxScaler(feature_range=(min(recencyVec), max(recencyVec)))
scaler = scaler.fit(values)
normalized = scaler.transform(values)
哪里recencyVec收集所有 recency每个数据点的向量,其中 min(recencyVec)是第一天和max(recencyVec)是最后一天。
使用 scikit-learn 对象 MinMaxScaler ,从而转换 recency按照 How to Normalize and Standardize Time Series Data in Python 中的建议,通过将每个特征缩放到给定范围来获取值
这是这个数值公式的正确方法吗?当与其他离散数值相加时,哪种替代方法可以将时间戳值归一化?

最佳答案

recency那么绝对的 UNIX 时间戳?或者你已经减去了当前的时间戳?如果不是,那么根据您的目标,只需从 recency 中减去当前的 unix 时间戳就足够了。 ,以便它始终如一地描述“从现在开始的秒数”,或时间增量而不是绝对 unix 时间。
当然,这会产生相当大的分数,但它会保持一致。
您使用的缩放比例取决于您的目标(可接受的 score 是多少?),但许多都是有效的,只要它们是单调的。除了最小-最大缩放(我建议使用 0 作为最小值并将最大值设置为某个已知的最大时间偏移),您可能还需要考虑对数转换。

关于python - 如何标准化unix时间戳以求和为离散数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69771922/

相关文章:

ios - Swift 中的时间戳

python - 如何从日期获取月份和年份

python - 如何在Python中停止单个多处理进程?

python - 从 pandas 数据框中提取多年三个月系列(冬季)

python - 对 pandas 数据框中每个时间序列的第一次出现之前和最后一次出现之后的 NaN 值进行切片

machine-learning - 如何在时间步数过多的时间序列数据上训练 LSTM?

android - 如何比较android中的两个时间戳?

javascript - 将年、月、日转换为 momentjs Unix 时间戳

python - 如何在 Python 中对两个数组求和?

python - 管道 JSON 到 mongoimport