可伸缩的时间序列特征计算
项目描述
FastTSFeatures
时间序列特征提取作为服务。FastTSFeatures是一个作为服务的SDK,用于计算静态、时间和日历变量。
该软件包作为tsfresh、tsfeatures和holidays的包装器。由于我们负责整个基础设施,特征提取变得像在Python笔记本中运行一行代码或调用API一样简单。
为什么?
我们构建FastTSFeatures,因为我们想要一种简单快捷的方式来提取时间序列特征,无需考虑基础设施和部署。现在我们想看看其他数据科学家是否也认为它很有用。
目录
可用功能(超过600个)
- 40+功能:https://github.com/Nixtla/tsfeatures
- 600+时间特征:https://github.com/blue-yonder/tsfresh/
- 10个时间特征(滞后、平均滞后、标准滞后)[目前仅支持每日数据] 日历特征(到假期的分钟距离)
- 83个国家的日历功能 https://github.com/dr-prodigy/python-holidays
安装
pip install fasttsfeatures
如何使用
您可以使用FastTSFeatures,要么使用完全公开的S3存储桶,要么上传文件到我们提供的自己的S3存储桶。
数据格式
目前我们只支持.csv
文件。这些文件必须包含至少3列,包括unique_id(每个时间序列的标识符)、日期戳和值。
1. 请求免费试用
发送电子邮件至: fede.garza.ramirez@gmail.com 请求免费试用,并获取您的 BUCKET_NAME
、API_ID
、API_KEY
、AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
。
2. 在私有S3桶上运行fasttsfeatures
如果您不希望其他人可能访问您的数据,您可以在私有S3存储桶上运行fasttsfeatures
。为此,您必须将数据上传到我们将为您提供的私有S3存储桶;您可以在Python内部完成此操作。
2.1 从Python上传到S3
您需要我们提供的AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。
- 导入并实例化
TSFeatures
,引入您的BUCKET_NAME
、API_ID
、API_KEY
、AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
。
from fasttsfeatures.core import TSFeatures
tsfeatures = TSFeatures(bucket_name='<BUCKET_NAME>',
api_id='<API_ID>',
api_key='<API_KEY>',
aws_access_key_id='<AWS_ACCESS_KEY_ID>',
aws_secret_access_key='<AWS_SECRET_ACCESS_KEY>')
- 引入文件名上传您的本地文件。
s3_uri = tsfeatures.upload_to_s3(file='<YOUR FILE NAME>')
- 运行特征提取过程
您可以在上传的数据上运行时间、静态或日历特征。要运行该过程,请指定
s3_uri
:调用tsfeatures.upload_to_s3()
后提供的S3 uri。freq
:整数,其中
{'Hourly':24, 'Daily': 7, 'Monthly': 12, 'Quarterly': 4, 'Weekly':52, 'Yearly': 1}.-
ds_column
:唯一id列的名称。
y_column
:目标列的名称。
在日历变量的情况下,您必须使用ISO代码指定国家。
#Run Temporal Features
response_tmp_ft = tsfeatures.calculate_temporal_features_from_s3_uri(
s3_uri="<PRIVATE S3 URI HERE>",
freq=7, # For the moment only works for Daily data.
unique_id_column="<NAME OF ID COLUMN>",
ds_column= "<NAME OF DATESTAMP COLUMN>",
y_column="<NAME OF TARGET COLUMN>"
)
#Run Static Features
response_static_ft = tsfeatures.calculate_static_features_from_s3_uri(
s3_uri=s3_uri,
freq=7,
unique_id_column="<NAME OF ID COLUMN>",
ds_column= "<NAME OF DATESTAMP COLUMN>",
y_column="<NAME OF TARGET COLUMN>"
)
#Run Calendar Features
response_cal_ft = tsfeatures.calculate_calendar_features_from_s3_uri(
s3_uri=s3_uri,
country="<ISO>",
unique_id_column="<NAME OF ID COLUMN>",
ds_column= "<NAME OF DATESTAMP COLUMN>",
y_column="<NAME OF TARGET COLUMN>"
)
response_tmp_ft
状态 | 正文 | id_job | 消息 | |
---|---|---|---|---|
0 | 200 | "s3://nixtla-user-test/features/features.csv" | f7bdb6dc-dcdb-4d87-87e8-b5428e4c98db | 在GET /tsfeatures/jobs/{job_id}处检查作业状态 |
- 使用以下代码监控过程。完成后,访问您的存储桶以下载生成的特征。
job_id = response_tmp_ft['id_job'].item()
tsfeatures.get_status(job_id)
状态 | 处理时间(秒) | |
---|---|---|
0 | 进行中 | 3 |
2.2 从s3下载您的结果
过程完成后,您可以从s3下载结果。
s3_uri_results = response_tmp_ft['dest_url'].item()
tsfeatures.download_from_s3(s3_url=s3_uri_results)
待办事项
- 使用Parquet文件优化读写速度
- 为不同粒度提供时间特征
- 填充零值(对于0值未报告的数据,例如零售数据)
- 对模型改进进行实证基准测试
- 处理Nan
- 上传前检查数据完整性
- 提供有意义的错误消息
- 提供有意义的状态
- 日历中可选的y参数
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关安装包的更多信息。