想问一下机器学习PAI在odps上做理线预测,输入输出支持分区表吗?*离线预测有代码示例吗?
对于阿里云的机器学习PAI(Platform for AI Innovation),它在ODPS(Open Data Processing Service)上进行离线预测时,输入和输出的表可以是分区表。分区表可以帮助你更好地处理大规模数据,因为每个分区的数据可以在一个独立的计算任务中进行处理,这样可以大大提高计算效率。
关于离线预测的代码示例,这通常取决于你的具体需求和你的模型的具体实现。一般来说,离线预测的流程如下:
以下是一个简单的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)
支持,可以看训练的这个示例,带分区的表的写法都是一样的: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】推荐算法交流群”
在 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 支持处理分区表和非分区表,因此您可以在其中进行离线预测。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。