You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重构数据集以构建best_point_of_contact预测模型?

数据集重构方案(用于训练最佳联系人预测模型)

针对你的需求,核心是把任务列的用户信息转换成模型可识别的数值特征,具体步骤如下:

1. 处理多值任务列(owner、toppers)

这类列包含多个用户(比如owner列的A,B),需要拆分成二进制特征:每个用户对应一个新列,值为1表示该用户承担此任务,0表示不承担。
比如处理owner列后会生成owner_A和owner_B两列,原记录中这两列的值都是1;处理toppers列会生成toppers_A、toppers_B、toppers_C,对应的值都是1。

2. 处理单值任务列(editor、delegator、writer、financer)

这类列每个只对应一个用户,同样转换成二进制特征:比如editor列是A,就生成editor_A=1,其他用户对应的editor_*列值为0。

3. 整合特征与目标列

完成上述转换后,删掉原始的任务列(editor、delegator等),只保留生成的二进制特征列、name列(可选,用于标识记录)和目标列best_point_of_contact。

代码示例(用Pandas实现)

import pandas as pd

# 你的原始数据
data = {
    'name': ['newpaper1'],
    'editor': ['A'],
    'delegator': ['A'],
    'writer': ['B'],
    'owner': ['A,B'],
    'financer': ['B'],
    'toppers': ['A,B,C'],
    'best_point_of_contact': ['A']
}
df = pd.DataFrame(data)

# 定义拆分多值列的函数
def split_multivalue_col(df, col_name):
    # 获取该列所有唯一用户
    all_users = df[col_name].str.split(',', expand=True).stack().unique()
    for user in all_users:
        # 生成新列,标记用户是否参与该任务
        df[f"{col_name}_{user}"] = df[col_name].apply(lambda x: 1 if user in x.split(',') else 0)
    return df

# 处理多值列
df = split_multivalue_col(df, 'owner')
df = split_multivalue_col(df, 'toppers')

# 处理单值列
single_task_cols = ['editor', 'delegator', 'writer', 'financer']
for col in single_task_cols:
    all_users = df[col].unique()
    for user in all_users:
        df[f"{col}_{user}"] = df[col].apply(lambda x: 1 if x == user else 0)

# 筛选特征列和目标列
feature_cols = [col for col in df.columns if col not in ['name', 'editor', 'delegator', 'writer', 'owner', 'financer', 'toppers', 'best_point_of_contact']]
X = df[feature_cols]  # 特征矩阵
y = df['best_point_of_contact']  # 目标变量

最终得到的X就是模型可以直接使用的特征,y是需要预测的最佳联系人,接下来就可以用分类模型(比如逻辑回归、随机森林)来训练了。

内容的提问来源于stack exchange,提问作者Divyessh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:16:02