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

想请教个机器学习PAI问题?有个地方想优化一下,暂时没想到什么好的解决办法?

想请教个机器学习PAI问题?有个地方想优化一下,暂时没想到什么好的解决办法?
关于hitrate的计算。。
base表是用户各种行为的序列。希望把后面每个版本的user_emb都加进这一个表里。
新做一版就add col,
v_i版本的 任务增加了user_emb_vi列和关联的数据,但是vi版本不知道v_j,(i<j),
v_j版本也只是增加user_emb_vj列和关联的数据。
这有什么办法实现吗?
不然改v_j版本的时候,要把前面所有版本的insert部分都加上后面的版本的列名

展开
收起
cuicuicuic 2024-01-04 16:04:56 37 0
3 条回答
写回答
取消 提交回答
  • 这个问题可以通过使用SQL的UNION ALL操作来解决。首先,你需要为每个版本的user_emb创建一个子查询,然后将这些子查询用UNION ALL连接起来。这样,你就可以得到一个包含所有版本的user_emb的表。

    以下是一个示例:

    -- 假设v_i和v_j是两个版本号
    SELECT user_emb_vi, ... -- 其他列名
    FROM base_table
    WHERE version = v_i;
    
    UNION ALL
    
    SELECT user_emb_vj, ... -- 其他列名
    FROM base_table
    WHERE version = v_j;
    

    这样,你就可以得到一个包含所有版本的user_emb的表,而不需要手动添加每一列。当你需要添加新的版本时,只需将新的子查询添加到UNION ALL后面即可。

    2024-01-05 10:45:22
    赞同 展开评论 打赏
  • 根据您的描述,您希望在更新不同版本的user_emb时,能够自动将新添加的列添加到base表中。为了实现这个目标,您可以使用以下方法:

    1. 首先,为每个版本创建一个函数,该函数将根据当前版本生成相应的user_emb列名和关联数据。例如,对于v_i版本,您可以创建一个名为generate_user_emb_vi的函数,该函数将返回一个包含user_emb_vi列名和关联数据的字典。

    2. 然后,在更新base表时,使用这些函数动态地生成需要添加的列名和关联数据。这样,当您更新v_j版本时,就不需要手动修改前面的插入部分了。

    以下是一个简单的示例代码:

    # 假设这是您的原始base表
    base_table = ...
    
    # 定义一个函数,根据版本生成user_emb列名和关联数据
    def generate_user_emb(version):
        if version == 'v_i':
            return {
                'user_emb_vi': '...',
                'associated_data': '...'
            }
        elif version == 'v_j':
            return {
                'user_emb_vj': '...',
                'associated_data': '...'
            }
        else:
            raise ValueError(f"Unsupported version: {version}")
    
    # 更新base表
    for version in ['v_i', 'v_j']:
        user_emb_info = generate_user_emb(version)
        base_table[version] = user_emb_info['user_emb']
        base_table[version + '_associated_data'] = user_emb_info['associated_data']
    
    # 现在,base表已经包含了所有版本的user_emb列和关联数据
    

    这样,您就可以在不修改前面插入部分的情况下,自动将新添加的列添加到base表中。

    2024-01-04 20:42:40
    赞同 展开评论 打赏
  • 添加新的partition比较好,离线表不像数据库增加列之后,同一行的数据可以关联起来。 ,此回答整理自钉群“【EasyRec】推荐算法交流群”

    2024-01-04 19:09:03
    赞同 展开评论 打赏

热门讨论

热门文章

相关电子书

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