开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

机器学习PAI官网关于Prophet的例子一个都跑不通。为什么打印的key和定义的key都不一样?

问题1:机器学习PAI官网关于Prophet的例子没有一个能跑得通的。aa30b48412ced4b277390a65275432b1.png 打印的key和定义的key都不一样,怎么回事?问题2:3e97f868a4cdebfd9f7c942cfab63135.png6ac6b09a7d18f5e079fa845235decd17.png

8fe0bc0aec8af590d1b16714fc89e2d0.png代码和报错如上图,麻烦看看代码一不一样?b91dd72faa688225c8be01c77336bece.png 还有上图Prophet预测 (ProphetPredictBatchOp)这个示例代码报以下错误。 56e844abfc6b1bebda2dae1736da103c.png 可以验证一下。

展开
收起
三分钟热度的鱼 2023-06-05 15:39:35 184 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    您在使用阿里云机器学习PAI官网提供的 Prophet 例子时,打印的 key 和定义的 key 不一致的原因可能是因为数据格式不一致所致。

    在 Prophet 例子中,尤其是时间序列预测任务,我们需要按照预先定义好的时间序列格式进行数据组织。在使用 Prophet 进行预测时,我们首先需要对数据进行以下处理:

    1. 数据需要按照时间顺序进行排序。
    2. 时间戳必须为 ds 列,并且是 Pandas 中的 Datetime 格式。可以使用 pd.to_datetime() 函数将时间戳转换为 Datetime 格式。
    3. 序列数值必须为 y 列,并且是数值类型。可以使用 Pandas 的 astype() 函数将数据类型转换为数值类型。

    具体地,在阿里云机器学习PAI官网提供的 Prophet 例子中,您需要按照如下方式修改数据集:

    1. 将数据按照时间顺序排序:
    df = df.sort_values('date')
    

    在上述代码中,将数据根据时间戳列 date 进行排序,确保时间顺序正确。

    1. 将时间戳转换为 Datetime 格式:
    df['ds'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
    

    在上述代码中,使用 pd.to_datetime() 函数将时间戳列 date 转换为 Datetime 格式,存储在 ds 列中。

    1. 将序列数值转换为数值类型:
    df['y'] = df['value'].astype(float)
    

    在上述代码中,使用 Pandas 的 astype() 函数将数据类型转换为浮点类型,存储在 y 列中。

    如果您对数据集进行了以上的处理,那么在使用 Prophet 进行预测时,打印出来的 key 应该和定义的 key 一致。

    2023-06-05 22:09:02
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    Prophet是由Facebook开发的一个开源时间序列预测框架,其主要目的是为非专业的数据科学家提供一个易于使用且高效的工具来进行时间序列的预测和建模。Prophet具有高度灵活性和可扩展性,能够自动处理一些常见的时间序列问题,如季节性、节假日和异常值等。

    Prophet的使用非常简单,你只需要安装Prophet包并遵循以下步骤:

    1. 准备你的数据:Prophet需要你的数据拥有两列,一列是时间戳(ds),一列是要预测的数值(y)。

    2. 创建Prophet模型:使用Prophet的Python API创建一个Prophet模型,并设置一些超参数,如季节周期和节假日等信息。

    3. 拟合模型:使用拟合方法将模型拟合到你的数据。

    4. 预测未来值:使用模型进行预测,并获取预测结果。

    以下是一个简单的例子:

    # 导入必要的库
    from fbprophet import Prophet
    import pandas as pd
    
    # 创建一个数据框,包含需要预测的时间序列数据
    df = pd.read_csv('example.csv')
    
    # 将时间戳转换为标准日期格式
    df['ds'] = pd.to_datetime(df['ds'])
    
    # 创建一个Prophet模型并拟合数据
    model = Prophet()
    model.fit(df)
    
    # 预测未来的数据
    future = model.make_future_dataframe(periods=365)
    forecast = model.predict(future)
    
    # 输出预测结果
    print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail())
    

    在这个例子中,我们首先导入了必要的库,然后创建一个包含需要预测的时间序列数据的数据框。我们将时间戳转换为标准日期格式,并创建一个Prophet模型并拟合数据。然后,我们使用模型进行预测,并输出预测结果。在这个例子中,我们使用了365天的时间来预测未来的数据。

    请注意,这只是Prophet的一个简单示例。Prophet有很多其他的超参数和选项,您可以根据您的需求进行调整。

    2023-06-05 20:59:11
    赞同 展开评论 打赏
  • 针对问题1的回答:我刚跑了下这个Case,是可以跑的,下图是我这边的结果。文档上是之前老的结果,这个不好意思,后面我们修改下。 另外,能把错误发一下吗?看看具体的原因。0a0fae5b01bbc647545d043977d52d63.png 此回答整理自钉群“Alink开源--用户群”

    2023-06-05 15:52:04
    赞同 展开评论 打赏

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    大规模机器学习在蚂蚁+阿里的应用 立即下载
    基于Spark的面向十亿级别特征的 大规模机器学习 立即下载
    基于Spark的大规模机器学习在微博的应用 立即下载