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

想问一下机器学习PAI在odps上做理线预测,输入输出支持分区表吗?*离线预测有代码示例吗?

想问一下机器学习PAI在odps上做理线预测,输入输出支持分区表吗?*离线预测有代码示例吗?

展开
收起
真的很搞笑 2023-10-29 20:07:42 53 0
3 条回答
写回答
取消 提交回答
  • 对于阿里云的机器学习PAI(Platform for AI Innovation),它在ODPS(Open Data Processing Service)上进行离线预测时,输入和输出的表可以是分区表。分区表可以帮助你更好地处理大规模数据,因为每个分区的数据可以在一个独立的计算任务中进行处理,这样可以大大提高计算效率。

    关于离线预测的代码示例,这通常取决于你的具体需求和你的模型的具体实现。一般来说,离线预测的流程如下:

    1. 从输入表中读取数据。
    2. 对数据进行预处理,包括数据清洗、特征提取等。
    3. 使用模型对数据进行预测。
    4. 将预测结果写入输出表。

    以下是一个简单的Python代码示例,它使用了pandas库来读取和处理数据,使用了sklearn库来进行预测:

    import pandas as pd
    from sklearn.linear_model import LinearRegression
    
    # 读取输入数据
    input_data = pd.read_table('input_table', sep='\t')
    
    # 创建模型
    model = LinearRegression()
    
    # 使用模型进行预测
    predictions = model.predict(input_data)
    
    # 将预测结果写入输出表
    pd.DataFrame(predictions).to_table('output_table', index=False, dtype=str)
    
    2023-10-30 11:43:03
    赞同 展开评论 打赏
  • 支持,可以看训练的这个示例,带分区的表的写法都是一样的:https://easyrec.readthedocs.io/en/latest/incremental_train.html![ba68cc013bf48b6b33a55742fc2784a5.png](https://ucc.alicdn.com/pic/developer-ecology/wyvq5mjsckydw_304b1500c0874fd1af2b6d8052f7ef89.png)
    -Dinput_table='odps://xxx/tables/xxx/ds=${ymd}'
    -Doutput_table='odps://xxx/tables/xxx/ds=${ymd}',此回答整理自钉群“【EasyRec】推荐算法交流群”

    2023-10-30 08:04:10
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 ODPS 上做离线预测时,需要将数据组织为 ODPS 表格格式。ODPS 支持分区表和非分区表。
    您可以在创建预测任务时,指定输入和输出表格,例如:

    t_env.execute_sql(f"""
    CREATE TABLE default_db.default_table (
        user_id STRING,
        item_id STRING,
        label INT,
        features ARRAY<ROW<features:ARRAY<STRING>>,
        category STRING
    ) PARTITIONED BY (dt STRING, pt STRING);
    
    INSERT INTO default_db.default_table PARTITION (dt, pt) SELECT
        user_id,
        item_id,
        label,
        array(features) as features,
        category
    FROM source_table
    WHERE dt = '202201';
    """)
    

    这里,source_table 是原始表格,default_db.default_table 是输出表格。需要指出的是,输出表格必须为分区表。
    同时,您可以使用使用 SQL 查询将分区表作为输入表。例如:

    SELECT * FROM default_db.default_table WHERE dt='202201' AND pt='test'
    

    在机器学习预测任务中,您需要将输入和输出表分别设置为分区表。同时,也可以在执行 SQL 查询时使用相同的分区条件。以下是使用 ODPS SQL 语句进行离线预测的示例:

    from odps.sql import SQLTask
    
    sql_task = SQLTask(execution=None)
    sql_task.set_table_name('odps://default_project/default_table')
    sql_task.set_sql('''
    SELECT * FROM default_db.default_table WHERE dt='202201' AND pt='test'
    ''')
    

    最后,PAI-DSW 提供了一个称为 Alink 的高级库来处理数据处理和特征工程。Alink 支持处理分区表和非分区表,因此您可以在其中进行离线预测。

    2023-10-29 22:54:32
    赞同 展开评论 打赏

相关产品

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

    热门文章

    相关电子书

    更多
    微博机器学习平台架构和实践 立即下载
    机器学习及人机交互实战 立即下载
    大数据与机器学习支撑的个性化大屏 立即下载