Temporian核心功能详解:事件集操作与时间窗口分析实战
Temporian核心功能详解:事件集操作与时间窗口分析实战
【免费下载链接】temporianTemporian is an open-source Python library for preprocessing ⚡ and feature engineering 🛠 temporal data 📈 for machine learning applications 🤖项目地址: https://gitcode.com/gh_mirrors/te/temporian
Temporian是一个开源Python库,专为机器学习应用中的时间数据预处理和特征工程设计。它提供了高效的事件集操作和灵活的时间窗口分析能力,帮助开发者轻松处理时序数据。
事件集(EventSet):时间数据的核心容器
事件集(EventSet)是Temporian中处理时间数据的核心数据结构,类似于Pandas的DataFrame,但专为时序数据优化。它将数据组织为带有时间戳的事件集合,支持高效的时间序列操作和特征工程。
EventSet的主要特点包括:
- 内置时间戳管理,确保数据按时间顺序处理
- 支持多维度索引,方便进行分组时间序列分析
- 提供丰富的操作接口,简化时间特征工程流程
创建EventSet非常简单,可以通过temporian.event_set()函数直接创建,或从Pandas DataFrame转换而来:
import temporian as tp # 从数组创建EventSet evset = tp.event_set( timestamps=[1, 2, 3, 4], features={"temperature": [20.0, 21.0, 22.0, 23.0]} ) # 从Pandas DataFrame创建 import pandas as pd df = pd.DataFrame({ "timestamp": [1, 2, 3, 4], "temperature": [20.0, 21.0, 22.0, 23.0] }) evset = tp.from_pandas(df, timestamp_column="timestamp")EventSet支持多种基本操作,如添加索引、选择特征、过滤事件等,这些操作可以通过直观的方法调用来完成。
时间窗口分析:捕捉时序数据的动态特征
时间窗口分析是时序特征工程的核心技术,Temporian提供了丰富的窗口操作功能,能够捕捉时间序列的动态变化特征。
窗口长度(window_length)参数解析
窗口长度是控制窗口分析的关键参数,可以是固定值或动态值:
- 固定窗口长度:使用数字或Duration对象指定,如
window_length=10.0表示10个时间单位 - 动态窗口长度:使用另一个EventSet指定,使窗口大小随时间变化
# 固定窗口长度 fixed_window = evset.simple_moving_average(window_length=10.0) # 动态窗口长度 window_length_evset = tp.event_set( timestamps=[1, 2, 3], features={"window_size": [5.0, 10.0, 15.0]} ) dynamic_window = evset.simple_moving_average(window_length=window_length_evset)常用窗口操作
Temporian提供了多种窗口操作函数,满足不同的特征提取需求:
1. 简单移动平均(Simple Moving Average)
计算窗口内的平均值,平滑短期波动,突出长期趋势:
sma = evset.simple_moving_average(window_length=5.0)2. 移动总和(Moving Sum)
计算窗口内的总和,适用于累计指标分析:
ms = evset.moving_sum(window_length=3.0)3. 移动计数(Moving Count)
统计窗口内的事件数量,可用于计算事件频率:
mc = evset.moving_count(window_length=10.0)4. 移动最大/最小值(Moving Max/Min)
捕捉窗口内的极值,识别异常值或周期性峰值:
mmax = evset.moving_max(window_length=7.0) mmin = evset.moving_min(window_length=7.0)窗口分析实战案例
下面是一个展示多门店收入数据的时间窗口分析结果,使用简单移动平均计算各门店的收入趋势:
该图表展示了三个不同门店在2023年9月至12月期间的收入趋势,通过时间窗口分析平滑了每日收入波动,更清晰地显示了长期趋势和周期性模式。
高级事件集操作:构建复杂特征工程管道
Temporian提供了丰富的事件集操作,支持构建复杂的特征工程管道。
1. 事件过滤
根据时间或特征值过滤事件,聚焦关键数据:
# 过滤特定时间范围内的事件 filtered = evset.filter(evset.timestamps() > 100) # 使用移动计数过滤高频事件 sparse_evset = evset.filter_moving_count(window_length=1.5)2. 事件连接(Join)
合并不同来源的事件数据,丰富分析维度:
# 按时间连接两个事件集 joined = evset1.join(evset2, on="timestamp")3. 特征转换
对事件特征进行各种数学转换,生成新特征:
# 计算特征的绝对值 abs_evset = evset.abs() # 计算特征的自然对数 log_evset = evset.log()4. 时间偏移(Lag)
创建特征的滞后版本,捕捉时间序列的延迟效应:
# 将特征值滞后2个时间单位 lagged_evset = evset.lag(duration=2.0)总结与最佳实践
Temporian提供了强大的事件集操作和时间窗口分析功能,为时序数据预处理和特征工程提供了高效解决方案。以下是一些使用Temporian的最佳实践:
合理选择窗口长度:根据数据的时间粒度和业务需求选择合适的窗口长度,平衡噪声消除和趋势捕捉。
利用动态窗口:对于具有变化模式的时间序列,考虑使用动态窗口长度适应不同时期的特性。
组合多种窗口操作:结合不同的窗口操作(如移动平均、移动最大/最小值)构建多维度特征。
优化事件集索引:合理设置事件集索引,提高分组操作和窗口分析的效率。
通过灵活运用Temporian的事件集操作和时间窗口分析功能,开发者可以快速构建强大的时序特征工程管道,为机器学习模型提供高质量的时间序列特征。
要开始使用Temporian,只需克隆仓库并安装:
git clone https://gitcode.com/gh_mirrors/te/temporian cd temporian pip install .更多详细信息和高级用法,请参考项目文档和示例代码。
【免费下载链接】temporianTemporian is an open-source Python library for preprocessing ⚡ and feature engineering 🛠 temporal data 📈 for machine learning applications 🤖项目地址: https://gitcode.com/gh_mirrors/te/temporian
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考