数据处理类任务模板
本家族算子最多、文档量最大,覆盖表格预处理、大数据对接、分布式计算、NLP 处理与特征工程:
| 算子 | 平台模板 | 用途 |
|---|---|---|
| data-process | data-process | CSV 通用预处理 |
| hadoop | hadoop | 对接外部 Hadoop/YARN/Hive/Spark 集群客户端 |
| spark | spark | spark-operator 提交 SparkApplication |
| ray | ray | K8s 上拉起 Ray 集群跑分布式 Python |
| volcano | volcano | Volcano Job CRD 多副本分布式计算 |
| nlp-process | nlp-clean-data 等 6 个 | 文本清洗/脱敏/过滤/分析/转 QA/扩展 |
| feature-process | feature-combine 等 6 个 | 特征工程 |
本文档侧重各算子的设计、参数与命令定义。在 pipeline 中逐项预处理/特征处理的操作用法已在 模板使用/ 拆分文档中覆盖,两者互相补充,避免重复。
data-process
通用 CSV 数据预处理算子,单入口 launcher.py,用 --process_type 选择功能。
- 镜像:
ccr.ccs.tencentyun.com/cube-studio/data-process:20230501 - 实现:
job-template/job/data-process/launcher.py - 输入:默认 CSV;所有功能必填
--process_type。
process_type 功能对照
| process_type | 功能 | 关键参数(除 --input_dataset_path/--save_dataset_path 外) |
|---|---|---|
drop_duplicates |
按行去重,保留首次出现 | - |
drop_high_missing |
删除缺失率超阈值的列 | --missing_ratio(默认 0.3) |
drop_stablize |
删除单一取值占比过高的列 | --stable_threshold(默认 0.95) |
calculate_metric |
描述性统计输出 CSV(不改原数据) | --metric_path(统计结果输出路径) |
fill_missing |
缺失值填充 | --fill_type:mean/median/modes(默认 mean) |
one_hot |
One-Hot 编码 | --categorical_cols(逗号分隔;不填则对所有 object 列编码) |
outlier_detection |
异常值检测(可选删除) | --detection_type(多选逗号分隔:stddev/box_line/Tukey/Z-score)、--delete_or_not(yes/no) |
pca |
PCA 降维(保留标签列) | --feature_columns、--label_columns、--dimension |
split |
划分训练/验证集 | --split_ratio(默认 0.8) |
split 的 --save_dataset_path 规则:目录 → 生成 train.csv/val.csv;单 CSV 路径 → 生成 {basename}_train.csv/{basename}_val.csv;逗号分隔两路径 → 分别作训练/验证集。
python launcher.py --process_type drop_high_missing --input_dataset_path /data/raw.csv --save_dataset_path /data/cleaned.csv --missing_ratio 0.3
python launcher.py --process_type pca --input_dataset_path /data/raw.csv --save_dataset_path /data/pca.csv --feature_columns "f1,f2,f3,f4,f5" --label_columns label --dimension 2
平台模板侧把每种 process_type 注册为独立参数组(过滤重复样本/丢弃缺失值过高的列/…),参数 JSON 见
job-template/job/data-process/README.md。
hadoop
对接客户已有大数据平台(Hadoop / YARN / Hive / Spark)的客户端镜像算子。CubeStudio 不提供大数据集群本身,任务实际提交到你公司已有的 HDFS/YARN/Hive 上执行;组件版本不一致时需二次开发改 Dockerfile 重建镜像。
- 默认镜像:
ccr.ccs.tencentyun.com/cube-studio/hadoop:20240501 - 默认组件版本(见
Dockerfile):Hadoop 3.3.6、Hive 3.1.3、Spark 3.4.3(bin-hadoop3)、JDK 8 - 实现目录:
job-template/job/hadoop(入口start.sh先执行set.sh再跑--command)
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
--command |
str | 是 | 要执行的命令,如 spark-submit /path/app.py、hive -e "SELECT 1"、hadoop fs -ls / |
对接集群的环境变量(运行时由 set.sh 写入 xml 配置)
| 环境变量 | 说明 |
|---|---|
FS_DEFAULTFS |
HDFS defaultFS,如 hdfs://your-namenode:9000 → 写入 core-site.xml |
YARN_RESOURCEMANAGER_ADDRESS |
YARN RM 地址,如 your-rm-host:8032 → 写入 yarn-site.xml |
HIVE_METASTORE_URIS |
Hive Metastore thrift 地址,如 thrift://your-hive-metastore:9083 → 写入 hive-site.xml(不用 Hive 可不配) |
当 spark-submit Driver 跑在 K8s 内时,set.sh 还会从平台注入的 PORT1(spark.driver.port)、PORT2(spark.blockManager.port)、K8S_HOST_IP(spark.driver.host)写入 Spark 配置,一般无需手填。
二次开发切换 Hadoop 2 栈:编辑 Dockerfile,启用预留的 HADOOP_VERSION=2.7.2、HIVE_VERSION=1.2.2、SPARK_VERSION=2.1.3、SPARK_HADOOP_VERSION=2.7,在 job-template 目录用 docker build ... -f job/hadoop/Dockerfile . 重建并改模板镜像。
spark
通过 spark-operator 提交 SparkApplication(sparkoperator.k8s.io/v1beta2,见 job-template/job/spark/launcher.py:118)跑 Spark 作业。
- 镜像:
ccr.ccs.tencentyun.com/cube-studio/spark:20260601(job-template/job/spark/build.sh当前构建版本;README 正文里写的是旧版20230701,以 build.sh 为准) - K8s 账号:
kubeflow-pipeline - 实现:
job-template/job/spark/launcher.py
参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
--image |
str | 是 | ccr.ccs.tencentyun.com/cube-studio/spark-operator:spark-v3.1.1 |
执行镜像 |
--num_worker |
str | 是 | 3 |
executor(instances)数目 |
--code_type |
str | 是 | Python |
语言:Java/Python/Scala/R |
--code_class |
str | 否 | - | Java/Scala 主类名(mainClass),其他语言不填 |
--code_file |
str | 是 | local:///opt/spark/examples/src/main/python/pi.py |
代码文件(mainApplicationFile),支持 local:///http:///hdfs:///s3a:///gcs:// |
--code_arguments |
str | 否 | - | 代码参数 |
--sparkConf |
text | 否 | - | spark 配置,每行 xx=yy |
--hadoopConf |
text | 否 | - | hadoop 配置,每行 xx=yy |
注意(来自源码与 README):当前版本 spark-operator 无法挂载分布式存储中的代码文件,因此
code_file主要用 http 地址。分布式存储路径/mnt/admin/xx/example.py对应 http 形如http://127.0.0.1/static/mnt/admin/xx/example.py。launcher.py会自动把以local:///mnt/开头的code_file转换为<HOST>/static/mnt/...的 http 地址(见job-template/job/spark/launcher.py:273-275)。
ray
在 Kubernetes 上按需拉起一套 Ray 集群并执行用户代码的分布式计算算子,用户无需事先部署 Ray。
- 镜像:
ccr.ccs.tencentyun.com/cube-studio/ray:gpu-20250301(以 init-job-template 为准) - K8s 账号:
kubeflow-pipeline - 实现:
job-template/job/ray/launcher.py
运行机制
Launcher Pod 既是驱动端也是客户端,通过 K8s API 在当前命名空间创建:1 个 Head(Deployment+Service,容器执行 ray start --head --port=6379 --num-cpus=$MY_CPU_REQUEST --block)+ N 个 Worker(Deployment replicas=N,执行 ray start --address=$RAY_HEAD_SERVICE_HOST:6379 --block)。Head 命名 ray-header-{KFJ_PIPELINE_NAME}-{KFJ_TASK_ID}(截断 54 字符)。随后 Launcher 用 ray.util.connect(<head>:10001) 连接并轮询直到节点数达到 worker 数,设置环境变量 RAY_HOST=<head 服务名>,在工作目录下执行用户命令。
Head 服务端口
| 端口 | 用途 |
|---|---|
10001 |
Ray 客户端连接端口(用户代码用 <RAY_HOST>:10001 连接) |
8265 |
Ray Dashboard |
6379 |
Ray 内部 Redis |
参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
--workdir |
str | 是 | / |
工作目录,用户命令在此执行 |
--command |
str | 是 | python3 mnist.py |
用户启动命令,如 python demo.py |
--num_worker |
int | 是 | 3 |
Worker 数量(内部变量 NUM_WORKER),决定集群规模 |
--init |
str | 否 | '' |
初始化脚本,Head/Worker 启动前及当前驱动 Pod 内各执行一次(装依赖/备环境) |
镜像由平台注入(KFJ_TASK_IMAGES)。资源/调度从 KFJ_TASK_RESOURCE_CPU/MEMORY/GPU、KFJ_TASK_NODE_SELECTOR、KFJ_TASK_VOLUME_MOUNT 等环境变量读取。
用户代码写法
import os, ray
@ray.remote
def fun1(arg):
return "back_data"
if __name__ == "__main__":
head = os.getenv("RAY_HOST", "")
if head:
ray.util.connect(head + ":10001") # 集群模式
else:
ray.init() # 本地调试
ray.get([fun1.remote(i) for i in range(100)])
job_example.py、demo.py 为目录内示例。
volcano
通过创建 Volcano Job CRD(batch.volcano.sh/v1alpha1)发起多副本分布式计算:所有 Worker Pod 使用相同镜像与命令,由 Volcano 调度,用环境变量区分副本序号,适合数据并行、批处理。
- 镜像:
ccr.ccs.tencentyun.com/cube-studio/volcano:20250801(job-template/job/volcano/build.sh当前构建版本;README 正文里写的是旧版20230601,以 build.sh 为准) - K8s 账号:
kubeflow-pipeline - 实现:
job-template/job/volcano/launcher.py(入口python3 launcher.py)
运行机制
Launcher 读取参数与 KFJ_TASK_* 环境变量,组装 Volcano Job 提交到当前命名空间:单个 Task 类型 worker,replicas=num_worker,minAvailable=num_worker,schedulerName: volcano,queue: default,cleanPodPolicy: None,启用 env/svc/ssh 插件;每个 Pod 以 bash -c <command> 执行。Launcher 用 stern 实时汇聚所有 Worker 日志(约每小时重启一次 stern),后台线程轮询 Job 状态,Completed 退出码 0,Failed/Aborted/Terminated 退出码 1。Pod 间用 Pod 反亲和尽量打散到不同节点(topologyKey: kubernetes.io/hostname)。
参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
--working_dir |
str | 是 | /mnt/ |
运行 job 的工作目录 |
--command |
str | 是 | python3 mnist.py |
运行命令,由 bash -c 执行 |
--num_worker |
int | 是 | 3 |
Worker 数量(Pod 副本数 / minAvailable) |
--image |
str | 否 | '' |
Worker 镜像;不填则用模板默认镜像(KFJ_TASK_IMAGES) |
资源/调度来自 KFJ_TASK_RESOURCE_CPU/MEMORY/GPU、GPU_RESOURCE_NAME、KFJ_TASK_RESOURCE_RDMA、KFJ_TASK_NODE_SELECTOR、KFJ_TASK_VOLUME_MOUNT、HUBSECRET 等。
用户代码(数据并行分片)
Volcano 为各 Pod 注入 VC_WORKER_NUM(Worker 总数)、VC_TASK_INDEX(当前序号,0 起),用户据此分片:
import os
WORLD_SIZE = int(os.getenv('VC_WORKER_NUM', '1'))
RANK = int(os.getenv("VC_TASK_INDEX", '0'))
local_task = [i for i in range(300) if i % WORLD_SIZE == RANK] # 仅处理本 Worker 分片
nlp-process
NLP 文本处理算子集合,单镜像 + 多运行文件,每个运行文件对应一个平台任务模板。
- 镜像:
ccr.ccs.tencentyun.com/cube-studio/nlp-process:20260527(nlp-analyze-data例外,见下) - 实现目录:
job-template/job/nlp-process
子模板与运行文件
| 平台任务模板 | 运行文件 | 用途 |
|---|---|---|
nlp-clean-data |
clean-data.py |
文本清洗:无意义符号、格式规范、去重、异常规则、数值噪声、缺失值 |
nlp-replace-private-data |
replace-data.py |
隐私/敏感信息替换:email、IP、数字串、自定义词 |
nlp-filter-data |
filter-data.py |
文档质量过滤:长度、重复率、特殊字符、敏感词、中文占比 |
nlp-analyze-data |
analyze-data.py |
大模型自动分类(领域/任务/语言)+ 质量指标 |
markdown-to-qa |
markdown-to-data.py |
Markdown/TXT 转 Alpaca/ShareGPT QA 数据集 |
expand-qa |
expand-dataset.py |
已有 QA 举一反三扩展 + 规则型数据增强 |
推荐链路:replace-data.py(可选脱敏) → clean-data.py(清洗) → filter-data.py(过滤) → analyze-data.py(可选分析) → markdown-to-data.py(生成 QA) → expand-dataset.py(可选扩展)。
nlp-clean-data(clean-data.py)
支持基础字符清理与高级清理:移除不可见字符/规范空格/去乱码、繁转简、去 HTML/XML/emoji/主题标签、半全角与日期数值规范、行/段/文件去重、规则异常检查、分箱/回归式数值噪声处理、缺失值保留/删除/填充,可输出清理报告 JSON。布尔参数用字符串 true/false。--input_file_path 可为文件或目录(目录递归处理)。
关键参数(共 24 个,完整表见 job-template/job/nlp-process/README-clean-data.md):
| 参数 | 脚本默认 | 平台默认 | 说明 |
|---|---|---|---|
--input_file_path / --save_file_path |
clean-input.txt / result.txt |
个人空间路径 | 输入/输出文件或目录 |
--remove_invisible_char / --standard_spaces / --remove_garbled_char / --traditional_to_simplified |
false |
true |
基础字符清理(平台默认开启) |
--remove_page_identifiers / --remove_emoticons / --remove_topic_tags |
false |
true |
去 HTML/XML、emoji、#话题#/#tag |
--normalize_formats / --validate_numeric_content |
false |
true |
半全角/日期数值规范、数值异常检查 |
--remove_duplicates / --dedupe_unit / --dedupe_scope |
false / line / file |
true / line / dataset |
去重及粒度(line/paragraph/file)、范围(file/dataset) |
--validation_rules / --drop_patterns / --drop_invalid_records |
空 / 空 / false |
同 | 规则 JSON、删除正则、是否删异常段落 |
--noise_method / --bin_count / --noise_threshold |
none / 5 / 3.0 |
同 | 数值噪声处理(none/binning/regression) |
--missing_strategy / --missing_tokens / --fill_dict |
keep / N/A,NULL,null,NaN,无,--,未知 / 空 |
同 | 缺失值策略(keep/remove/fill)、占位符、补全词典 |
--report_file_path |
空 | 报告路径 | 清理报告 JSON 输出 |
nlp-replace-private-data(replace-data.py)
该子模板在仓库中无独立 README(
README-replace-data.md不存在),以下据源码job-template/job/nlp-process/replace-data.py整理。
逐文件(或目录递归)对文本做隐私/敏感信息替换:email→PI:EMAIL,IPv4/IPv6→PI:IP,数字串(16/11 位、32 位十六进制、4 位、纯数字)→PI:NUMBER,以及自定义词替换。空文件跳过不保留。
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
--input_file_path |
str | replace-input.txt |
输入文件或目录 |
--save_file_path |
str | result.txt |
输出路径(目录输入时按原文件名写到该路径所在目录) |
--replace_email |
str | false |
true 时替换邮箱为 PI:EMAIL |
--replace_ip |
str | false |
true 时替换 IPv4/IPv6 为 PI:IP |
--replace_number |
str | false |
true 时替换数字串为 PI:NUMBER |
--replace_spec_word |
str | '' |
自定义替换,格式 旧:新 多组用 , 或 ; 分隔(按正则替换,如 公司A:某公司,张三:某人) |
nlp-filter-data(filter-data.py)
该子模板在仓库中无独立 README(
README-filter-data.md不存在),以下据源码job-template/job/nlp-process/filter-data.py整理。
逐文件按多项质量指标判定是否保留(任一不达标即丢弃,通过的才写出):字数/词数(jieba 分词)在范围内、字重复率/词重复率/特殊字符率/敏感词率不超阈值、中文占比不低于阈值。敏感词表来自镜像内 keywords.txt。
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
--input_file_path |
str | filter-input.txt |
输入文件或目录 |
--save_file_path |
str | result.txt |
输出路径 |
--char_num |
str | 1-100000 |
字数范围(用 ,/-/;/~ 分隔上下界) |
--word_num |
str | 1-50000 |
词数范围(jieba 分词) |
--char_repetition_rate |
str | 0.2 |
字重复率上限 |
--word_repetition_rate |
str | 0.4 |
词重复率上限 |
--special_char_rate |
str | 0.3 |
特殊字符率上限 |
--sensitive_word_rate |
str | 0.001 |
敏感词率上限 |
--chinese_word_rate |
str | 0.85 |
中文占比下限 |
--perplexity |
str | 1110 |
困惑度阈值 |
注意:
--perplexity参数在filter-data.py:80已定义,但当前过滤逻辑未调用任何困惑度计算(args.perplexity在脚本中再无引用,过滤主循环filter-data.py:96-145也无相关分支),即该阈值实际不参与过滤。
nlp-analyze-data(analyze-data.py)
用大模型自动对文本做领域/任务/语言分类,并计算质量指标;输出领域/任务分布统计、质量指标明细/汇总 CSV 及图表。支持 .txt/.csv/.jsonl/.jsonl.gz,输入可为文件/目录/逗号列表/glob。大模型走 OpenAI 兼容接口,经环境变量 API_URL/API_KEY/MODEL 配置(也可用 --api-url/--api-key/--model 覆盖)。
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
--input |
str | (空,必填) | 输入数据(每行一句话) |
--output |
str | /mnt/{creator}/pipeline/text-dataset |
输出目录 |
--plots |
str | true |
是否输出图表 |
--batch-size |
int | 10 |
大模型批处理大小 |
--domains / --tasks / --languages |
str | 空 | 领域/任务/语言类别(逗号分隔;不填则模型自动分类) |
--llm-params |
json | {"temperature":0.5,"top_p":0.9,"max_tokens":2048} |
大模型超参数 |
注意:
README-analyze-data.md已过时,与源码存在多处不一致,以源码 / 总 README 为准:(1) README 称--batch-size默认5,源码默认10(analyze-data.py:1175);(2) README 的--output默认带/output后缀,源码无(analyze-data.py:1170);(3) README 示例用python start.py,实际运行文件为analyze-data.py;(4) README 顶部镜像写text-dataset-jobs:20251111,但该脚本随 nlp-process 镜像构建,应以总 README 与build.sh的nlp-process:20260527为准。
markdown-to-qa(markdown-to-data.py)
把清洗/过滤后的 .md/.txt 高质量文本转换为 LlamaFactory 可用的 Alpaca/ShareGPT 问答对数据集:分块 → 大模型抽取文档上下文(摘要/关键点/实体等,失败回退规则摘要)→ 按 chunk×模板生成候选问题并去重 → 按质量评分重试/剔除低分样本。
主要参数(完整见 job-template/job/nlp-process/README-markdown-to-data.md):
| 参数 | 默认 | 说明 |
|---|---|---|
--input / --output |
个人空间路径 | 输入 .md/.txt(文件/目录/逗号列表/glob)/ 输出数据集 JSON |
--format |
alpaca |
alpaca 或 sharegpt |
--expand_qa / --expand_num |
false / 3 |
是否继续举一反三扩展、每条扩展问题数 |
--api-url / --api-key / --model / --llm-params |
空 | 大模型 API 与超参(未传则读环境变量 API_URL/API_KEY/MODEL) |
--chunk_size / --chunk_overlap / --min_chunk_chars / --qa_per_chunk |
2000 / 200 / 80 / 3 |
分块与生成粒度 |
--min_quality_score / --max_quality_retry |
0.7 / 2 |
最低保留质量分、质量优化最大次数 |
--metadata_output |
空 | metadata 输出路径(为空写 ${output}.metadata.json) |
expand-qa(expand-dataset.py)
对已有 QA 数据集做大模型「举一反三」与/或离线规则增强,支持 llm/rule/both 三种模式。规则增强含同义词替换、近音字替换、随机插入、随机交换、随机删除。
主要参数(完整见 job-template/job/nlp-process/README-expand-dataset.md):
| 参数 | 默认 | 说明 |
|---|---|---|
--input / --output |
个人空间路径 | 输入 QA JSON(Alpaca/ShareGPT 自动识别)/ 输出 JSON |
--format |
alpaca |
alpaca 或 sharegpt |
--expand_num |
3 |
每条 QA 大模型扩展问题数 |
--keep_original |
true |
是否保留原始数据 |
--augment_mode |
llm |
llm/rule/both |
--augment_methods |
synonym_replace,homophone_replace,random_insert,random_swap,random_delete |
规则增强方法(逗号分隔) |
--augment_num / --augment_fields |
1 / instruction |
每条规则增强数量、增强字段 |
--synonym_dict / --homophone_dict / --insert_words |
- | 同义词/近音字词典、可插入词 |
--replace_prob / --insert_prob / --swap_prob / --delete_prob / --random_seed |
- | 各操作概率与随机种子 |
--llm-params |
- | 大模型 API 与超参 |
feature-process
特征工程算子集合,镜像 ccr.ccs.tencentyun.com/cube-studio/feature-process:20260601(job-template/job/feature-process/build.sh 当前构建版本;README 正文里写的是旧版 20250801,以 build.sh 为准),每个任务对应一个 launcher 脚本,以不同任务模板注册:实际运行哪个脚本由平台下发的 job_template_command(如 python3 launcher-combine.py)决定。Dockerfile 仅把目录拷进 /app、设 WORKDIR /app,未设置 ENTRYPOINT/CMD(见 job-template/job/feature-process/Dockerfile),所以必须靠模板命令指定入口;镜像内脚本名即仓库内文件名(launcher-combine.py/launcher-calculate-correlation.py/launcher-feature-importance.py/launcher-hadamard-multiply.py/launcher-union-join-data.py/launcher-all.py)。实现目录 job-template/job/feature-process。
一体化模板
feature-process-all的入口脚本launcher-all.py也在该目录内、同属feature-process镜像,见本节末尾。
feature-combine(特征组合,launcher-combine.py)
对指定列两两组合衍生新特征,新列名 {col1}_{col2}_{method}。方法:cross(逐元素相乘)、polynomial(col1^2+col2^2)、statistics(逐行均值)、aggregation(按 col1 分组对 col2 取组内均值)、hashing(拼接字符串 hash 对 1000 取模)。
| 参数 | 类型 | 说明 |
|---|---|---|
--input_dataset_path / --save_dataset_path |
workdir | 输入/输出 CSV |
--params |
json | {"方法名": "列1,列2,列3", ...},如 {"cross":"age,duration","statistics":"age,duration,campaign"} |
hadamard-multiply(Hadamard 积,launcher-hadamard-multiply.py)
对两个同形状 CSV 做逐元素乘积 result[i,j]=data1[i,j]*data2[i,j];shape 不一致则报错退出。
| 参数 | 类型 | 说明 |
|---|---|---|
--data1 / --data2 |
workdir | 两个 CSV,行列数必须一致 |
--save_dataset_path |
workdir | 结果保存路径 |
calculate-correlation(相关性,launcher-calculate-correlation.py)
对指定特征列计算相关系数矩阵并写 CSV。
| 参数 | 类型 | 说明 |
|---|---|---|
--input_dataset_path |
workdir | 输入 CSV |
--result_path |
workdir | 相关性矩阵输出 CSV |
--corr_type |
str | 相关系数类型,可多选逗号分隔 |
--feature_columns |
str | 参与计算的特征列(逗号分隔) |
corr_type 实际只有 corr 有效:corr 分支用 DataFrame.corr()(Pearson)计算相关系数矩阵并写出到 --result_path。代码里另有 kappa(Cohen's kappa)分支,但整段被三引号块注释掉了(job-template/job/feature-process/launcher-calculate-correlation.py:23-33),传 kappa 不会有任何输出。
feature-importance(特征重要性,launcher-feature-importance.py)
用多种方法计算特征重要性,可多 method × 多 target,结果合并为一张表。
| 参数 | 类型 | 说明 |
|---|---|---|
--input_dataset_path / --save_dataset_path |
workdir | 输入 / 输出(默认 feature_importance.csv) |
--target |
str | 目标列名,可多列逗号分隔 |
--method |
str | 评估方法,可多个逗号分隔 |
--col_name |
str | 参与计算的特征列;不填则用除 target 外全部列 |
--model_path |
workdir | 可选,用已有模型评估重要性 |
method 取值:logistic_regression、random_forest、xgb、mutual_if(互信息)、iv(IV 值)、chi(卡方,仅非负特征)、variance(归一化方差)。
union-join-data(合并/连接,launcher-union-join-data.py)
对多张表按顺序两两合并。
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
--data |
text | - | 多个表路径,用 |/,/换行分隔 |
--merge_type |
str | row_union |
合并类型(见下) |
--ignore_index |
str | True |
合并后是否重置索引 |
--join_columns |
str | - | join 时的连接列(逗号分隔),union 可不填 |
--save_dataset_path |
workdir | - | 结果保存路径 |
merge_type:row_union(按行/UNION ALL)、column_union(按列)、left_join/right_join/inner_join/outer_join(需 join_columns)。
feature-process-all(一体化特征工程,launcher-all.py)
一体化特征工程入口,单入口脚本 launcher-all.py(与上面几个 launcher 同在 feature-process 镜像内),通过 --params(JSON 单对象或对象数组,按顺序执行多步)中的 process_type 区分处理类型。
注意:
README-feature-process-all.md已过时——正文写入口python3 launcher.py、镜像feature-process-all:20231128,但仓库实际文件名是launcher-all.py,且feature-process/build.sh只构建一个feature-process:20260601镜像、未单独构建feature-process-all。平台myapp/init/init-job-template.json中的 feature-process-all 系模板(run-sql、sort 等)已确认统一使用镜像feature-process:20260601+ 启动命令python3 launcher-all.py,「单独 feature-process-all 镜像」是历史写法。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
--input_dataset_path / --save_dataset_path |
str | 否 | 输入/输出 CSV |
--params |
str | 是 | 步骤配置 JSON,每条须含 process_type;通用可选字段 col_name/col_map/keep/y_col |
支持的 process_type(35 种,见 job-template/job/feature-process/README-feature-process-all.md):
width_dist 等宽离散化、freq_dist 等频离散化、boxcox 变换、pca 主成分、binarization 二值化、
featurehasher 特征哈希、polynomialfeatures 多项式展开、maxabsscaler、minmaxscaler、standardscaler、
normalizer 向量归一化、kbinsdiscretizer 分箱、one_hot 独热、drop_duplicates 去重、col_rename 列重命名、
sort 排序、z_score、dct_transform DCT、chi_ 卡方选择、svd 奇异值分解、random_sample 随机抽样、
weight_sample 加权抽样、level_sample 分层抽样、over_under_sample 过/欠采样、select 选列/删列、
label_encoding 标签编码、type_transfer 类型转换、index_to_col 索引转列、runsql 执行SQL、add_index 增加索引、
time_format 时间格式化、split_column 列拆分、split_data 拆分数据集、func_transfer 函数转换、ma 移动平均
python3 launcher.py --input_dataset_path in.csv --save_dataset_path out.csv \
--params '[{"process_type":"width_dist","col_name":"age","bins":5},{"process_type":"standardscaler","col_name":"age,duration"}]'
各算子镜像版本、默认值与命令行行为可能随版本变化,具体以
job-template/job/<算子目录>源码为准。