【发布时间】:2021-12-14 17:00:10
【问题描述】:
我有一个“理想”公式,其中我有一个像这样的值的总和
score[i] = SUM(properties[i]) * frequency[i] + recency[i]
properties 是值向量,frequency 和 recency 标量值,取自给定的 N 个项目数据集。虽然这里的所有变量都是数字且具有离散整数值,但recency 值是给定时间范围内的 UNIX 时间戳(例如从现在开始 1 个月,或者从现在开始 1 周,等等)。
在数据集中,每个项目i都有一个表示为recency[i]的日期值和一个频率值frequency[i],以及列表properties[i]。因此,item[i] 的所有属性都会在建议的时间范围内以recency[i] 表示的每一天进行评估。
根据此公式,item[i] 的新近度对 score 值的贡献是负贡献:时间戳越旧,得分越高(因此+ 在该公式中签名)。
我的想法是在给定范围内使用重新缩放方法,例如
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 值,如如何 Normalize and Standardize Time Series Data in Python 中所建议的那样
这是这个数值公式的正确方法吗?当与其他离散数值相加时,哪种替代方法可以标准化时间戳值?
【问题讨论】:
标签: python time-series timestamp unix-timestamp